Last Updated Dec 15, 2010 3:15 PM EST
I turned to Robert Holler, who's the CEO of VersionOne Software in Atlanta for some answers. Their product is one of many that helps project managers track and plan their software development projects. I asked Robert what we mere mortals can learn from Agile practitioners.
What is "Agile" and why should managers of remote teams know about it?
Agile development is a common umbrella term used for today's highly iterative and incremental approaches to software development. Unlike traditional software development practices, agile development methodologies incorporate close, cross-functional collaboration and frequent planning and feedback as fundamental tenets inherent to the evolution of a software system.
The overarching focus of agile development projects is the frequent delivery of high-quality, working software in the form of business-valued functionality. Each of these methods emphasizes ongoing alignment between technology and the business.They're considered lightweight in nature in that they strive to impose a minimum of bureaucracy and overhead within the development lifecycle, and adaptive in that they embrace and manage changing requirements and business priorities throughout the development process. With any agile development project, there's also considerable emphasis on empowering teams and collaborative decision-making.
What are some practical tips that even non-Agile practitioners can take away?
- Running Tested Software - Running, tested features should be the team's primary measure of progress. Working features provide the evidence that both the system and the project are on track. Try something small, if it works freeze it and move on, if it doesn't fix it now before things get gummed up down the road.
- Adaptive Planning - Continuous planning, being based on solid, accurate, recent data, enables agile projects to allow priorities and exact scope to evolve, within reason, to accommodate the inescapable ways in which business needs continuously evolve.
- Continuous Testing - With continuous testing we deterministically measure progress, prevent defects and reduce the risk of failure late in the project.
- Continuous Improvement - We continuously refine both the system and the project by reflecting on what we have done (using both hard metrics like running, tested features and more subjective measures), and then adjust our plans accordingly. We also use the same mechanism to successively refine and continuously improve the process itself.
- Small, Cross-functional Teams - Smaller teams have been proven to be much more productive than larger teams, with the ideal ranging from five to ten people. If you have to scale a project up to more people, make every effort to keep individual teams as small as possible and coordinate efforts across the teams.
At its core, agile development practices focus on the rapid delivery of business value not "saving time" per se. People who don't take the time to build human connections are missing the point.
What can project management and tracking tools like VersionOne do for a team?
Technology can help the planning and tracking of projects, automates reporting and stakeholder visibility, and accelerates agile adoption. From customer idea to software delivery, VersionOne helps organizations scale their agile initiatives faster, easier and smarter. There are other tools as well. Your company may actually provide some, check around.
Whether you're a project manager, an IT manager or just a leader with a team trying to get things done, the notion of constant, focused communication and quick responses sounds like something we can all learn from and do better.
- What the #@%@#$^% are collaboration suites and do I need one?
- Project managers- when all else fails speak English