author-image

Kevin Riedl

11 min read · 07 June 2024

Why People Think Agencies Suck

We all know all these horror stories around Software Agencies. Agencies that deliver faulty software. Software hasn't been delivered at the said deadline. Or expenses were just way higher than expected.

But what's the real issue at hand? Usually it's a combination of bad communication, lack of reporting, unforeseen risks and tasks that have not been accounted for.

So how do we build better software, while keeping costs low? (dream outcome)

Working on a Web3 Project?

 Challenge your Product

The Devil's Quadrangle

Let's have a look at the so-called Devil's Quadrangle.

You might have heard about the Magic Triangle. The Magic Triangle consists of three project constraints: Time, Cost and Scope. These constraints need to be balanced against each other to deliver a project. Changing one of them will impact the other two.

Harry Sneed, a Software Engineering professor has extended this model by a fourth constraint "Quality". This extended version is usually referred to as the Devil's Quadrangle of Project Management or Sneed's Devil's Quadrangle. It splits out the quality from the Scope, which now solely focuses on the content of the scope and not the quality of the scope delivery.

Let's think this through. If we want to have software delivered in a very short amount of time, we probably need to hire way more developers, possibly reduce the scope and even sacrifice software quality.

The Devil's QuadrangleFocusing on the Expenditures of developing software results in lower software quality, a tighter scope and slower speed of delivery.

As such does focusing on quality by spending more, having a tighter scope and most likely a delayed project launch. And you have to deal with much higher software development costs by optimizing for quality, scope and speed of delivery (see figure).

One of the many reasons why Software Agencies have a bad reputation is misalignment on expectations. Always make sure to set realistic expectations and to choose the trade-offs you're willing to make.

Quote Author Image

"Fast, Cheap or Good. You can only pick two."

Cost of Quality

Another great way to showcase this is the graph below.

Cost of Quality

The more time your team spends testing and optimizing the software, the less defects it will have. As a consequence prevention costs will be higher. As such Prevention costs are exponential. This means the more stable you want your software to be, the exponential more time your developers need to spend on testing and optimizing.

If your Software is being used in airplanes for example, you definitely cannot risk any errors - for that reason you may want to invest much more time in prevention. The same applies to applications in Web3 since you are usually dealing with large amount of customer funds. Depending on where your software is used, you want to be somewhere on that curve - usually within the operational range.

Let's switch to Failure costs. The more errors happen in production, the more has to be evened out. This can be damage to your brand, technical debt, additional maintenance overhead or actual monetary damage by people suing you for example.

As a consequence you usually want to just spend enough on Prevention to have reasonable failure costs. This is called the economic equilibrium.

Building a Web3 Project?

 Book Free Consultation

What about Risks?

Doing anything in life comes with risks. Things we are aware of, and risks that we recognize when it's too late.

Unfortunately, we also have to deal with that in Software Development. As a consequence project risks can put significant pressure onto any project budget. Let's have a quick look.

How to budget a Project

Every project budget should be structured into three buckets. Work package estimates (features - things you want to have built), Contingency reserves (work that needs to be done if some identified worst case scenario occurs) and Management reserves (a flat budget that hopefully covers all unforeseen and actually occurring worst case scenarios). Accounting for risks significantly reduces the overall project risk as there is a clear budget assigned for solving the problem.

Final thoughts

In conclusion, Software Agencies are not bad per se. Most often it's the misalignment of expectations and the lack of communication that makes them look bad. Always make sure to set realistic expectations and to choose the trade-offs you're willing to make.

So next time when engaging with a Software Agency, ask them how they plan to update you on their progress and if they set proper expectations.

You may also like..
author-image

Kevin Riedl

11 min read · 07 June 2024