movie projector Projection, where the machine of the media uses light and shadow to transmit the message.

I just read a blog entitled Top Ten Things Ten Years of Professional Development has Taught Me.

Item number three is Learn to Say No. Item number four is If Everything is Important, then Nothing is Important. These two points pretty much sum up, in simple terms, the most important advancements in the past ten years of software process development.

No Free Lunch

There is an old saying in application development. It goes like this. Better, faster, cheaper--pick any two. This is really a variation of an older acronym from science fiction called TANSTAAFL (There is No Such Thing As A Free Lunch). Most people understand this within their domains of expertise. What amazes me is that most people do not understand that this universal truth applies to all domains, not just their own. Ask a doctor to heal a thousand patients in a week and he will look at you like you are crazy. That same doctor will ask you to add a thousand features to an application within a week. When you explain how that is not possible, he will look at you like you are lazy.

Just Say No

No is a very harsh thing to say to someone who is paying you to work. That is why modern methodologies, such as agile, cushion the no in such ideas as time boxing and scope trading. Since you can not have it all now, let us prioritize what you want and come up with a schedule for when you can expect it.

I say this to those users, SMEs, and analysts out there and you know who you are. I suspect that there are some bad developers who say no because they are lazy; however, most developers say no because of this universal truth. I ask you to respect the no. Do not try to game the system by attempting to trick or coerce the developers into trying to do it all at once. I realize that you need to have it all before you can get any meaningful work out of it. Without setting priorities, your project is doomed to failure no matter how smart or resourceful your developers are.

Going Dark

Features have consequences and not everyone is smart enough to predict all the consequences that the many features of a complex application will have. That is why it is a good idea for users to check on the progress of the software being developed for them on a regular basis. So, it is not enough simply to set priorities. Those priorities must be evaluated and revised as time goes on. Allowing development to proceed a long time without any feedback or iteration from the users is what Microsoft calls going dark. Do not go dark for long periods of time.

The folks who developed Ruby on Rails have written a book about their process of writing software called Getting Real. They are very much into the power of no because it is difficult to remove a feature once it has been added no matter how confusing or debilitating that feature is.

Loving the No

So, learn to love the no. Be wary of those who promise software development without a no. This is the same thing as a promise of something for nothing. It is not real and getting real is what it is all about. It is better to be told something you do not want to hear than to bet the company on vaporware or on software whose TCO is unknown. If you enjoyed this article, then you might also be interested in reading a related article about how Time to Market is Still Everything.

Home News Feed del.icio.us digg Reddit Technorati Yahoo My Web Google Bookmarks StumbleUpon