Tony and Craig are at YOW! Conference in Brisbane and chat to Jessica Kerr, software developer, consultant and symmathecist (look it up or listen to the podcast) and apart from our first live podcast sneeze they talk about:
Managing the Finder team at Apple – hired for stellar C++ coding ability and customer empathy
Software development is a team sport – including QA, a dedicated product manager / product owner and designers
After Dark and Flying Toasters at Berkeley Systems
“Managing the Unmnageable” is 9 chapters and around 300 rules of thumb and nuggets of wisdom (the creamy centre), the tools used to manage software development teams plus the authors own insights
There were very few books (7 at the time) on managing software developers (unlike project management and agile)
Situational Leadership – opens your eyes to delegating and supporting the people on your team
The most important rule – always be recruiting
The Study of Product Team Performance – effective onboarding correlates with the highest performance teams (yet 7% consider this to be a best practice)
Self organising teams are where every single member of the team is a leader from their expertise
A team created definition of done may be one of the most important practices in Agile
The frequency of standups correlates with the performance of the team
The Daily Standup was not intended to be a status meeting but rather a replanning meeting
Teams that have stories for their entire backlog are correlated with the highest level of team performance
Ambiguities in the requirements typically popup in the middle of the programming, which is why it is so valuable to have a Product Owner nearby to address these
Software development is a team sport – what gates teams is collaboration and communication – we need to nurture and provide support for that to thrive
We have two ears and one mouth and we need to use them in that proportion
Extreme Programming (XP) was born at Chrysler by letting go of conventional wisdom and pushing practices to eleven
Software development is a social process, not a sum of individuals process
Nobody cares about certificates, we care about competence
It’s time for a renaissance and reboot of XP – this time it needs to be inclusive and no barriers to entry
We know how to make a difference – it starts with execution and continues to empathy
Big tent agility can become an excuse not to tackle hard problems
“Not thinking about all the legs on the stool leaves you sitting on the ground” – some of the legs of agility require a fundamental change in belief
As a programmer am I responsible for my code running – once you have that belief, unit testing falls out of that
TDD is a set of feedback loops and an incentive system to encourage confidence and certainty
Test, Commit, Revert takes TDD further – run the tests, if they pass you commit and if they fail you revert the changes – incentive to take small steps
“Silence is the sound of risk” – you need feedback (unless you are perfect)
XP was a better product, but it lost (round one)
Electric or blade?
If XP starts with the premise that we want a process that anyone with talent and skill can contribute and grow at maximum velocity, the rest will take care of itself
Agile as a name is so attractive, nobody doesn’t want to be agile – the brand of Extreme Programming means if you are not extreme you are not going to say that you are
The fundamental question to ask first is “what do we have to lose” – if you have nothing to lose you need to try short and crazy experiments to find things nobody else is doing
3X model (explore, expand, extract) – YOW! keynote “3x Explore, Expand, Extract” – depends which part of the curve you are on as to which tools in your bag you should use, rules of the game change depend on whether you are looking for a new source of value (explore), growing fast and trying to keep up (expand) or continue growing to pay for new explorations (extract)
The real value of Agile is in the technical practices so we can build iteratively, but still very few people practice them
The future is already here, but it is not very well evenly distributed – the same applies to Agile
Companies are being consumed by their technical debt and they don’t even recognise it
What is always cheaper in the virtual domain is building quality
Continuous Integration makes the most painful thing in software development (integration) our greatest asset – this in turn gives us feedback
We don’t necessarily know there is a better way to do things – but there is a better way to do things
We traditionally think of software as a write once event, but it is write many – users want it changed
We think procedurally so object oriented code often ends up being procedural with a class statement wrapped around it
Test First Development – very few developers know how to write a good test because they haven’t been taught, it was intended to assist with refactoring
Studies show about 10% of people follow the Agile technical practices like XP, and only 10% of those are doing it correctly
The mindset of testing is different to the mindset of coding and they are mutually exclusive (in the same way we need editors when writing a book)
Refactoring is at two levels because we learn in chunks – we need to do while doing test first as well as in the large
Test Driven Development is something you learn over very many difficult weeks or months, it is a hard concept to teach, it is becoming more accepted but still slowly
“Clean Code” – had to abandon a tradition in software development when writing this book and laid out rules telling people what to do
“The Clean Coder” – was a backlog from “Clean Code” about how to be a professional programmer
The ranks of programmers are doubling every 5 years, so half the people doing the work have less than five years experience, the industry is in a state of perpetual inexperience
Craftsmanship movement began as a response to the technical community feeling like they were kicked out of the “agile” house that they built as it became more about people and process – the desire is to bring the two camps back together
Kent Beck said “The goal of agile was to heal the divide between technology and business” – the focus has been mostly on the business side
We need a set of ethics and standards that define a profession for software development – the agile and software craftsmanship communities are the right ones to do this as it needs to be done by practitioner
This is a special mashup episode recorded in Auckland, New Zealand. Craig catches up with Mark Derricut from the Illegal Argument podcast and Craig Aspinall from the Coding By Numbers podcast. Not your usual Agile podcast, the discussion starts around the definition of Agile (“crash often, crash regulary”) and trying to define quality and ends up in a chat about wicked problems, devops and software development skillsets.
This episode has been released on the other channels as well (take a listen if you haven’t already)