Tradeoffs in Software Development

2020, December, 27

Opinion

Scribbling down some thoughts on tradeoffs in software development

Build Fast Vs Build Right

Build Fast : Create working feature as fast as possible even though the implemenation may not be optimal.

Pros: Users get to use the features soon which can lead to faster feedback cycle.

Cons: Since implementation is not well thought out, it could lead to code refactor and technical debt in future.

  • When requirements are not clear or more user feedback is required, Build Fast.

Build Right : Take time to think through the requirements of the feature and come up with an optimal solution. This might involve brain-storming multiple ideas before investing time in implemention.

Pros: Solution is more likely to be stable, performant and scale well in the future.

Cons: Takes time to develop and deliver the working feature to users, resulting delayed feedback.

  • When creating anything that needs to be reused, Build Right

Build for Today Vs Build for Future

Build for Today: Implement a feature based on today's requirement. Not adding anything extra for undecided future requirements.

Build for Future: Implement a feature based on possible future requirements that could emerge but user has not requested for yet.

  • When deciding whether to add an extra functionality that is not currently required, try to answer the question, what will the cost (time/money) to add this later ? If it's a small change then do not add it now. Unused features increase complexity.
  • Differenciate between we really need this vs this is nice to have

Build Vs Buy

Build: Spend resourced to build a required functionality in-house.

Pros: Better control

Cons: Reinventing the wheel

  • If it's something that needs to be customized a lot or is part of the business's core competency, it's best to build it on own for better control.

Buy: Purchase an off-the-shelve solution from a vendor.

  • If it's not part of core competency and does not directly impact customer experience, then buy it.