“How am I doing?” He was with the company for 2 months by then, with his team leader located abroad. For some reason, unrelated to his work, we sat down to talk – he and two of us team leaders. We finished a topic and then he started: since he was already there with us, maybe we could help. Nobody gave him any feedback regarding his performance.
Moments like these make my brain form a couple of new neural connections. There he was, a young software engineer, with decent experience, not merely interested but desperate to get some evaluation of his work. Many like him never speak out. Whom else have we been neglecting?
And so I set out to meet every one of my team members in private once a month, just to talk out how we feel about each other’s work and performance. Not formally, not in a framework, but openly and candidly. Beginnings are awkward, because people aren’t used to being able to speak freely. You see them sweating and avoiding eye contact. So you, the superior, start talking about yourself and your own mistakes. Then you make space. They will follow. And they will tell you what’s been wrong, often things you haven’t noticed at all.
Once you show yourself open to their criticism, they will open to yours. Turns out, they really do want to be better, and do want to stay on course of your expectations. While it’s inevitable that they’ll be drifting apart once in awhile, when you explain yourself and your motivations properly, they’ll quickly change and you can continue sailing at full speed.
I killed a salesman last week. He called from my cell phone company, he offered me a contract renewal, he kept using 10 words wherever 1 would suffice and kept pushing me to close the deal now, today, immediately. “I don’t understand; you already said you’re taking the offer!” Did I? He earned some well deserved frustration, hang up mumbling something about a time-waste.
“I’ve a better deal for you than you’ll get at our stores” said another salesman calling from the same firm today. I said “I’m listening.” 5 minutes later we closed the deal, the salesman congratulated, thanked me and left to cash in his commission. No pressure, clean, accurate facts, knew what he was selling. When I spoke, he listened. When I was thinking his proposal over, he stayed silent.
Too bad I’ve no way of contacting him in person. I’ve more contracts coming up for renewal.
Are you listening?
Agile? Yeah, we do Kanban. We’ve got our user stories, backlog and deliver iteratively. All good. Except that that’s not what Agile is. Not at all. It’s not the planning poker, story points nor squadrons of Scrum Masters. It’s the spirit.
Whenever the name Agile pops-up, invariably follows the “manifesto”. The 4 principles that you and I have seen over and over again and know by heart. Or do we? We definitively should because they are the Agile. They’re a way of approaching software development, while Kanban, Scrum, XP and all the others are just tools built to serve these very principles.
By declaring to be Agile software developers, we commit to value:
Individuals and interactions over processes and tools
Joel Spolsky has a fun recall of a conversation with a programmer:
It’s people, who make the software that works wonders. No process or tool ever produced anything on its own. It’s the combined power of all the team’s brains that spawns code and turns dreams into reality. It’s in the casual conversations that new ideas are born. It’s in the war rooms that they’re developed.
Processes are only there to get repeatable tasks off people’s mind. If you find yourself repeating the same steps over and over again, for instance when releasing code to a live environment, write a checklist, so you don’t have to rediscover the wheel every time.
Better yet, write a script to automate the the tasks. Tools are there to support programmers so that mundane work takes less time and more brainpower can be used for creative work. Neither tools nor processes should limit people in any way.
That’s why Agile development methodologies are often very open bags of best practices, rather than hands-on manuals. They’re meant for people to digest and adapt to their needs.
Working software over comprehensive documentation
We can always tell whether we like the software we work with. Whether it meets our needs and expectations. But we can’t reliably say whether we will like the software based on specifications. We can’t even properly express our thoughts in writing. It’s insane to expect a programmer to understand our intentions based their flawed description. While the natural reaction is to produce even more documents, it only ensures that they either:
An Agile team demonstrates small portions of fully working software to collect feedback and stick it right into the development process. The team delivers all layers that make up a particular feature, because then and only then does the result have business value. Only then can it be measured as a completed step towards the ultimate goal. And that goal is never the software itself but always solving real-world problems. That is why requirements are described as user stories, so that everyone involved stays focused on the business impact of their work.
Customer collaboration over contract negotiation
Everyone involved in producing a piece of software plays on the same team. The customer wants a product that will meet his needs and the developer wants to make the customer happy by delivering one. Any conflicts inside the team are nothing but a waste of energy, that should be used elsewhere.
There is no space for complaining about incompetent customers, lazy programmes, stupid managers and those a**holes that are “too stupid to get it.” Every person is probably pretty smart and reasonable, or else she wouldn’t have her job in the first place. Communication issues must be distinguished from emotionally charged judgments.
Agile teams keep their customers close. Perhaps not “on” the team and in the office daily, but staying in touch often, asking questions, clarifying issues as they pop up, and regularly demonstrating progress.
Contracts are created merely to protect their signees. When projects work well, everyone may as well forget that they exist.
Responding to change over following a plan
“Another layout change? They’ve got to be kidding.” is the attitude most programmers present towards modification in project scope. “Why can’t they make up their minds?” I already argued that that is not possible. Everything about a project may change at any moment, because the reality around us changes and because our minds change once we face reality. Accept it, embrace it.
A plan is still necessary so that everyone knows where the project’s heading and can make credible commitments about it. Therefore, in the words of general Eisenhower “plans are nothing; planning is everything.”
Agile teams keep their plans light and flexible, so that adjustments don’t require hours of fixing dependencies (I’m looking at you, Microsoft Project). Changes are expected to pop up until the last minutes of the schedule, so everyone treats them as regular, daily business.
Customers are happy, being free to produce new ideas and see them implemented. In the end they will still receive something of true value.
So, are you an Agile software developer? Stop talking about user stories and Kanban. Start talking about business and people.
First name, last name, e-mail, telephone, organization, position, marital status, weight, height, size of underpants? How much really do you need to know about your customers when they contact you? A lot, of course. The more you know the better you can understand and serve them. You need to be in constant contact with your customers to keep checking on their changing situation and collect feedback on your actions. But what will all this information be worth if your customer doesn’t contact you at all in the first place? No contact, no contract.
Looking at the form above a prospective customer will likely prefer to grab the phone and call in, rather than fill out all the fields correctly. That is unless she’s a bit phone-shy and won’t get in touch at all. Now if the form is smart with some validation on top of it, that requires filling out all fields, that’ll perfectly add to the frustration. There are always many other companies offering similar services, available just a click away.
Now that is something different. Admittedly the guys from Analog don’t take any new work at the moment (I’m sure they’ve more great projects than they can handle), but they did manage to remove all possible barriers for future customers to contact them. Just click the text field and type, what you like, as much as you like. Then hit submit and we’ll get back to you. That’s implicitly telling to the customer: we’re here for you. We care. It pays.
On August 28, 1963, 200,000 people gathered at the Lincoln Memorial to hear Martin Luther King give his “I Have a Dream” speech. Two hundred thousand people from across the country arrived at the right place at the right time, back when the Internet and cellular networks were merely dreamed of. They couldn’t share the event with friends on Facebook, nor retweet the invitation, not even send SMSs. Yet all these people made it.
Because the means of communication of the past were so slow and unreliable they forced a certain degree of commitment. You had to inform everyone well in advance of events. You had to RSVP in a timely manner and once you did, you had better shown up as promised or else forget about the next invitation. All this has deteriorated with the advent of instant communication.
I can organize a dinner, invite people and ask for their confirmations. Even that is hard because many refuse to plan in advance. “I don’t know what I’ll be doing on that weekend.” Well, how about you decide then? Once I bought all the ingredients, spent 3 hours in the kitchen juggling tomatoes, frying pans and chicken fillets, half an hour before the event my cell phone beeps with a message “spouse doesn’t feel well, won’t come, sorry.” When 5 people send something similar before the same occasion you start wondering.
Because we have instant communication at our fingertips we feel that we can call off a prearranged commitment at any time. 50 years ago we wouldn’t have a way to notify the other party. Now we do, so we feel it’s OK, completely disregarding the cost of our actions.
I find such behavior to be rather rule than exception. At first, I was annoyed, then came to like it. Makes separating wheat from the chaff so much easier. Because reliable behavior stands out, shining brighter than ever.