Sometimes application development teams are a group of egomaniacs who actually can work well together, and sometimes...
they contain players miscast from the get-go by project leaders. Those are just two examples of the life-in-development lessons cited by software development veteran Tim Lister in his Agile 2013 keynote, "Forty Years of Trying to Play Well Together" this week in Nashville, Tenn.
Lister is principal of Atlantic Systems Guild Inc. in New York City and co-author of the books, Waltzing With Bears: Managing Software Project Risk, Peopleware: Productive Projects and Teams and Adrenaline Junkies and Template Zombies: Understanding Patterns of Project Behavior. He delivered some advice for developers about project management, how developers can foster their careers, challenges involved in arbitrating developer disputes and more in his session at Agile 2013, the annual conference of the nonprofit software organization Agile Alliance.
His suggestions included the following:
- Picking the right hires is not only a first step in building a software development team, it's also the most important one. Lister recalled one day in his life as a software project leader in which he was a contractor and not in charge of hiring. A new developer reported in for his first day of work at the company. Lister had seen only this person's resume and nothing else. Lister took the young developer straight to the code and got him into the project right away. Unfortunately, the new guy wasn't as enthralled with code as he'd indicated in his resume and job interview. He left for lunch at noon on that first day and never came back.
From hiring to organizing groups of staff developers, putting together a software development team is probably the most important task in any project, said Lister. Project managers need to perform due diligence on all prospective team members.
- Don't be afraid to put the best and brightest together on one team. Lister recalled working on the 1992 Arlie Council projects for the Department of Defense. When he saw some big names in software development -- like Grady Booch -- on the team roster, he worried there would be "a lot of blood on the floor."
Even though most team members were "used to being the boss," and there were some arguments, the project went smoothly. Everyone on the project put their egos aside for the sake of the software systems they were developing. "If a bunch of egomaniacs like us could do it," said Lister, "There's a pretty great chance for your team, too."
- When arguments flair up within a software team, let each individual express an opinion. Make sure they know they've been heard and their opinions considered, even if they expressed themselves in an emotional way that doesn't suggest a solution.
Lister learned this lesson during his stint as a judge for the American Arbitration Association. In arbitration, both sides make emotional pleas that would never fly in a court of law. Usually, the opposing lawyer will try to object and shut the other side down. The elder arbiter showed Lister a technique he called "the magic finger" for use in these situations. The technique calls for the judge to point one finger in the air in the direction of the standing lawyer while maintaining eye contact with the witness. With one hand, he lets the lawyer know that, as a judge, one knows what's going on, and you're choosing to allow it. With the other, the judge offers the same deal to the other side. "The magic finger works to settle disputes within the team as well," said Lister.
- Write about what you do and your professional views and opinions. The writing experience is valuable, whether you're writing papers, blog posts, articles for industry publications or books, said Lister. To write, a developer has to put his thoughts in a cohesive order and make sure there's support for a position. That process improves the quality of the work the writer does every day.
Writing also enables peer review. In Lister's experience, peer review has fostered support, important feedback and interesting discussion. "Writing the paper is a great way to distill your ideas and opinions and moving ideas out of one thick skull and into another," he said.
- Find and make work that is enjoyable. He cited Red Gate Software Ltd. as a software organization where application development is a real joy. Co-founders Neil Davidson and Simon Galbraith foster an environment and culture in which great developers thrive. "You walk into this place and you just have to smile," he said.
At Red Gate, new ideas get welcomed and debated in a collaborative way. "They've built 300 spectacular jobs," Lister said. This is the crux of what a career in software development is all about for Lister. "Take the ride of life with good friends," he said. "Feel the breeze of time."
Trust is key when building an Agile team