This book gave me a part crisis, part epiphany. It has given me a fresh perspective on my career and a look at the things I have got right or wrong. Its subtitle, ‘A Code of Conduct for Professional Programmers’, is accurate but I have been showing it to friends who are office workers or engineers and just friends in general. One friend, Paul, a former Chief Pharmacist for an NHS trust, said that people in the NHS could benefit from this kind of guidance. It is structured in a way that is amenable to referring to individual chapters for specific guidance. The author started out as a programmer and then moved to consultancy and has a lot of useful tips for professional programmers.
Chapter 1, Professionalism, was a wake-up call for me. To quote the author, “Professionalism is a loaded term. Certainly it is a badge of honour and pride but is also a marker of responsibility and accountability.” I’ve accepted responsibility and accountability in my career but this is the first time I’ve seen this advice written down on paper. It is the kind of information that I wish I had when I was at University.
Chapters 2 (‘Saying No’) and 3 (‘Saying Yes’) are good ways to deal with Management by Objective. To quote: “Professionals speak truth to power. Professionals have the courage to say no to their managers.” It covers how to deal with arguing your professional case within a company and how that can be done in a professional manner. The ‘Saying Yes’ chapter has an interesting guest article, ‘A Language of Commitment’. Namely: ‘Say. Mean. Do’ – ‘You say you’ll do it. You mean it. You actually do it.’
Chapter 4, ‘Coding’, is a mini-book in itself and refers to another of the author’s books: Clean Code. Chapter 5, ‘Test-Driven Development’, covers TDD well enough but the bibliography is a bit poor. Chapter 6, ‘Practicing’, introduces TDD concepts like Coding Dojos and the relevance to martial arts practices like Katas, Wasas and Randori and how practising is a necessary part of being a professional.
The rest of the book covers Acceptance Testing, Testing Strategies, Time Management, Estimation, Pressure, Collaboration, Teams and Projects, Mentoring, Apprenticeship and Craftsmanship and, finally, Tooling.
By now you should know if this book is of use to you. I believe it will be.