Agile expert Dave Thomas kicked off day two of Agile 2010 with a 90-minute keynote where he covered topics ranging from the history of agile, trends towards lean development, enterprise agile and future trends. The keynote was entertaining and chalk-full of agile pearls of wisdom. Perhaps one of his most provocative statements was his claim that the world's most powerful tool was a card. "If you can't do it with a card, you're not going to be able to do it with all the fancy tools."
Put away the laptops
Thomas paid heed to the many vendors and developers of fancy tools in the audience, but wanted to make a point that we have become too dependent on technology. He suggested that the only people that should bring laptops to meetings should be those who are responsible for recording the meeting. "It's supposed to be about people and interaction and discussions; not about talking on the damn machine!" he said emphatically as I sat in the front row, Tweeting about the keynote. I considered shutting down the laptop before he called me out, but decided to risk it. Go somewhere without my laptop? Inconceivable!
Though I know Thomas was making a point, in a world where distributed teams are a norm, tooling and technology is imperative to strong communication and collaboration. Many of the vendors I've been speaking to at the conference are continually adding features for enhanced collaboration. Based on the interest and growth in Agile ALM, agile teams do need more than sticky notes, especially for distributed teams working on large-scale projects.
Again, I'm sure Thomas was not suggesting we give up tooling; simply that we remain focused on people and face-to- face communication. "Software is still built by people," he said. "Technical people tend not to be strong in 'peopleware.' We need a lot more investment and a lot more engagement," he said, when talking about the need for change management when an organization is going through major change.
It's the practice, not the method
Thomas talked about the various agile methodologies and the insistence by some that their way is the better way. "We need to end this battle of the method and win the battle of the practice," he said, encouraging people not to argue about which method was best.
He described Kanban and lean methodologies. "Lean is so easy it's hard. It requires only one key thing: the ability to think." He talked about how lean methodologies focus on removing waste, improving flow and continuous improvement. Examples of software waste would include too many meetings, lack of transparency and lack of common vocabulary. He said that Kanban was less prescriptive than Scrum.
However, he reiterated the warning about not falling into the trap of claiming one methodology is best by chanting nursery-rhyme style: "We do Kanban, we do Scrum, we do XP, we're all dumb," invoking laughter from the crowd.
Certifications and craftsmanship
Thomas talked briefly of the controversy around certifications, briefly implying that the objectives of some certifications appear to be ways for certification vendors to make money or for employers to know which people to hire. He expressed dismay at an organization which publishes the certifications of its employees as compared to competitors' employees. His final slide was a spoof on Certification Kamp claiming anyone could be certified for a certain price.
He did acknowledge the need for education, however. "It's important that people acquire bodies of knowledge. You have to start somewhere. It's a responsibility of our education system to make sure people have the right body of knowledge. I favor apprenticeship or competence by practice," says Thomas. He describes the craftsmanship movement and a cooperative education program in which students are mentored and coached in conjunction with education. "In order to become a craftsman, you must practice. You need to maintain your competence." Thomas warned this was especially important when pairing, joking that no one would want to pair with someone who didn't even know the keyboard shortcuts.
What's important in Agile Throughout the keynote, Thomas brought up agile practices that he felt were important to success. Continuous integration, test-driven design and development were a couple of the must-do practices. He said that it's important to have tangible, testable requirements and that he's seen test-driven design work for in many challenging situations including for the GUI, database, real-time OLTP, analytics and embedded software. He talked about the use of envisioning, used in situations where describing requirements with text is difficult.
Thomas stressed the idea of collective ownership: pairing, reviews and inspections which allows for the sharing of knowledge, reducing risk, reducing stress and preventing defects. "It doesn't mean two people holding the mouse," he said saying people didn't have to be religious about it. However, he did say that on average, there should be 1.5 people at a computer.
"The person you can learn most from is someone who has failed before," said Thomas, again noting how experience can trump book learning.
He noted the importance of getting support from executive management, starting with a lean and agile assessment to find out where your organization stands. He then said the organization should establish realistic expectations for predictability, plan for systemic change over 18-26 months and establish a change plan, including governance, careers, communications, facilities and a transition team.
He felt that organizations should be less vertical with fewer layers of management and more emphasis on rewarding and growing technical careers with roles for distinguished engineers and outstanding technical contributors. He encouraged people to participate in communities of practice such as user groups, calling people that did so "energy sources for learning and change."
Another piece of advice from Thomas: "Always leave the code smelling better than you found it."