by David Cornwell

Among all the books that explain how ideally we should develop softare (ie “Extreme Programming Explained”) this book really stand out. The author focuses on his experience in starting a small software company, with little to none seed investment, and growing it organically so that it become valuable to external investor - but, most importantly, valuable to their customers, too.
It is a very nice counterpoint to the rethoric of the “unicorn StartUp” that somehow secures billions in financing even before a demonstrable product market fit.
The advice in the book are very opinionated, and not seldom unexpected. For example, he explains how he avoided a “religius agile” with good reason, or at least backtracked a bit once they recognized they couldn’t handle it in its full extent. Agile and “waterfall” both have pros and cons. Depending on your situation, the kind of development you are doing and what are your “clients” you can decide which singular practices are best to adopt. For example, having as much requirements upfront is in absolute a good think, so one shouldn’t feel it can’t be done because it is somehow “frowned upon” in agile. The reciprocal is also true, that is being unable to manage changing requirements is bad. But still, having requirements upfront as much as it is commercially and strategically possible is the best way to start a software project, and that remains true whatever software metodology one adopts.
The book subject is wide, and covers only in part the “pure development” aspects. Strategy, marketing, HR are also covered with the same practical approach.