a lot of people refer to the methodologies done in software development as “agile” development, but there seems to be a disconnect between people who actually knew what it means to be agile and those who don't.
so what does it mean to be agile?
in software development, being agile means that the development is done iteratively, where the requirements for the product and the solutions developed grew side by side resulting in fast and reliable delivery of products on all ends.
relax, in this article, I will try to introduce and explain the meaning of agile and the implementation of it in our software development project for PPL CSUI 2021.
The Agile Manifesto
Kent back, Mike Beedle, and 15 other authors came up with the agile manifesto in order to prescribe the basics of the methodology, it is as follows :
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
those 4 values are widely known as the agile manifesto, we are going to explore and break down those 4 values below, and how we fit them into our development process.
Individuals and Interactions over tools
communication is the core of agile
or so they said,
we must value humans and individual interactions over the tools or programs that we are using. we must be able to accept that we are working with humans, not with the tools themselves.
Emphasis on Working Software
there are occasions where people neglect the main purpose of developing software is to create working software. people would tend to focus on the tiny details like bug fixing or documenting the product, rather than getting the product itself to work.
working and deliverable products beat a clunky but “complete” product every time of the day.
Collaboration on all sides
in agile development, every single individual was always encouraged to take action in actively engaging in the development process. in order to meet the expectation on the end product, collaboration is crucial from users and stakeholders for their input and suggestions on the product
Open to changes
due to the fact that the software industry and development is rapidly changing and progressing, we must be ready for changes at all times.
entertain the idea that at some point of the development process it is most likely that some part of the original plan will be changing in one way or another to keep up with the digital environment present.
so get used to it! trust me it WILL happen one way or another
one of the well-known agile methodologies is scrum, and in our software development project on PPL CSUI 2021, we implement the scrum method to conduct our software development process.
the reason why we use scrum is pretty simple really, it's robust, flexible, and also the most used and also one of the more cost-effective methods among others in the agile methodologies.
in PPL 2021 scrum, there are 3 main roles :
- Product Owner: responsible for the product backlog, which is the requirement for the product or user stories
- Scrum Master: responsible for leading the daily scrum meeting, and keeping the development of the product on track with the development time
- Development team: the developers working on the product, usually consist of a team or 4 or 5 with individual roles
our scrum cycle consists of 5 main events, recurring every sprint that lasted 2 weeks.
in this step, we plan on what we are going to do for the entire sprint.
each role would decide on what product backlog item will be developed or executed, and decide on the weight and the assigned developers that will be working on the backlog item
in this phase, the development team will develop the product based on the product backlog item that was decided to be done on the sprint planning.
the sprint in PPL 2021 would last 2 weeks on end and the entire development would be conducted on 5 sprints in total.
daily scrum/standup meeting
in the daily scrum, we developers would report what we did during the sprint up to that point to the scrum master. what product backlog item has finished being developed or currently being developed. our team conducts this daily scrum twice a week, or 4 times during each sprint.
the sprint review is conducted after each and every sprint. in this stage of the process, the product owner will decide which product backlog item goes into production after each sprint was done.
the product could either be accepted, or rejected based on the quality and assessment, and acceptance criteria.
in this part of the process, the scrum master would gather data and input from the development team on what went well and what went poorly on the previously finished sprint. by doing this we could adjust on what to do to be better on the next sprint.
our team uses boards like miro to conduct our sprint retro, it's fast and easy to use so I would recommend it to anyone looking for similar tools to do their sprint retros.
to sum it up, the agile methodology is one of the most used and robust software development life cycles out there. we implemented it on our project because it's cost-effective and also easily implemented by a group of college students, making it one of the best choices out there for us.
so that's it for today's article, I hope you guys could try out agile scrum in your next big endeavor and feel the amazingness of it, just like we did.
cheers from AbangNona PPL2021 😄
see you next time!