Agile Software Development Tutorial
Michael de la Maza, PhD
mdlmmdlm@comcast.net
August 6, 2008
Do you want to learn how to create a healthy and sustainable software development environment? Do you want to adapt quickly to changes? Do you want to create good working relationships with your customer? Do you want to allow your customers to add requirements during the development process? Agile software teams do all of this and more.
Agile Software Development is a new approach to software development that has become increasingly popular over the last decade. Agile software values individuals and interactions over processes and tools; working software over comprehensive documentation; customer collaboration over contract negotiation; and responding to change over following a plan [Manifesto for Agile Software Development, http://agilemanifesto.org/]. Agile software approaches have been widely adopted by start-up companies and by large, innovative firms such as Google.
This tutorial will focus on providing participants with hands-on experiences that illustrate key agile principles such as:
-
Working on the highest priority items, as specified by the customer, at all times
-
Continuously delivering software throughout the engagement
-
Focusing on adapting to change instead of following a plan
-
Permitting the customer to change, add, or delete requirements throughout the software development process
-
Periodic self-reflection and self-improvement
-
Valuing working software above else
-
Emphasizing a sustainable development environment
-
Developing a strong bond with users
[This list is based on one in "Training Future Software Developers to Acquire Agile Development Skills", Tan and Teo, Communications of the ACM, December 2007, 97-98] This tutorial will draw on a variety of agile software development methodologies, including Extreme Programming and Crystal methods, and the primary focus will be on Scrum. Participants will learn about Scrum roles, Scrum ceremonies, and Scrum artifacts. Tools that support the Scrum process will be introduced and discussed and real-world examples will be used to illustrate key Scrum concepts.
This tutorial will be participatory and will not consist of a series of lectures. Instead, participants will engage in a series of activities that illustrate agile principles. For example, in one exercise, participants will be divided into groups and asked to perform tasks in a manner that is consistent with Scrum. Participants should come prepared to discuss, work, and think during the tutorial. After each exercise the entire group will participate in discussions that tease out the key lessons of the exercise.
This tutorial is appropriate for people who have backgrounds in software development, information technology, or computer science. Some knowledge of basic software concepts, such as specifications, testing, and documentation, is assumed. Undergraduate and graduate students are welcome as are technical team leads, project managers, product managers, and line managers.


Loading..