Posts Tagged ‘rant’

Re: Mentoring Other Developers

Monday, January 19th, 2009

In response to Jeremy Miller’s post.  Sorry if this comes off as rantish, you have a good point and a good post.

I think that mentoring has great benefits.  It can also be frustrating.  Last year, a developer on my team was learning ASP.NET and C#.  Now I am not a master developer, but this new guy asked a series of questions that I knew the answers to. So I decided to invest some time in helping him steer clear of a number of pitfalls I fell into while I walked the path he was on.

Over the course of the next couple months, I answered many questions and additionally I did a few things he would not have been able to do on his own, including:

  • Getting him set up with an account on the dev IIS server.
  • Setting him up with a series of code reviews with developers on the team.
  • Telling other developers that I was working with him and therefore providing him with some credibility.

Unfortunately, over time I was seeing a pattern develop and repeat itself.   It went something like this.

Guy: I have a question.

Me: What can I help with?

Guy: Well, I’m having problems with X when I try to do Y.

Me: Ok, well that’s because of Z, You should do A instead.

Guy: why?

Me: <explanation, sometimes taking a long time>

… 1 week later ..

Guy: I have a question.

Me: What can I help with?

Guy: Well, I’m having problems with X when I try to do Y.

Me:  Well you should really be doing A, didn’t we already talk about this?

Guy: Yeah, we did, but I think doing it this way is better.

Me: But, as you can see, when you do it this way you run into issues.  You should do it with method A.

.. this happened more times than I wish to count.   This frustrated me to no end and made me feel that I had wasted my time. Not only that, it upset me that I put my credibility on the line for someone determined not to listen.  The conclusion that I come to out of this is that there is a certain maturity as a developer necessary from both the mentor and the mentee (?? sounds like mentos, the freshmaker).  But,  I’m not exactly sure how to tell if this is there or not.  I think it has something to do with my comments on professionalism and passion, i.e. that a developer must be passionate about their work to realize their full potential.

Also, there is a certain amount of failure that is necessary to get your bearings.  If you don’t fail, you don’t know where the boundaries are or what might be improved.  I’m not sure where the proper place for failure to end mentoring to begin is. Perhaps it’s just with a simple request for help.

Re: A Rant on Professionalism

Sunday, January 11th, 2009

Recently Chad Meyers posted a rant on professionalism on Los Techies. Here is a quote:

Unfortunately, cynicism has leaked in due to so many failures from the start and professionals seem to be less and less willing to even consider new ideas because they’ve been so burned by them in the past. I believe a large part of our problems are due to this cynicism. We don’t accept new ideas because, for so long, almost every new idea was crap and would hose us in the end on our projects. Managers and stakeholders no longer trust us because we don’t seem to understand or appreciate their concerns and seem to only be concerned with technological problems and the latest-greatest tool from [some vendor, doesn't matter].

First of all, I couldn’t agree with this observation more, and I can be a pretty cynical person. This cynicism, that in my opinion is bordering on apathy, seems to be more prevelant in some communities more than others. One of the things I really like about the Ruby community is that as a whole they are very open to new tools and new ideas. Of course, many times it is also a cycle where tool x is released and everyone wants to try it out and 3 months later, tool y is deemed far better than x. Once tool y becomes the defacto tool for the job, tool z comes along with all the best features of tools x, y and q. etc..

This can be frustrating and even counter productive if you decide to learn a new tool (or 3) for your latest project. Still it is great because:

  • Tools are constantly improving
  • Ideas are being circulated
  • A wide variety of tools are available
  • As frustrating as it can be learning how to use tool z, you are improving your knowledge and skills

In my opinion, the single most important attribute a programmer/developer/software engineer can have is a passion for their field. This will make up for a multitude of shortcomings. It is the only attribute that cannot be learned, and it will drive you to improve your other qualities.

There is a lot of learning in this line of work.

  • from our mistakes
  • from our successes
  • from school
  • from books
  • from reading other people’s code
  • from talking to others
  • from reading blogs
  • from trying new tools
  • from changing languages, styles or perspectives

.. and the list goes on. If you are still not convinced, start slicing it into all the different technologies/languages there are out there. To keep up and consider yourself a professional you must be constantly be learning.

When you stop trying out new ideas, you stagnate. Stagnation is not condusive to learning and it can lead to the “I know everything there is to know about code” attitude. When you stagnate, your opportunities to learn start to shrink. When you notice that you are encountering those opportunities less and less frequently, you (may) think that this is because there is not much more to learn. I know, I’ve been there myself at times. I was wrong, there is so much about programming that I don’t know. But I am learning something new everyday. It might be something small, but it’s something, and each answer will often lead to two more questions.

In conclusion, to be a professional, you must be be passionate about your work. When you are passionate, you will be looking to improve youself, your tools and your process (most of the time). If you don’t continue to improve you will stagnate. If you stagnate, you will stop following new ideas and opportunities and you will start limiting your own future.