Manage Learn to apply best practices and optimize your operations.

Three traits of a mature Agile team

What it takes to have successful mobile project development might surprise you. Expert Jennifer Lent shares the secrets around creating a mature Agile team.

A "mature Agile practice" may not be the first thing that springs to mind when asked what makes mobile projects succeed. But according to mobile expert Carlo Cadet, Agile maturity is the crucial underpinning for mobile development.

Cadet is director of product marketing at mobile test firm Perfecto Mobile, in Woburn, Mass. When I asked him what it takes to make mobile projects work, I expected him to talk about things most of us have heard before: how to test on many different devices; dealing with the insane rate of mobile updates; or how to test for the wide array of conditions in which phone and tablets are deployed.

Addressing mobile test challenges is important, of course, and Cadet touched on them briefly. But he also answered the question in a way I had not anticipated, focusing on how a mature Agile team establishes a strong foundation for mobile development and testing. "When you are testing on 26 devices, there is a need for Agile maturity," said Cadet, a computer scientist by training. "To cleanly manage what is going on, you need to understand where all the moving parts are coming from."

Cadet defines a mature Agile team as having: high levels of automation for testing and deployment, a disciplined approach to managing test code, and hiring strategies that ensure a steady stream of skilled software pros -- even as needed skill sets change over time.

In this edition of Quality Time, I share Cadet's take on mature Agile practices -- concepts that apply to all software development projects, not just mobile apps.

Increasing software test automation

Organizations need to be less afraid to attract the workforce for the next stage of evolution.
Carlo Cadetdirector of product marketing, Perfecto Mobile

Cadet noted that many Agile teams still operate with only a marginal level of software test automation. "There seems to be a glass ceiling," he said. Teams start with automation projects, then make do with less than optimal levels. Mature Agile teams push through that glass ceiling. They understand that test automation projects are challenging and they work hard to overcome obstacles, such as finding the right tools and acquiring new skills. You cannot develop a mature Agile practice without increasing automation levels, Cadet said.

Agile maturity matters not just for teams pursuing mobile projects, but also software organizations moving toward continuous delivery.

Developing people and skills

One thing that makes it hard to achieve higher percentages of automated testing is that the skills automation projects require are often in short supply. To write automation scripts, testers need basic programming know-how. And many professional testers lack that expertise.

From books to courses to learning from peers, there are plenty of ways to acquire the necessary skills. But the bigger picture is this: A mature Agile team understands that investing in people and skills is crucial to delivering the software their customers want. "We are always building up expertise, then losing expertise," Cadet said. Consultants and outsourcers come and go, staff rotations are a fact of life, and the need for new skills continues to emerge, he added. Mature Agile teams anticipate that. "Organizations need to be less afraid to attract the workforce for the next stage of evolution."

Treating test and production code the same

Another hallmark of a mature Agile team is treating test code -- scripts that automate the test process -- the same way they treat production code. "Many people [make do with] spaghetti code for automation code," Cadet said. But a mature Agile team applies SDLC practices, such as version control, to the test side of the house. In other words, the team takes software test automation seriously. They commit to making it work.

To sum it up, a mature Agile team shares the following traits: they work to achieve a high percentage of automated testing; they invest in the people and skills essential to software development; and they take a disciplined approach to managing test code.

Next Steps

Perception vs. reality in mobile testing

Ten myths about Agile development

Take Agile beyond software development

Dig Deeper on Topics Archive

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

What traits do you think make up a mature Agile team?
I do agree with the traits in the article. I also think that mature agile teams are made up of team members that are respectful of each other and who have learned to work well & efficiently with each other. IMO that really has a lot to do with the long term success of a team.
One of the biggest traits I see in mature teams is true transparency. I think this comes as the team matures, starts to really understand what it really means to be agile, and refines their processes to adhere to the spirit of agile. At that point you move past the useless standups (yesterday I worked on that, today I’m working on this, no obstacles) and the ego problems that plague less mature teams.

Kind of building on what Abuell & McCorum have said I believe that one of the most important  things (which isn't so much a trait) is trust in team members .... However trust encompasses things such as openness, transparency, reciprocity etc..

I believe in simplicity of accepting the fact about building a well standard product that cut across borders of growing trend in the IT world.
I disagree that your automation levels must keep growing all the time to be a mature agilists.  It's not testing, its change detection.  What's more.

I would say a mature agile team, is always introspective, alwayswiling to invest in each other, towards creating better, and is willing to try new things for a while, even if it is not immediately seen as beneficial.

TOO many, Far TOO many, Agilists point to Automation as if its a Holy Grail.  It is not. It is a powerful tool and it solves 1 subset of problems, but too often teams get puled into the maintaining of them, or begin to ignore them, and the assumptions that were used when they were built, may not be valid anymore.  
huh. For a mobile project, I typically don't want to drive the GUI, especially for a native app. We can compose the app out of web services, and rock-solid test those, combined with developer-checks at the unit or integration levels.

So I guess I can agree, to the extent that many mobile dev teams don't have any, or nearly enough, tool support. And If that is the case, they should be growing for a very long time. I'm just on the other end of it - I have seen too much wasteful UI automated checks that are slow and brittle while the UI changes. I'd suggest a different architectural approach.
In my mind a "mature" Agile team is one that thrives on open communication, active participation, a willingness to explore, pair and learn. It also has an infrastructure that is rich and deep enough, with many practitioners well versed enough, so that most participants can troubleshoot issues and solve problems without relying on a key individual or cadre of people in the team. IT's not about automation (though it helps), continuous delivery (though it helps), or slicing stories super thin (though, yes, that also helps). Those are all symptoms (or outgrowths) of a mature agile team, but those artifacts don't define the team itself. Active, engaged, and collaborative people do.
I agree with these traits, for the most part. It's not a comprehensive list, but I think that a mature agile team will demonstrate these characteristics.
I'm disappointed to see that "maturity" is defined through automation and automation skills. Although, considering that the expert is director of product marketing at Perfecto Mobile I shouldn't be surprised by push to automate everything and complete lacking of understanding of testing.