Working in the code factory
Thursday, July 31st, 2008
There is a tendency in larger software organizations to value “hard work”. At face value, this makes sense. We all want to be known as hard workers. Some of us love to be known as the hero on the team that can stay up the latest and check in the most code. In truth, a “hard worker” can meet a goals, but this has no reflection on how innovative they are. This is because, we are not factory workers, we are creators.
The process of creating is vastly different from that of working on a production line. Creators bring things into existence that did not exist before. This creative process is important to protect because without having a prior example of what is to be created, time must be invested to dream up every possibility and make sure that the solution that is used is the most appropriate. The need to be seen as a hard worker redefines our idea of a goal from the satisfaction of finding the most appropriate solution, to being the first to make something that is good enough to pass tests. I believe that this is what makes a lot of software from companies more mediocre as time goes by. This is also a reason that a lot of corporations are not inspiring places to work. The book Peopleware goes into greater detail into this subject then I should, so if you have not already, give it a read.
No, I don’t want to sound hopeless. In fact, I am trying to figure out the cure for this tendency. Respecting the fact that software will be less valuable if it is rushed, requires a definition change of the word management. I think that a lot of managers still think that software can be planned beforehand, handed off to be designed, passed to engineering, then put through testing and launched. This is known as the Waterfall approach right? So is Agile the cure? Maybe it is, but unfortunately, a lot of teams have implemented a half-assed Agile process to a team without proper agile training. These teams then get convinced that Agile does not work because it did not work on their team. Unfortunately, Agile has been rendered powerless in some companies for some pretty unfair reasons but powerless just the same.
If you take the time and think back on your career, have you ever had a project that went smoothly? A project that did not go past the deadline? or require a crazy amount of hacks to get it out on time or close? For those of you who would say no, I am sure this was not for lack of hard work and reasonable preparation.


