Business-focused custom software

Go Back

Having it your way (except when you can’t)

Good projects (and by “good” I mean “successful” of course) always have a defined objective. Everyone knows the goal, and everyone stays focused on that goal throughout the project.

Also important in a good/successful project is understanding the project sponsor’s values. For example, some customers place a high value on source code portability – the ability to easily take the code to any vendor. Others may prioritize completing the project as quickly as possible. In the case of the former, using a third party component might not be appropriate, but for the second customer this might make a lot of sense.

I mention project objectives and customer values because these can have a big impact on architecture and design decisions. Dare Obasanjo makes this point in his post There are no bad design decisions… While I don’t agree 100% with his title, I think  Dare has a point. A design decision that makes no sense in one situation may be perfectly acceptable in another with a different objective and a different set of values. The key is understanding that these decisions involve tradeoffs.

No one really likes tradeoffs. In a perfect world, we wouldn’t have to compromise. And custom software (which by definition is “have it your way” software), may provide the illusion to some that the laws of physics - or in this case the realities of software development - can be broken.

Unfortunately some values will always be at odds. “Completing as quickly as possible” will never be completely compatible with “make the application really easy to change without additional programming”. You can have multiple values, but they need to be prioritized.

While this can be frustrating, it can also be liberating. Trying to be everything for all situations is bound to fail, and take forever in the process. So define a goal, come up with a few key, prioritized values, and stop trying to achieve design or architectural perfection.

Bottom line: You can’t really have it all. That’s life.

  • Facebook
  • Twitter
  • Digg It!
  • StumbleUpon
  • Technorati
  • Del.icio.us
  • Reddit

Post a comment!

Formatting options
   
 
 
 
 
   

Wanna Subscribe?
Here's the RSS Feed

What the critics are saying...

Avonelle is an incredibly talented software developer. She works fast, is economical, and offers great insights into the project at hand. She is also not afraid to speak up when she has concerns about a decision or approach. We’ve utilized her talents on many of our software development projects over the years.

Carrie Rocha, Chief Operating Officer @ HousingLink