Danny's Tech: Where West and East Intersect

Saturday, February 03, 2007

Software is Hard!

"Software is Hard" is a good read on how programming is a tough problem that hasn't been solved in the past several decades of computer science.

In one way, it's easy to say, "let's do it ourselves" because we programmers think we can do it better and quicker. This desire for DIY (do-it-yourself) is exasperated by how existing software is never customizable enough. Those which are (and this number is increasing as open source take off), the start up cost of learning and then adopting existing software is non-trivial.

The third party way can be easier in terms of in house effort but the cost is high and in the long term still not pay off. One good example area are the business management software like ERP (enterprise resource management) and CRM (customer relationship management) where consultants can make big money adopting the in house system to third party systems (like SAP). My experience, however, is that such tools are too inflexible to deal with custom needs of a given company and end up largely unused (or the company has to contort their existing process to fit the software and make everyone suffer).

The hard problem of software is capturing the ever changing requirements of users and implement it correctly. Unfortunately, those very requirements change due to the feedback loop process of seeing and using the implementation [and the user not explaining themselves clearly and/or not understanding the requirements themselves].

Working with teams is another issue with no easy answers. Mythical Man-Month by Brooks captures this hardness of working with others. A great team can exists and I have been part of such teams but there is never a perfect team so problems will come up at least once in a while.

Copyright 2007, DannyHSDad, All Rights Reserved.

Labels: ,