What happened
Sanjeev Subramaniam opened with two lists of what software development is. The first was his own view starting out: raw skill, handle everything yourself, fear failure, it is my code, mastery of the language and whatever else is buzzing, think for users, be competitive, solve for the future. The second was what a dozen years had replaced it with: knowing the game, decision making, domain knowledge, embrace failure, I will be replaced, be collaborative, listen to users, solve specific, respect the past. His own summary was that the work turns out to be conversational communication and a constant stream of decisions, some intuitive and some meticulously informed.
It was built as a workshop rather than a talk, around three activities: agree a definition of success for your team in three cornerstones, write a team charter, then take a scenario and decide it while recording the trade-offs and the values that drove the call.
He put success in two grids. An organisation against its individuals, where both winning is a joint endeavour, the organisation winning alone is a sweatshop that will last only as long as its people have nowhere else to go, and the individuals winning alone is a playground that will not last either. Then an organisation against its users, where winning alone is business exploitation and losing alone is user delight, which is the pleasant failure where people love the thing and nobody can pay for it. What mattered was less which definition a team lands on than that it is genuinely shared, meaning agreed and actively supported rather than announced.
The sharpest thing in the deck was four lines of dialogue. A client asks for this week's sales data as a PDF, and the team says of course and sends a PDF. In the second version the team asks what it is for, learns that analysts want to run something over it, suggests CSV instead, asks whether this will recur, and hears that it will not, so nothing needs automating. Same request, two minutes apart, and only one of them produces a file anybody can use. He traced the word conversational back to Kent Beck proposing it at Snowbird, on the grounds that the heart of the thing was an ongoing conversation between customers and developers.
That idea then ran through the technical practice. Stories are refined by conversation rather than handed over, with the product owner still the final decider on priority while everyone else spots gaps, proposes cheaper alternatives given what the codebase actually is, and splits things that are too big. Testing shifts left so scenarios are written before developers pick a card up. Tests are a conversation with the requirement, pairing is one with another developer, and readable code is one with whoever arrives later, including yourself.
On culture he used the Laloux colours, red through teal, with the caveat that the later stages are not better, only fitted to different contexts. And the forest and the desert, which is Kent Beck and Beth Andres-Beck's metaphor for why two groups of developers cannot take each other's advice seriously: in the desert bugs are plentiful, skill is not cultivated and users are hard to reach, while in the forest changes go out quickly behind tests and the customer is close by, so guidance from either sounds like nonsense in the other. Any lesson about practice carries the context it was learned in.
The longest section was about deciding, and most of it was not about software. An adult makes something like thirty-five thousand decisions a day and has almost no ritual for the large ones. Decidere means to cut off, and what gets cut off is the option not taken, which the mind files as a loss, which is why people avoid deciding at all. Hard choices are hard not through ignorance but because there is no best option: values are not quantities where one thing must be greater, lesser or equal, so a fourth relation is needed for alternatives that are on a par. He listed the ways people avoid the moment anyway. Procrastination, sticking only to the familiar, outsourcing the call until you no longer trust your own judgement, and perfectionism, for which he had the best line in the deck: in our dreams our eggs are always cooked to perfection, but we cannot eat them.
What he offered against that was mostly permission. Spinoza on there being no such thing as a bad decision, Miles Davis on no note being right or wrong because it is the note you play afterwards that decides, Aristotle on judging intentions rather than outcomes, and Norm Kerth's prime directive. Then the practical part: make the decision, write it down with its context and consequences, communicate it, and revisit it later, which in architecture means keeping decision records rather than rediscovering old reasoning. He also made the case that technical breadth is a precondition for deciding anything, because without it the options are not narrowed, they are simply never visible. The closing slide, in February 2025, read that while AI is busy conquering the solution space, we might focus on the harder one, which is the problem space.
What was promised
A Workshop on Collaboration, Culture and Decision Making for Building Better Software Together
Sanjeev Subramaniam
Senior Consultant, Equal Experts
Sanjeev Subramaniam is a Senior Consultant at Equal Experts with a deep passion for code craftsmanship. He has over 12 years of experience in the industry and enjoys exploring programming paradigms and development principles. Sanjeev believes that fostering a strong human connection within development teams is crucial for building high-quality software.
Location:
Kovan Labs
IndiQube Echo, Avinashi Rd, TNHB Colony, Indira Nagar, Civil Aerodrome Post, Coimbatore, Tamil Nadu 641014.
About the Workshop This workshop, led by industry veteran Sanjeev Subramaniam, will delve into the often-overlooked human element in software development. Sanjeev, a passionate code craftsman with over 12 years of experience, will guide you through the intricacies of collaboration, culture, and decision-making within development teams.
Key takeaways Understanding the impact of human factors on software development
Effective communication and collaboration strategies for cross-functional teams
Building a positive and productive development culture
Techniques for making informed decisions that benefit the entire team
Practical insights and real-world examples to improve your development process
Who should attend?
This workshop is ideal for developers, team leads, project managers, and anyone involved in the software development lifecycle who wants to create a more collaborative and efficient working environment.
Don't miss this opportunity to learn from an experienced industry expert and enhance your team's performance!
Register now to secure your spot!
