Agility in the Mobile World: Agile Tooling
The first core value of the Manifesto for Agile Software Development asserts agile teams should place a greater emphasis on “individuals and interactions over processes and tools.” That’s not to say Agile tooling for mobile isn’t important but rather that the people who make up agile teams are more valuable than the tools they use. Okay, we get it. We’re people people. But what tools should agile teams use? In this post, I will recommend a basic set of tools every agile team engaged in mobile development needs to arm themselves with.
Agile teams often approach software development in an iterative fashion. A series of small iterations leads up to a build. Several builds culminate in a release. And several releases build up a product throughout its life. During each successive cycle, teams often repeat some of the same tasks, much like an assembly line on a manufacturing floor. The best way to increase manufacturing output is to speed up the assembly line by providing the right tools—including automation—to complete each task.
So what are those tasks that agile teams do over and over again in the process of manufacturing software? To start, a backlog and planning tool should be one of the first chosen to assist the team with every planning task that begins each iteration. The backlog & planning tool can be as primitive as Post It Notes or as sophisticated as an enterprise Agile project management platform like Rally, Jira Agile or VersionOne, to name just a few. Regardless of the level of sophistication, the backlog and planning tool should enable teams to quickly and easily capture use cases, then assign them a value, size, and rank.
After planning and implementing use cases, many iterations culminate in a new increment of software. An automated build tool helps agile teams execute repetitive and tedious compilation tasks quickly and consistently. Build automation offers a broad range of solutions, from basic command line scripting tools to comprehensive continuous delivery systems such as Hudson, Jenkins and Electric Cloud. (I recently discussed some of these options as part of Continuous Discussions (#c9d9, a series of community panels about Agile, Continuous Delivery and DevOps).* No matter how complex the build process is, every effort should be made to select an automation tool that helps agile teams produce frequent, high-quality software increments.
Another huge opportunity to increase agile-team output by speeding up the software manufacturing process comes with adopting Test Automation. Test automation is often considered an integral part of Continuous Delivery but is really a separate, repetitive task that should compliment every build. The reason an investment in automated testing pays so many dividends is because with each successive software increment, additional tests are needed. Eventually the volume of tests can become burdensome, significantly slowing down the assembly line. The solution is automation. SOASTA is one of many providers of mobile app test automation tools (e.g. touch-test automation). Test automation will not only expedite your agile teams, but will do so without compromising product quality.
So when assembling an agile team and planning an iteration zero, a few tools should be selected and deployed to ensure the team will maintain a solid manufacturing pace. These tools include (but are not limited to) a backlog and planning tool, a build automation tool, and a test automation tool. These cover the frequent, repetitive tasks found most often in agile software development patterns—those that could benefit most from the help of good tools to ensure they are completed expeditiously and consistently.
Watch a recording of the panel:
*Continuous Discussions is a community initiative by Electric Cloud, which powers Continuous Delivery at businesses like SpaceX, Cisco, GE and E*TRADE by automating their build, test and deployment processes.