In this podcast, Shane Hastie, Lead Editor for Culture & Methods, spoke to David Thomas and Andrew Hunt about the 20th Anniversary edition of The Pragmatic Programmer.
Key Takeaways
- The importance of curiosity and the mindset of “still figuring it out”
- When you optimize, standardize and make things the same you crush any hope of getting it right
- The real spirit of agility is about constantly monitoring what you are doing, constantly trying small changes and constantly getting feedback
- The 20th Anniversary Edition of The Pragmatic Programmer was updated to be relevant for today’s context
- Software developers are able to write the future – which comes with incredible responsibility
- Software developers have the responsibility to use their best efforts to explore how their software will be used and how they will mitigate the potential bad uses of the products they build
Subscribe on:
Show Notes
- 00:54 Introduction and background
- 02:23 Figuring out how to get technology things to do what you want them to do
- 02:43 The importance of curiosity and the mindset of “still figuring it out”
- 02:56 The misconceptions about what programming is really about
- 03:06 The need to continue exploring the whole domain of software development
- 03:43 Why they chose “pragmatic” for the title of the original book and publishing company
- 04:04 The danger of trying to find the magic formula for development
- 04:27 The opening words of the Agile Manifesto are about discovering new ways, there isn’t one true way
- 04:15 Some of the dysfunctions that come out of this way of thinking
- 05:12 When you optimize, standardize and make things the same you crush any hope of getting it right
- 05:24 Dogmatism is the opposite of a pragmatic approach
- 05:40 The attraction of the illusion of predictability makes the standardization approach attractive
- 06:32 Disappointment with the current state of agility
- 06:48 Things that were breakthrough ideas when the original Pragmatic book was written are now accepted as normal ways of working
- 07:14 The overarching misconception about what agile is about.
- 07:26 The first value of the manifesto is “individuals and interactions over processes and tools” yet the discussion is almost always about processes and tools
- 07:41 The manifesto is fundamentally about feedback – every element of it is about taking small steps, getting feedback and adjusting as you go along
- 07:54 Part of this feedback-focused ethic has permeated into industry
- 08:07 Some examples of things being done well in the industry
- 08:22 There is no such thing as “agile” – agile is not a noun, it is an adjective, it’s the way you do something
- 08:46 Being agile is something you live, not something you buy from a consultant
- 09:02 Being agile is dynamic, it needs to change constantly in order to improve
- 09:09 The real spirit of agility is about constantly monitoring what you are doing, constantly trying small changes and constantly getting feedback
- 09:34 The danger of taking any practice and turning it into a religion
- 09:49 “We have to do it this way” is just plain, damn stupid
- 10:04 There is no such thing as “best practice” in software development
- 10:23 “Best practice” ignores context
- 11:01 The goal of agile is to always be questioning and exploring
- 11:08 Getting feedback should result in making changes
- 11:12 Make little changes constantly
- 11:27 The challenge of integrating with other parts of an organisation where change is not considered valuable
- 11:37 The impedance mismatch between adapting and changing vs the common management and accounting practices in organisations
- 11:45 There are companies who have embraced the learning approach
- 12:23 Organisations who are using short feedback cycles and adapting constantly, irrespective of what they call the approach
- 13:12 Recounting the story of a Netflix presentation where the audience didn’t consider the context
- 13:52 The fact that someone is doing something in an agile fashion and it works for them is good, but it’s not to be copied
- 14:07 Context matters
- 14:22 Discussing the drivers for updating the Pragmatic Programming book
- 15:01 Changes that have happened in the industry that needed to be reflected in the book
- 15:24 Refreshing and revising the content for today’s world
- 15:44 Areas where the message from the original book had not been received in the way they intended
- 16:03 Some topics were no longer valuable in the current context
- 16:13 The example of Concurrency as a topic which needed much more content in the new edition
- 16:43 The growth of the software industry and how software changes every aspect of the world
- 17:05 Software developers are able to write the future – which comes with incredible responsibility
- 17:14 The importance of ethics and personal responsibility in software development – making sure our work is not used for evil
- 17:36 Many developers don’t think hard about how their product can be used
- 18:21 When faced with an ethical dilemma you have the power and the duty to say no
- 18:53 Examining the various codes of ethics and codes of conduct from various bodies and events
- 19:08 Contrasting prescriptive vs generative approaches to expressing a code of ethics
- 19:42 The fundamental ethical question – “would I be happy having this done to me?”
- 20:10 Examining the unintended consequences of specific examples
- 20:49 The responsibility to use your best efforts to explore how your software will be used and how will you mitigate the potential bad uses of the product
- 21:20 You have the responsibility to manage your own life to make it the way you want it to be
- 21:42 As developers we don’t plan our lives as much as we should – we don’t think strategically about what would make us happy
- 22:28 We have absolute flexibility around where and how we work but don’t tend to take advantage of the opportunities available to us
- 22:42 We have a responsibility to craft our lives in such a way that we do good and have the opportunity to be happy
Mentioned: