In this episode software craftsman Luke Elliott and I discuss what makes great software engineering, excellent software engineers and effective teams…
We argue that understanding and delivering value is really all good software engineering is about. And that engineers understanding the customer is possibly the biggest difference between organisations who deliver value and those whose don’t; and that this is best achieved by combining people who deeply understand the customers like product owners with engineers who deeply care (about value and consequently the customer).
We discuss what makes high performing teams, and touch on the challenge of hiring great engineers.
We make a detour chatting about the importance of TDD and Pair Programming and whether they are a cult, and why some love and some hate these practices, but why, ultimately XP practices like these ultimately the ability to deliver value at pace, reliably and sustainably.
We briefly rant about TLAs and why one should always clarify acronyms (or rather not have them in the first place) and what it means, if a team doesn’t feel sufficiently safe to ask questions (and what one can do to build the needed psychological safety).
We close by discussing that the art of architecture is knowing what to do now and what to defer, why David Knuth is right in saying that ‘premature performance optimisation is the root of all evil’ and what this means for startup who are in bootstrapping mode and must avoid overly early gold-plating and over-engineering while not impeding future scaling.
Luke is a software craftsman with deep experience in lean and agile software development. He believes that great software is crafted by great teams, and that building great teams is challenging and rewarding work. He has lead successful teams across public and private sector, bluechips and startups, in diverse industries including finance, healthcare and energy.
He is a keen proponent of lean and agile approaches, XP and believes in CI/CD, fast feedback loops, outcome over output, and product thinking. He avoids big design up front, command-and-control management, and blame cultures.
He is currently Director of Engineering at OakNorth Bank.
Luke is currently hiring software engineers of all stripes and if you are interested in working like Luke describes, contact him at firstname.lastname@example.org.