Monday, January 09, 2006

 

The Article of the Week 9

Title

Five Worlds

Author

Joel Spolsky

Description

Joel believes are the five worlds of software development. They are:

  1. Shrink-wrap
  2. Internal
  3. Embedded
  4. Games
  5. Throwaway

He goes on to give a description of each world and the type of programming environment you can expect.

You will use different methodologies based on which world you are coding in. Most of the books you read, regarding programming methodology, do not specify which world the author is developing in. What the author doesn't tell you is that he normally works as a consultant for large corporations. This is unfortunate for an inexperienced programmer who reads this book and blindly applies the methodology to the intranet site he is working on for a 10 person non-profit organization.

Picture of Send To context menu

When I began programming, I was obsessed with determining the "best practice" for each process I would tackle. I would spend a quarter or more of the project doing nothing but researching which methodology I should use. It didn't matter what methodology I had used on my last project, I could never be completely convinced that it was the "best practice". The primary reason was that every time I read a book, article, newsgroup posting, or listened to someone speak a user group meeting, I would be confronted with another "best practice" that replaced the one I had learned only a day earlier.

I nearly drove myself and my manager nuts trying to figure out what methodology to use any given day of the week. Thankfully he was very patient. He used to be a full-time programmer, and had been disillusioned enough with "best practices" to have become very practical and productive. With his help I eventually came to the realization that there is no such thing as "best practice". The closest we can come is "better practice", but even that comes down to personal preference.

These days I still spend a lot of time researching new ways of improving my process, especially in the area of automation. I try to move past the internal argument of whether it is better to use a DataSet or a strongly typed, custom collection, as quickly as possible. I am more concerned with which method will allow me to be the most productive, while allowing for the least amount of bugs.

Favorite Quote

"Whenever you read one of those books about programming methodologies written by a full time software development guru/consult, you can rest assured that they are talking about internal, corporate software development."


Comments: Post a Comment

Links to this post:

Create a Link



<< Home
Content copyright ©2003-2006 Tod Birdsall