There are two kinds of Software Problems, Technical and Systemic. Technical problems are easy to understand and solve but Systemic problems are not easy to understand and solve because it involves people, processes and measurement. Systemic solutions require much time in planning and thinking involved.
To solve systemic problems in Software development, We look for solutions that could improve our development process. Thus, Software development process models are introduced to manage better time, collaboration, measurements of the teams who are working on building Softwares.
In 2001, A group of 17 developers wanted to change the way software was being built. They built a manifesto of Agile Software development focused on these four values written in bold on the left side.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
There are many Software Development Process Models like waterfall models, spiral models, V-Model, Agile models, Etc. A whole set of agile models are being used these days, including Scrum, Kanban, and Extreme programming (XP) studied in this course, Lean, feature-driven development. Scrum and Kanban Agile methodologies are being used a lot these days in software companies by using the tools like Trello, Target Process, Jira are developed based on these Agile methodologies. We use Trello and Target Process Agile management tools in our Company.
Benefits of Agile Software Development
It has many benefits due to its intuitive approach to software development. Let us talk about them.
- Putting the customer first, As product owner or customer, is involved in every step. They can give feedback and request changes with consumers in mind.
- Consistent growth keeps the team members on track to know what will be delivered and when and what are the roadblocks every member is facing. Daily routine standups and check-ins help the team on track.
- Consistent updates help avoid disasters as everything is transparent to everybody in the team, including the client.
- It is all about Team. No one person is more vital than another. This keeps the team morale high and strengthens the team communication.
- Roadmaps are defined to see where the development of software is headed.
Product Owners, Stakeholders, team leads, and team members are the roles involved in Agile Software development.
The Agile Workflow
All these roles, when they work together, forms a workflow called Agile Workflow. This workflow includes the steps below.
- Standups
- Sprints
- Check-ins
- Handoff
- Review
- Epics
- Stories / Tasks
Agile methodologies and framework
Scrum and Kanban are two different methodologies in the Agile process. Many people think that Scrum, Kanban, and Agile are the same, whereas Scrum and Kanban are two uses of the Agile Development Process. It means that we can implement the Agile Development Process in the Scrum way or the Kanban way. Let us take a brief look at both as these are widely used Agile processes in almost every Software development company in Pakistan and the world.
What is Scrum?
People get so much confusion when they talk about Scrum. They think that Agile and Scrum are the same, whereas Scrum is a subset of Agile. Scrum is different from other Agile methodologies because it includes sprints, team roles, deliverables, and prioritization.
Sprints are the specific periods of time in which we plan a set of tasks to be completed within the Company. These Sprints can be 2-4 weeks long. Or it totally depends on you how you organize it. E.g., I implemented one-week sprints instead of 2 when I first launched Scrum in my Company.
Scrum sprints are unique in that each project’s sprint determines the timeline the team will work within to get the project done. While it might be a more loose timeline for other methodologies, Scrum sticks to its sprints to make sure work is on schedule and moving smoothly.
This is why Scrum is widely used in many companies using Agile for the first time as it’s a relatively smooth transition from more traditional but widely-used waterfall workflows.
Standups are the daily meetings where team members answer themselves the questions like What they worked on yesterday? What are they doing to work on today? and what are the roadblocks in their workflow?
Scrum Master, Product Owner, and the development team members are the roles of the Scrum Team. Don’t overthink that your existing roles will be changed by applying Scrum. The Project Manager will be the Project Manager, or the Code reviewer will be the same. Scrum will make things visible to everybody in the team and reward the whole team instead of the individual person.
The scrum master plays a significant role in the team as he is the one who provides all the information to team members and talks to product owners in case of their needs.
What is Kanban?
Kanban is another Agile framework that is being widely used and giving teams more visibility about the Software development process. Kanban consists of Boards, Columns, Cards. An Online tool, Trello is a very popular kanban based platform.
In the above image, We call it a kanban board. It is divided into columns name Backlog, In Progress, Done. While The Kanban cards are inserted in these Kanban Columns.
Kanban is a visual approach that gives high visibility to everyone in the team where they are heading to get the project done.
Team members can move these kanban cards between kanban columns, progress to done, and mark it close.
Unlike Scrum, Kanban doesn’t need a Scrum Master.
Who is agile for?
Agile is for everyone who wants to manage a project. It can be any project, e.g., If we are managing a friend’s birthday or an event. You can use Agile methods. Naturally, It is being used for Remote Teams, Design Teams, eCommerce site owners, marketing agencies, Startups, Product Teams, and Construction Companies.
Another popular Agile software project model We studied in this course is Extreme Programming (XP). The original XP method is based on four simple values – simplicity, communication, feedback, and courage.
XP also has twelve supporting practices:
- Planning Game
- Small Releases
- Customer Acceptance Tests
- Simple Design
- Pair Programming
- Test-Driven Development
- Refactoring
- Continuous Integration
- Collective Code Ownership
- Coding Standards
- Metaphor
- Sustainable Pace
Leave a Reply