How to Build Good Software
Wonderful essay on how to build a good software.
Loved the introduction:
Bad software is one of the few things in the world you cannot solve with money. Billion dollar airlines have flight search apps that are often inferior to those built by groups of students. Established taxi companies the world over have terrible booking apps despite the threat they face from ride-sharing services. And painful corporate IT systems are usually projects with massive budgets, built over the course of many years. Whatever the cause of bad software is, it does not seem to be a lack of funding.
The reason for such outcome is multiple change of hands. I didn’t think about this.
Usually a company has some ideas. They get a software developed on those requirements. And then the original team goes and a maintenance vendor takes over. This is where all the complexity begins.
Apart from keeping the code simple by avoiding complexities, it advises to hire best engineers.
Both Steve Jobs and Mark Zuckerberg have said that the best engineers are at least 10 times more productive than an average engineer. This is not because good engineers write code 10 times faster. It is because they make better decisions that save 10 times the work.