Article

The Five Deadly Sins of Software Development

Bernhard Kappe
Bernhard Kappe
This post was previously on the Pathfinder Software site. Pathfinder Software changed its name to Orthogonal in 2016. Read more.

There’s a list of deadly sins out there for just about anything related to information technology. Some have seven items, some have five, some even have nine. I haven’t seen one with 21 deadly sins yet, but I won’t be surprised if I do. Some focus on IT departments, some of unused software, some on agile software development, and quite a few on whatever they’re trying to sell you.

We’ve seen a lot in our ten years of developing software at Orthogonal, and the list that rings truest is the shortest and pithiest, from the Standish Group:

  • Ambition
  • Arrogance
  • Ignorance
  • Fraudulence
  • Abstinence

Each of these is best illustrated by example:

Ambition (or Overambition)

Example: Trying to build something too fast with too many people and designed to be all things to all users.  This is also known as boiling the ocean.  It’s something we see a lot from prospects.  We’ve got a saying at Pathfinder:  “If the business plan is based on replicating the best features of Google, Facebook and Amazon, the agile thing to do is to run away.”

Arrogance

Example: “A prime executive who overrides user input and forces implementation of his or her mistaken perception of how things should work”

Ignorance

Example: If the requirements document states that the new system must “do everything that the old system did,”  that’s usually a cop out for not knowing the details of what the old system does and doesn’t do, and how that’s applicable to the business problem you’re trying to solve.

Fraudulence

This one certainly gets your attention, doesn’t it?

Example: The most common form is underestimation of costs in order to get a project approved, or giving a dead certain estimate for something that is too undefined.  Wishful thinking is a milder form of this.  (I don’t want to peek too far ahead to next week’s post, but agile has some great tools for guarding against this.)

Abstinence

Example:  When key people do not participate in the project.  In an agile project, when the key decision makers do not provide feedback and decisions, the project slows down, can get off track, and money and time is wasted.   (Hint on the solution:  Designate and empower project managers.)

Keeping this little list in mind throughout a project lifecycle, and knowing how to deal with them when they occur will help keep your project on track to success.

Related Posts

Article

Essential SaMD Regulatory Documents: Curated List

Article

Case Study: Capturing Quality Images for ML Algorithm

Article

Building & Scaling a Successful Cybersecurity Culture