Tuesday, February 3, 2009

Professionalism

I have a new way to think about professionalism in Software Development. I like to contrast it to something that I am not a professional at. The best examples that I can think are the various 'projects' that I undertake on my house that alternatively I could hire someone from a particular trade to do. This might be a general contractor, plumber, electrician or even a painter. I like working on my house myself so generally I try not to hire anyone else. On average I am pretty good at this stuff, but I am definitely not a professional.

I see the differences as follows:


1. Depending on what it is, the end product usually isn't quite as good
2. It almost always takes me longer
3. I make more of a mess while doing it

I attribute these to:

1. I don't do this full time, so I don't have as much experience or practice
2. I don't have the tools or the process dialed in
3. I don't have the organization
4. I don't have a client


So in conclusion, I see the differences between someone who is good at something and someone who is a professional is are that the professional has experience and is able to continually practice their craft, has dialed in tools and process and is well organized towards the task at hand. Having a caring, passionate client is also very important and it helps if that person is not you. I find that sometimes I cut corners when I am the client that I wouldn't if I was working for someone else.