Agile
During the MSIS program
Throughout the MSIS Core you will cover the concept of Agile, a now popular and common software development practice found primarily within the Information Technology Industry. The material outlined throughout this module will ensure you have a basic understanding of the fundamental concepts related to Agile in order to prepare you to make informed decisions regarding the practice and when it appropriate to use it.
Major Concepts
Learning Outcome
- Define Agile, and know what it values.
- Identify some advantages and disadvantages of Agile.
- Describe the process of Scrum.
- Explain the key terms of Scrum methodology that are listed in the exercises.
What is Agile?
In the software development world, Agile describes a set of values and principles in a manifestofor software development.
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
-Manifesto for Agile Software Development
Besides these fundamental values, the Agile practice approaches software development through collaborative effort of teams, and it values elements including fast delivery, flexibility, feedback from end-users, and continuous iterations. These values and practices are carried out across many other software development frameworks. We will touch on one of them, Scrum, later within this module.
Watch this video (~12min) created by Mark Shead, an Agile coach and software engineer,1as he video explains Agile in-depth regarding its values and principals. Upon completion you should be familiar with the basic outline of Agile.
Agile Model
As Agile believes that software development projects are unique, Agile models require continuous improvements that are tailored to suit requirements at different stages. When working with Agile, teams turn projects into small, continuous deliverables spread out across many phases.
Releases happen at the end of each phase. During a fixed time period, the team would take an iterative approach to try to meet all necessary requirements. Each phase can also be called an iteration. When an iteration is over, developers would with clients to gather feedback and plan for new features for next iteration.
Here is a graphical illustration of the Agile Model. The picture is retrieved from Tutorialspoint2,
Agile: Best Practices
Read the article from Harvard Business Review: https://hbr.org/2018/05/agile-at-scale
Scrum
There are many frameworks for Agile development. In this module, you will be introduced on the Scrum, the most popular Agile framework.
What is Scrum?
In simple words, scrum is an Agile methodology or framework that is widely applied by developers for software development projects. It applies the fundamental values and principals of Agile while incorporating additional characteristics such as defined team roles, events and ceremonies, artifacts, and rules.
Read the following article, “What Is Scrum Methodology?”, from digital.ai3 as it explains the Scrum methodology quite thoroughly. Pay attention to the following key terms of this framework:
- Product Owner
- Scrum Master
- Sprint
- Daily Stand-up
- Retrospective
- Product Backlog
These terms are further explained in this video by Axosoft4. Watch this video to better understand how these elements are practically applied in software development. While you are watching the video, pay attention to the following key terms:
- User story
- Story point
Exercises
-
True/False
- Agile values individuals and interactions while traditional SDLC values processes and tool
-
Agile values comprehensive documentation while traditional SDLC values working software
-
Agile values contract negotiation while traditional SDLC values customer collaboration
-
Agile values responding to change while traditional SDLC values following a plan
-
In your own words, define Agile. What is Agile, why should it be used for software development, and where does it shine?
-
In your own words, define Scrum. Explain the relationship between Scrum and Agile. Do you prefer one over another? Why?
-
Define the following key terms:
-
User story
-
Story point
-
Product Owner
-
Scrum Master
-
Sprint
-
Typically, how many days does a sprint last?
-
Daily Stand-up
-
Retrospective
-
Product Backlog
-
-
Assume that you are making a wristband that tracks health data. Try to think of some user stories of your software (at least 5+), and allocate story points to them use T-shirt size.
Resource Footnotes
-
An Agile coach and software engineer who graduated from Harvard University and now serves as the president of Xeric Corporation. ↩
-
A website providing tutorials on a various of academics subjects: https://www.tutorialspoint.com/index.htm ↩
-
A technology company that helps enterprises deploy different software development techniques and manage applications: https://digital.ai/ ↩
-
A company that dedicates to help software developers use Agile and Scrum methodology. ↩