Category Archives: Software Engineering

Analyzing Requirements and Estimating Project Length

November 14th, 2006

Being commissioned for the development of a large software system caused me to reflect on the sources of past software production faults. Three elementary sources of problems were minimal or unacceptable project visibility, compressed schedule, and incomplete requirements analysis and design. These elementary problems resulted in secondary problems such as faulty software implementation, seemingly endless […]

Celebrating Software Modularity

September 7th, 2006

I have recently been involved in the modification of several software systems. In one system, service provider preferences changed, which required code that interfaced with the new provider to be implemented. The presence of engineered software architecture simplifies change. A desirable architecture for a system with uncontrollable external dependencies facilitates changes that are localized to […]

“You Got It, Boss”

June 19th, 2006

In Tales of Vista development at MSFT, Scott Berkun finds a money quote from a former Vista development manager. After finding resistance when reporting the truth, particularly of but not limited to slipping project schedules, engineers tend to fold. Travel 3,000 miles on foot within 2 hours? You, got it boss!

Ding! Fries are Done

June 15th, 2006

An article claims that Backward Switches Doomed Probe. This does not mean that Lockheed Martin’s engineers are incompetent. Aerospace engineers are highly respected for the engineering problems they have solved and continually face. The article, instead, discusses the possibility that time and cost constraints on the production of the probe resulted in the probe’s failure. […]

Coordinating Development with a Growing Team

May 31st, 2006

The development team of a small company that I have recently joined is continually growing, and coordinating development efforts within this team requires more than controlling file permissions. Using file permissions as a primitive means of source code control worked when the team was small, but simply using file permissions and a de facto standard […]