Getting and
Staying
Agile
The human side of software development thrives on
face-to-face interaction and teamwork.
By David L. Largent
DOI: 10.1145/1836543.1836555
During my time in both undergraduate and graduate computer science programs, the focus of classroom material has almost always been on “technical” topics, such as data structures, programming languages, and networks, and very seldom on “human” topics, like working within a team. Do we need more than a solid technical
background to survive and prosper outside of the isolated world of academia?
Proponents of agile software development would say yes. Agile development, a methodology that focuses on
the teamwork and human interaction
side of development, has gained popularity in recent years. While it could be
argued that teamwork is critical in all
types of software development methodologies, this article focuses on agile
software development due to its popularity, especially among new software
startup companies.
It is not my intent to identify all the
questions we should be asking on this
topic, but I do hope to get more students thinking about getting and staying agile by exploring the social side
of teamwork, an integral part of agile
software development.
AGILE SOFT WARE DEVELOPMENT
What defines agile software development? We’re talking about a method,
process, philosophy and set of guidelines that focuses on customer satisfaction, small project teams, informal
methods, quick incremental delivery
of software and minimal software engineering work products [ 7]. As you
can see in the sidebar “What is Agile
Soft ware Development?” many aspects
of agile software development deal
with individual human interaction
and teamwork.
THE ‘INGS’ OF TEAM
DEVELOPMENT
Much research behind agile develop-
ment methods focuses on what con-
stitutes a team, and how individual
members of a team grow, learn, and
interact to perform a task. One model,
discussed further below, suggests that
teams generally progress through five
stages: forming, storming, norming,
performing, and adjourning [ 2][ 8][ 9]
[ 10]. How long it takes a team to move
through the stages will vary greatly,
depending on the people involved and
the challenges the team encounters.
Figure 1 depicts these stages.