Agile is a prerequisite for digital business because it combines an early and frequent delivery of customer value with the ability to rapidly adapt to changing market conditions. Agile has become essential to compete with digital-born businesses and to remain relevant in a world of digital fluency.
This means that the demand for experienced developers skilled with Agile processes and practices has reached a critical point due to significant growth in Agile adoption, up from 37% in 2020 to 84% in 2021 per the 15th Annual State of Agile Report.
Agile application developers should not wait for continuing external factors to drive the evolution of their skills; instead, they should proactively explore, identify, and learn skills to improve their ability to deliver business value. These skills help to continuously improve development and decision-making processes and strengthen technical and interpersonal skills to increase customer satisfaction.
Twelve skills are critical for Agile application development (app dev) teams to drive digital business.
Core skills: These skills are fundamental to Agile app dev. Keep in mind that not every developer needs to be an expert in every area, as Agile teams are cross-functional and rely on multiple individuals’ skills.
Scrum is the dominant Agile framework, providing an iterative and incremental approach for solving complex problems. Small collaborative teams typically deliver work in short iterations (sprints) of about two weeks.
Kanban is a method for visualizing, managing and continually improving a process’ ability to deliver a service. It is a pull-based delivery flow system that exposes constraints, creates flow by limiting the amount of work in progress and signals when capacity is available to start new work.
Successful app dev teams objectively measure and analyze their software development processes. Metrics provide actionable feedback to guide Agile teams and enable better conversations with stakeholders.
- User stories
User stories in Agile development shift the focus from writing requirements to addressing customer needs. A user story contains a short description of a feature from the perspective of the role desiring the new capability, typically in the format: “As a <type of user>, I want <some goal> so that <some reason>.”
- Customer focus
Product development must become customer-centric, with developers getting closer to their customers, understanding their needs and validating success through actionable feedback. Learn to empathize with customers using user personas, customer journey mapping, in-depth interviews and usability testing.
Test-first practices like test-driven and behavior-driven development ensure that application developers build the right software the first time. With the additional reuse benefits of validation and documentation, creating tests before writing the code provides exceptional value to the development process.
- Continuous learning
A key tenet of agility is that practitioners be open to learning new skills — not just from project to project, but also as part of a lifelong learning process. Waiting for an “expert” to perform a critical project step impedes team agility. Multiskilled individuals enable teams to quickly solve problems and achieve better business outcomes.
Value-added skills: These skills represent the next level of Agile maturity. In-depth knowledge of them enables the team to continuously improve the delivery process.
- Collaborative development
In collaborative development, more than one team member works on a single feature or application at any given time. This can benefit teams by providing a built-in mechanism for code review, reducing development cycle time and broadening skill sets as teammates learn from each other.
- Ownership and collaboration
Work style, attitude and interactions with others impact success as much as any technical or professional skill. Small, self-directed, autonomous teams collaborating to build solutions only succeed when all members of the team commit to a set of shared values, such as focus, courage, openness, commitment and respect.
- Agile architecture
Traditional approaches to software architecture do not support an Agile development life cycle. Inflexible monolithic applications, architectural complexity and technical debt burden development teams, impede agility and frustrate users. Component-based architectures provide greater development agility, increased deployment flexibility and more process scalability.
Specialized/emerging skills: These skills represent potentially significant, game-changing processes and practices for Agile developers.
- Agile database management
Agile teams quickly find that database changes become a constraint that limits velocity. To increase the speed of delivery, cultivate database management skills to become more self-sufficient and reduce dependence on database administrators.
- Scaling Agile
Expanding the validated success of Agile pilots to the broader enterprise is both challenging and rewarding for organizations. Agile practices will not only benefit other development teams but also infrastructure and operations, enterprise architecture and security by reducing risk, improving business outcomes and increasing predictability.
Bill Holz is a research VP at Gartner, Inc. focused on software development methodologies and web development.