Tuesday, May 27, 2008

Developer RAID

I was talking with a colleague tonight and he reminded me of a conversation that him and the owner of a company that we both used to work for. The conversation went something like this:

Owner: "If we keep developing our framework pretty soon we will have such a great foundation created that we will be able to hire the cheapest developers out there and it wont matter if they leave us. We could have developer RAID! - Redundant Array of Inexpensive Developers."

Us: WTF

This is such a remnant of the culture of the company that I worked for at the time. It was a top down management style, with a underlying thought that developers performance needed to be monitored and scrutinized, focusing on developing reusable code to diminish the effects that a inexperienced developer can have on the success of projects.

In my experience "Developer RAID" is a complete 180 degree flip of what actually works well in a development team:
  • The RAID culture says bring in inexperienced low-cost developers and monitor what they do to ensure productivity. I believe in mixing experience with non-experience and empowering the team.
  • The RAID culture says that developing reusable code gives us a competitive advantage therefore, maximizing code reuse should be the focus of every project.
  • The RAID culture despises third party libraries. This company I worked for loved anything that used their name in the namespace and hated everything else.
  • The RAID culture believes the silver bullet exists - "someday we will develop our framework complete enough so we will have an answer for almost any customer need"
  • The RAID culture develops in isolation from the customer adding features to provide value even if the feature is not a requirement

Has anyone else had a similar experience with a RAID like culture? I would like to think that this was an isolated case at this one company, but I am sure that is not true.

2 comments:

Pete Erickson said...

The 1980's "waterfall" mentality sure is hard to break!

Thankfully there's now a lot of people who realize that a small group of smart people can create some _really_ great software.

It sounds like your new company falls into the later camp :)

thinker said...

Having a strong framework as a good foundation is really a great advantage. But having inexperienced developers who are not familiar with the framework and even can not understand it may not be a good idea. Software development without the knowledge of the beneath technology is frustrating and dangerous. You have to spend the time of couple of senior developers to monitor their job!
I agree to have a small group of experienced developers with couple of inexperienced ones as intern just to learn for future!