11/4/13

9 Low-Tech Tips for Agile Project Management

“Somewhere today, a project is failing.” These are the first words in chapter one of DeMarco & Lister's cubicle-breaking book Peopleware. They say that the major hurdles encountered in software development projects are not so much technological as they are sociological. For years, people have been developing and redeveloping the same or similar projects, and yet one somewhere today is in trouble. The problem is that high-tech people, enamored with the technology, look to code themselves out of a problem rather than interact with the team. DeMarco points out that because we go about software development in teams and projects and other tightly knit working groups, we are mostly in the human communication business. In 1987, this may have been a cry in the wilderness, but by the time of the Agile Manifesto in 2001, it was commonly accepted. As the manifesto proclaims, the focus should be on “individuals and interactions over processes and tools.”

Peopleware proposes changing physical work spaces and mental attitudes to promote communication, but communication can also be improved by simpler project management processes. Project management can be tough, especially when technology gets in the way of the goal of developing software that provides value to the users. Creating a complex software system becomes even more difficult when processes rely on other complex systems. Project management is easier if you can reduce complexity whenever possible. Considering this, it is better to choose a simpler, low-tech solution when one is available. Additionally, some low-tech practices can lead to higher visibility, more democratic processes, and simpler solutions.

On my team, the path that led to our current project management process was not a quick one. Having explored multiple project management methods over the years, including modified waterfall methods and a couple failed attempts at Agile, we now use Scrum for most of our non-regulatory projects. We found that some of the techniques learned during our initial Scrum training continue to shine through as excellent practices, especially because they are so simple. Other activities, however, were more opaque at the time. It took repetition, over multiple sprints and projects, before we realized the full value of the activity.

In an Ignite talk, Adam Light asserts, “Scrum moves organization from the individual level to the team level.”  For managing projects, this means:
  • Helping people take their ideas into a shared work space in a structured and efficient way. 
  • Getting the right people working on the right things at the right time. 
  • Building on the shared ideas to create better solutions
In short, it means collaboration: moving the project management process from the project leader to the team. The Scrum Master becomes a team member who has the role of facilitating the progress of the project rather than the project leader.

The Scrum Master provides the tools and environment to make the project easier, and allows the team to self-manage. Self-managing, however, is not a goal but a habit, and like any habit it takes time to become innate. The nine tips discussed in the following sections provide a set of good habits that lead to self-managing teams. They all have the common goal of using low-tech methods to make ideas visible and shared, enhancing collaboration.

The process of developing software is essentially one of taking ideas and making them tangible. Since it is usually accomplished with a team of people assigned to create a complex software solution, it is necessary for the team members to communicate their ideas and opinions to others. High-tech teams often navigate toward high-tech solutions to accomplish this goal, but those solutions come at a cost and can complicate the project management process in unexpected ways.

Even Agile projects are complex. Although Scrum reduces some of the complexity, developing modern software solutions is fraught with risks and unforeseen dependencies. Simplifying the project management process frees the team to focus on creating the solution, rather than occupying themselves with administrative tasks. Additionally, involving the team more in the project management process achieves the Agile goals of collaboration, short feedback loops, and user-centric development.

While all of these tips have been used in conjunction with Scrum, they are not limited to an Agile project framework. Many of these tips may not be new to you, but I hope that you see them in a new light. The low-tech goals of collaboration, increased communication, and democratic processes align with the tenets of the Agile Manifesto to promote face-to-face communication, people over process, and collaboration over silos. 

Tip #1: Take a Field Trip
Tip #2: Make Your Story Cards Work Overtime
Tip #3: Use an Insertion Sort for Prioritization
Tip #4: Keep the Sizes Relative
Tip #5: Broadcast with Information Radiators
Tip #6: Draw Out Ideas
Tip #7: Simplify Design with Paper Prototypes
Tip #8: Increase Communication by Pairing
Tip #9: Keep a Project Diary