Have you ever thought about why the Software Project fails or cannot meet its deadline or what you have planned to deliver could not be delivered? These are fewer risks that are likely to occur during your project delivery. You always have to compromise on one of the aspects, i.e. Either Scope, Quality, or Time. Well, you always learned it from your mistake. I think this is the right place that can help you to eliminate these kinds of stuff in your next software Project.
Before jumping straight right to the topic of how we can deliver the quality software project, let’s dive into what we have that can help you to shape the project.
What is Software Development Life Cycle?
Software Development Life Cycle is the process used in software designing, developing, and testing aiming to meet the high-quality software product. From the definition, we know that this is what we need to maintain and deliver a quality software project. Interesting, let’s look at what we have in SDLC.
We have two methodologies that we can follow during the software development process. They are:
- Traditional: It is the methodologies based on pre-task or well-defined phases in the software development process. Some of the examples are WaterFall, Spiral, V-model, and so on.
Agile: This methodology is precise and customer-friendly. The User can take part in the entire software development phase where he/she has the opportunity to modify.
We are much interested in the Agile Methodology as it is the only methodology that can help us to shape the project in terms of cost, scope, and quality.
Because, the agile values says:
- Individuals and Interactions over process and tools
- Working software over comprehensive documents
- Customer Collaboration over contract negotiation
- Responding to change over following a plan.
There are various methods present in Agile Methodology. They are:
- Extreme Programming
We will not go into each and every method. However, we will cover two of the methods that has helped us to achieve our goals. They are :
Kanban is a lean scheduling system that was developed in Japan by Toyota Motor Corporation. Kanban is a system which usually starts with a board and is all about visualizing your work, limiting work in progress, and maximizing efficiency/flow. Kanban has three principles that are listed below:
- Work Limit in Progress
- Enhance Workflow
How the three principles has helped us to maintain our work planning and flow?
The first and foremost thing that we do is identify our work and create set of task which help us to visualize our work flow. With the help of this, the team can analyze the amount of work that need to be done. Limiting the work in progress has simple concept which tells us to first finish up the work you are doing and pick it up once you`re done. This helps them to focus on the specific work they are doing and from which they can produce and efficient output. And, lastly, the third principle helps us to identify the area that needs us to improve to make our process more effective.
Scrum is one of the most popular agile frameworks present today. It has helped to manage to work on complex since the early 90s. Unlike regular roles, scrum has its own sets of role, they are:
- Scrum Master
- Development Team
- Product Owner
The Scrum team commits to ship working software through set intervals called sprints. Usually, sprint is minimum 2 weeks to 1 month maximum long duration. Their goal is to make learning loops to quickly collect and integrate customer feedback. There are different kinds of events in Scrum. They are:
- Sprint Planning : It’s the initial planning stage of sprint, in which the team discusses on work to be performed in the sprint. In this event, the scrum team sets a sprint goal.
- Daily Scrum : It`s a 15 minute time boxed event, in which the development team gathers around to discuss on what they did, what they plan to do and if any difficulties.
- Sprint Review : Since the ideal result of every sprint is a working product , the result of a sprint is a demonstration of the product. The Scrum team creates a sprint review and demonstrates the results of their work by showing demos with stakeholders.
- Sprint Retrospective : At last of the Sprint, Sprint Retrospective is done, is an opportunity for the team to inspect and adapt changes itself. The team should conclude what worked well and what could be done better during the future iteration.
We have briefly touch down some of the Agile methodologies, especially Scrum and Kanban. But why are we discussing regarding these methodologies beside another. Well, because these methodologies have helped us to maintain the workflow, and produce the output in an efficient way. At Diagonal, we don’t have a specific methodology that we follow. But the combination of this both methodology as help us to achieve our goal.
1. Product Backlog
Before starting any project, we transform the clients’ requirement into a product backlog, which is written and express in the form of user stories. This helps us to assign, the development team with a task they need to perform with the product. We keep on versioning the requirement, so that we know the changes and required.
2. Sprint Planning
Now, we have the product backlog and we are ready to roll for the development. Before rolling out to develop we sit down with the development team and discuss on our product backlog and estimate the user stories on the basis of story point. After all discussion, we come to a conclusion on how much task we will complete in the sprint and set a sprint goal.
3. Daily Scrum
Besides, other regular meeting and planning, the daily scrum has help us in many different ways in order to get the track of the issues and impediments. Although, the time box is about 15 minutes, the regular interaction with the help of this event, has helped us to solve the issues more quickly
4. Sprint Review
Well, personally what we feel is the most important event after planning, where we demo the work done by the developer during the sprint. We go through all the development that has been done in the sprint and identify the missing portion, the bug and all the things that we couldn’t find it in regular event. At least, these review meeting has helped us to fix the run time bugs before demoing it to client
5. Kanban Board
Although all the process and planning are adapted from the scrum itself, but however to visualize the task and our progress, we use the concept of the Kanban Board, which has helped us to monitor the task that are being currently on doing state and the task that has done and is ready for testing. The board is the heartbeat for us, if the board does not move in the right direction, it’s really hard to track the progress of our project. Luckily, our board is always up-to-date and has helped us to work and produce the product efficiently. These boards not only help me as a project manager, but also to the development team for pickuping the task. This resolves the conflict of two developers working on the same task.
I would like to conclude the post, by saying that the visualization and following the right process is the success to the development of product. Although the process seems quite easy but it is hard to implement too. But following its guideline and right process can help you to maintain and deliver a quality software product.