Why Software has Bugs

Subscribe to The RSS Feed

I recently heard a joke geared towards engineers:A Software Engineer was asked by his wife to get some milk at the store, and if they have eggs – get 6. The Software Engineer returned from the store with 6 bottles of milk. His wife asked, “Why did you get 6 bottles of milk?” He replied, “Because they had eggs.”

If you laughed at this joke, you have the mind of an engineer. In sharing this joke with others, it struck me that this communication problem is what happens in software projects all the time. The business owners feel as if they are being clear with a request they are asking for and the software team understands what they said in a completely different way. The issue is that, like men are from Mars and women are from Venus, software developers and business people approach problems differently. Neither is right or wrong – in fact you need both to be successful – they are different, and this is what causes problems.

The solution to this is to have a well-defined disciplined process, such as one based on Agile methodologies. Agile development principles help bridge this difference of thinking. These principles include:

  • Writing what needs to be done in customer’s language – user stories
  • Holding planning meetings with all of the stakeholders to review what is to be done together
  • Providing mockups and wireframes to “see” the solution early
  • Running demos of working parts early and often

By having a disciplined, well-defined, process, we can achieve a great solution despite the differences in how people think and approach problems.