#tradeoffs
4 posts

Is High Quality Software Worth the Cost?

The trade-off between quality and cost doesn't exist in the software world. Counter-intuitively, higher quality software tends to be cheaper in the long run. This article explains how to put quality, cost of ownership and technical debt into perspective.
Read more

Is High Quality Software Worth the Cost?

The trade-off between quality and cost doesn't exist in the software world. Counter-intuitively, higher quality software tends to be cheaper in the long run. This article explains how to put quality, cost of ownership and technical debt into perspective.

  • Software quality is divided into external (can be seen by the user) and internal (code architecture).
  • Internal quality, even though invisible, makes is easier to enhance the software and push releases much faster. The cost of adding a new feature or fixing a bug is termed as technical debt.
  • High quality software always pays an initial upfront cost in order to get the code architecture or design right. Over time, the ROI on a well designed codebase is much higher.
  • The best software teams end up creating technical debt. This is largely attributed to developers never solving a new problem with each product. To deal with this cruft, great teams write automated tests and continuously refactor to fix issues, keeping it at a manageable level.

Full post here. 14 mins read

Software development speed vs. quality: a tech shop conundrum

Achieving both speed and quality together is nearly impossible. Startups and smaller companies often lean towards speed, since they need to be disruptive to succeed.
Read more

Software development speed vs. quality: a tech shop conundrum

  • Achieving both speed and quality together is nearly impossible. A tech shop can operate in speed mode, or quality mode, or somewhere in the middle.
  • Developers, quality engineers, and quality assurance folks, who define their success in terms of quality, are the advocates for it.
  • Executives, product managers, sales & marketing people who are driven by deadlines that impact growth and revenues push for speed.
  • Startups and smaller companies often lean towards speed, since they need to be disruptive to succeed.
  • Within a single product release schedule, there can be a shift from quality mode early on in development to speed as there is more pressure to deliver.
  • Towards the end of the release cycle, you may need to sacrifice scope to hot deadlines while maintaining quality.

Full post here, 5 mins read

Scaling a Mature Data Pipeline — Managing Overhead

Over time, teams end up encoding application structure in the data pipeline. Application logic gets coupled with orchestration logic. Orchestration complexity causes overhead. This complexity scales with the depth of the data pipeline.
Read more

Scaling a Mature Data Pipeline — Managing Overhead

  • Over time, teams end up encoding application structure in the data pipeline. Application logic gets coupled with orchestration logic.
  • Orchestration complexity causes overhead. This complexity scales with the depth of the data pipeline.
  • When you decouple orchestration logic from application logic, you get tools to fight the overhead, without compromising the quality of the application.
  • When trying to reduce the run time of a data pipeline, analyze the whole pipeline’s execution time, not just the obvious factors like map-reduce computation time.
  • Focus on fault tolerance considerations.

Full post here, 11 mins read

The (not so) hidden cost of sharing code between iOS and Android

Dropbox team discovered that writing code once sounds great in theory but over time it leads to overheads that end up being more expensive than just writing the code twice.
Read more

The (not so) hidden cost of sharing code between iOS and Android

Dropbox team discovered that writing code once sounds great in theory but over time it leads to overheads that end up being more expensive than just writing the code twice. Overheads of:

  • custom frameworks and libraries
  • custom development environment
  • addressing differences between the platforms
  • training, hiring, and retaining developers

Full post here, 7 mins read