Writing software is really tricky. Most projects (80%?) fail, so its clear that understanding of the process is slim and certainly not as well developed and formalised as say civil engineering. There are many reasons for this and the current big idea is ‘agile development’ methodologies.
While I must admit to being quite sceptical of ‘magic methodologies’ but being always willing to learn…
This book doesn’t describe individual methodologies but instead investigates the overlooked factor in projects: people. As the author asserts, they are not ‘plug-replaceable’. Software development is looked at as a “cooperative game of invention and communication” and that success is obtained when a team usefully collaborates.
From sceptical I think I’ve changed my view, not in some epiphany but in recognising this is what I’ve always done anyway. In reality the code IS the documentation, teams constantly communicate and in reality people generally pick’n’mix their techniques rather than follow formal methods. Although I still think that development needs to become as repeatable and rule based as engineering, this book asks questions about where we are now and what can we do now, within current understanding.
The book provides some structure and context to my existing practice of writing software and as such is a very thought provoking and recommended read for developers.