Hi! This time on the PPL series of posts I will explain about Agile. As I have previously mentioned on my other post, in this course we are required to implement an agile software development methodology, Scrum. As of now, I dont think we have pulled this of to the level where I want it to be. Hopefully, I will add more updates and improvements about our process.
What is Agile?
First, Agile is a not a software development methodology, SDLC (Waterfall, Prototyping, Spiral, etc.) or the likes. Unlike them, Agile doesnt have a set of some hard rules to follow. Instead, Agile provides values and principles to guide us when working with software and client/customer.
These value and principles changes slighly as time passes, but they are more less the same. There are no exact time when Agile is invented or found. But there are a points in time where Agile is talked about and published by major publication to gain enough influence. One such source is Manifesto for Agile Software Development, or Agile Manifesto for short.
Agile Manifesto is by no means the first ever publication of Agile software
Development, or the most complete one out there. The manifesto itself is
formulated on 2001 by a group of 17 people, representatives ranging from Extreme
Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven
Development, Pragmatic Programming, and vice versa. However, the manifesto has
came up time and time again. I think this can be attributed to how concise,
simple and easy to follow the manifesto is. Even the word manifesto
is bound
to ring a bell to some people.
Agile Values
These values is written on their website, but I will stil list them below for completeness's sake:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Agile Principles
There are also Agile Principles. It consists of 12 loose principles around Agile Software Development. These principles expand from the previous values to include more concrete guides not mentioned before such as how face-to-face conversation is the most effective form of communication.
Scrum
Here is the textbook definition of Scrum:
Scrum is a lightweight, iterative and incremental framework for managing complex work. The framework challenges assumptions of the traditional, sequential approach to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines involved.
en.wikipedia.org/wiki/Scrum_(software_development)#Key_ideas
While there are also many resources for Scrum as Agile, I will try to explain in reference to the Scrum Guide since it has been a great learning material for me.
Now, what we did on PPL course is not Scrum. It's Scrum, but... hoho. Someone advice me not to use "but" when I try to explain modification to existing ideas since it gives of the impression that the original is crippled to make compromises. Let's give it a redo. It's Scrum, with additional grading metrics. Yea, thats what I think. Some flow is modified so they are easy to grade.
Scrum on Our Team 14/04/2019
Individuals and Interactions over processes and tools
We're trying.
Working Software over comprehensive documentation
Yup, our staging environment is working.
Customer Collaboration over contract negotiation
Ouch!
Responding to Change over following a plan
Can't change plan if you dont have any in the first place, lol.
Scrum on Our Team 28/04/2019
Individuals and Interactions over processes and tools
Now this really looks like we are actually throwing out our tools (GitLab Issue and Boards) in exchange for tighter collaboration.
Working Software over comprehensive documentation
Yup, our staging environment is working.
Customer Collaboration over contract negotiation
Final UAT with Product owner before Sprint Review.
Responding to Change over following a plan
Client complaints are addresses soon after "warmfix".