What Is Pragmatic Agile Software Development, And How Can It Help Your Business?
by Mario Merino
The Agile software development method has been used in software development since the early 2000s, with few changes in the way it is used to manage software development projects. The Agile Manifesto has 12 guiding principles, mostly encouraging the setting of short-term goals with short turnaround times, resulting in quality software developed more quickly. Game-ification of the development process, and self-defining teams are key. Agile is an excellent way to manage projects where the landscape is changing rapidly, as rapidly as the software is developed; because the teams are focusing on short-term goals, changes can be made quickly, as business needs and market conditions dictate.
Agile versus Pragmatic Agile
Agile development is not without its pitfalls. A lot of “religious” ritual has grown up around Agile projects, rituals that were designed to ensure development teams follow proper procedures and ensure Agile principles are accurately followed, but have created unintended consequences that often hamper the business velocity of projects in favor of development velocity and Agile purity. Enter “Pragmatic Agile Development.” Pragmatic Agile development takes the best parts of Agile software development and removes those that don’t work in the real world. Ed Schwarz, co-founder and vice president of engineering at Gorilla Logic, describes Pragmatic Agile development as being able to identify the few top things that really matter, concentrate on the Agile principles that are practical and gets the important work done, but setting aside those areas that don’t work.
Schwarz says, “In addition to being robust to change, you need velocity, which is why you have things like continuous integration. It’s the reason you need to check in quickly and frequently, and break up the project into small pieces that can be implemented and corrected quickly.” Quick corrections are key to Pragmatic Agile software development. It starts with continuous integration, with quick and frequent check-ins by each team and breaking the project up into small pieces that can be
implemented and corrected quickly. With continuous integration, the teams and customers do not have to wait until the project is completed to find out whether the system works. Schwarz describes the benefit of continuous integration as: “Get as much of the system working and tested as you can as early as you can.” Agile project management uses “sprints” to get short-term goals completed quickly; the optimal length of a sprint runs from one to four weeks and is a set period of time within which each team must develop, test and finalize their portion of the project. Communication happens between the teams and with the project management team during weekly meetings, designed to see where each team is within their areas of responsibility. The Pragmatic Agile technique allows for longer sprint periods because communication within and between teams is more continuous. “You just have to be communicating over time, but that’s really more of a practice,” says Schwarz. “If you keep your eyes on those goals, and you’re communicating continuously about the goals, then it doesn’t matter whether the sprints are two weeks, three weeks or a month. It doesn’t matter whether you have sprint retrospectives for every single sprint or you do it informally, because communication is still happening.” The religious zeal and fanaticism of Agile purists, however, closes off an important resource development companies all need — outside developers. Because Agile is flexible, new teams of outside developers can be added as needed, plugged into a particular piece of a project, then walk away once their part is complete. But those teams must adhere to the rituals at the center of Agile. One of the hallmarks of Pragmatic Agile is ‘YAGNI,’ which stands for “You Ain’t Gonna Need It.” Schwarz explains it best: “At the daily stand-ups, the teams can talk through their goals. During that process, they may realize they’re working on a component that won’t be valuable for some time down the road and change course, concentrating on real, immediate functionality.”
Pragmatic Agile and Outsourcing
Working with outsourced development teams it’s important to consider cultural practices as it relates to the effective implementation of Agile practices. Nearshore locations, such as Costa Rica, are more amenable to Pragmatic Agile practices than offshore locations. For Agile, cultural affinity is important. There are some cultures in the world that are very averse to letting people down. They will overcommit, and eventually the sprint or part of the sprint will not be complete because they were not really able to say, ‘yeah, we can’t do this” because they were afraid to let somebody down. That type of problem doesn’t happen in Costa Rica. And time zone differences are another factor. It’s very difficult to collaborate when a team is seven, eight or even twelve hours away. When you’re doing work for the ‘800-pound gorilla’ guys with complex projects it pays to work with a pragmatic culture that is in your time-zone. That’s what Costa Rica adds to the Pragmatic Agile process.
What Pragmatic Agile Means For Business
Gorilla Logic has introduced Pragmatic Agile software development as a guiding principal in their development to allow worldwide teams to understand and jump into the process. Pragmatic Agile removes the rituals and fanaticism surrounding Agile, and just focuses on getting the quality, enterprise work done as quickly as possible, as completely as possible. By taking ritual out of the mix, Gorilla doesn’t have to translate Agile to teams that don’t adhere to those rituals. According to Schwarz,
If one piece of Agile doesn’t work, if your product owner needs someone else to write their product specs, anything needing someone outside the Agile framework to work within it, Pragmatic Agility makes Agile work across the board. It adds velocity to the project that might be stunted by strict adherence to the ‘religion’ of Agile.”
Using Pragmatic Agile, then, Gorilla brings teams from around the world to allow customers to plan their product releases faster, with better quality, better control and greater cohesiveness between the teams working on each project.