Table of Contents
Updated April 2021
It’s that time again when you as a project manager have a list of requirements for a project in your hand and you are breaking your head on how to approach it. Based on your earlier experience, you would want to move away from standard methodologies such as Waterfall and move on to the infamous Agile techniques. However, this isn’t an easy decision to make. You need to take several aspects into consideration such implementation time, project budget etc. So, if you are having a hard time choosing the right custom software development methodology, read on.
Here, we will share with you some ideas on how to choose the right development software methodology for your project.
This depends on the following factors:
- Requirements
- Solution or the end product
- Feedback on the work done
- Frequency of change request or enhancements
- Cost of Delay
- Experience on projects
Software Methodology
We will be discussing on the following methodologies used for development and how to choose which among the following is the right fit for your project:
- Waterfall
- Scrum
- Kanban
- Extreme programming (XP)
- No specific process, Do it yourself
We can broadly classify a project into 4 different groups based on the above 6 points.
Simple Project
Clear Requirements
You have clear requirements of all the features you need to build to complete the project. There are no uncertainties and all information is laid right on the table with no surprises.
Clear Solution
You have a clear picture of what is the end product that you are going to deliver at the end of the project.
Feedback on the work done
You require very minimal to no feedback from customers till you have developed the end product as the requirement as well as the vision of the end product is clear.
Frequent Enhancements
There are no changes or enhancements to the requirements or solution. Every piece of requirement is clear to develop the end product.
Cost Of Delay
The cost of delay is minimal and is not a burden on the project as the timelines are flexible.
Experience on Projects
You have prior experience working on such projects and thus it is not something complex for you to accomplish.
Suggested Methodology:
Waterfall, No process or Do it yourself
The development methodology suggested for such a project is Waterfall or No process. Waterfall has a clear phase of requirement analysis, design, feature-driven development, implementation, testing, and deployment. With the requirements being very clear with absolutely no changes on it, you can definitely proceed to design the solution that has been visualized. Proceeding on development, integration, and testing based on the design would be a fairly simple process as there are no surprises or changes in the requirements along the course of development.
You require no defined software development process for an end product where you have clear requirements and solutions. You just set a deadline on when the project should be finished and complete the project in your own way. You just need to make sure you stick to the deadline at the end to deliver the product.
Mid-range or Complicated Project
A mid-range or complicated project is one where the solution of the project is not clear and there might be only minimal feedback from the client to check if the solution that you are building is in line with the client’s expectation.
Clear Requirements
You have clear requirements of all the features you need to build to complete the project. There are no uncertainties and all information is very clear with no surprises.
Unclear Solution
You don’t have a clear picture of what the solution will be with the set of requirements given.
Feedback on the work done so far
You require constant feedback from the client to check if what you are developing is in line with the client’s needs or visualization of the end product.
Frequent Enhancements
There could be few changes in the requirements as you develop and get the client’s feedback. You must accommodate the changes or enhancements and change your codes accordingly, which will increase the timeline for product delivery.
Cost Of Delay
The cost of delay is still minimal even though there might be a few changes as you go on developing the end product.
Experience on Projects
You may or may not have worked on such projects but you know how to handle a few change requests.
Suggested Methodologies:
The development methodology suggested for such kinds of projects where the end product is not clear is Kanban, Scrum.
Kanban methodology
Kanban is a great methodology for projects where either the requirement or the solution is uncertain. However, if the cost of delay is minimal, this would be the best methodology to choose. In Kanban, you must limit work in progress so that you do one thing at a time. You must continuously monitor the product, check how long a particular task is in progress, and prioritize other tasks if the current task is blocked. Watch your metrics and perform experiments. Start with a small tweak. If it helps, keep doing it. If it hinders, stop doing it. Don’t be afraid to try something crazy for a week; don’t throw out an idea because you think it won’t work. There might be some delays and if the cost of delay for this project is minimal, you can go for Kanban. However, Kanban is most suited for maintenance projects.
Scrum methodology
Unlike Kanban, Scrum is more time-boxed and planned. The entire project is split up into time boxes called Sprints, where team members including the project management (product owner), Scrum master (liaises between product owner and development team) and the development teams work together and plan for each Sprint the list of tasks or user stories that need to be completed. Once the team agrees and commits to completing certain tasks in a given time frame, the development team is expected to stick to the commitment and complete all tasks within the Sprint. Scrum is best suited when the cost of delay is high and deadlines are to be met accurately with minimal delay. Scrum is often used when there are more uncertainties in a project for example an end product is unclear or the requirements are not clear, requirements change frequently and there is a need to get constant feedback from the clients.
Complex Projects
Complex projects are the ones where neither the requirements are clear nor the solution is clear, cost delay is high and the requirements change often. These projects involve constant feedback and monitoring done by the client, which leads to changing requirements and the solution itself.
Clear Requirements
Requirements for complex projects are not clear, there are uncertainties or some of the requirements are missing.
Unclear Solution
You don’t have a clear picture of what the solution will be with the set of requirements given.
Feedback on the work done so far
You require constant feedback from the client to ensure that what you are developing is in line with client’s expectations of the end of the product.
Frequent Enhancements
There can be a lot of change requests during the development process as the clients give feedback on what you create. You must accommodate the changes and change your codes accordingly. This can push the delivery deadline.
Cost Of Delay
The cost of delay is huge and the project is highly time-bound.
Experience on Projects
You may or may not have worked on such projects; you would have difficulties when prioritizing loads of change requests and client feedback.
Suggested Methodologies:
Scrum Methodology
Scrum is best suited for such complex projects that have strict deadlines. Since Scrum methodology splits up the project into various time boxes (Sprints), you can work with whatever requirements you currently have and build upon that based on the client’s feedback. Also, with Sprint review, where the client checks and provides feedback on the work completed in the current Sprint, Scrum can accommodate various changes and can be triaged in the upcoming Sprints. With Sprint planning, you can make sure you complete the project on time and forecast the estimate based on historical data such as velocity from earlier Sprints. Based on the velocity of delivery of user story in the last Sprint, you can forecast on how long it might take to complete the project. This lets you inform the client about any delays beforehand, unlike Waterfall model where clients are informed of project delays at the end of the project.
Extreme Programming (XP)
Extreme programming is the best choice when your client is not sure of what his information system must do. You may have a system whose functionality is expected to change every few months. In many software systems dynamically changing requirements is the only constant. This is where XP succeeds while other methodologies do not. Also, if your client has a deadline set for you to deliver the product where he/she is unsure of how it must work, the risk is even higher. XP techniques are set up to address and mitigate the risks and increase the likelihood of success.
Chaotic Project
A chaotic project is one in which the requirements are unclear, the client does not know what exactly he wants to build, the feedback from the client is high and the requirements might change often, changing the way the end product will look. The cost of delay is also very high and you have very little to no experience in handling such projects.
Clear Requirements
Requirements for complex projects are full of uncertainties. There is little or no clarity. Some requirements might even be missing.
Unclear Solution
Your understanding of the end solution based on the given requirements is zero. Even the client does not have a clear idea of what he wants to build.
Feedback on the work done so far
You require constant feedback from the client to ensure that you are developing the right product.
Frequent Enhancements
There could be a lot of changes in the requirements as you develop when you get the client’s feedback. An entire set of code done today might not be used tomorrow as the requirements will change drastically.
Cost Of Delay
The cost of delay is huge and the project is highly time-sensitive.
Experience on Projects
You have very little to no experience of undertaking such a project. It’s extremely difficult to prioritize the tasks that need to be done to complete the project.
Suggested Methodology:
Extreme Programming (XP)
Extreme programming is best suited for conditions where the client is not sure of what exactly he wants to build and what his product will look like. XP is successful for projects that have dynamically changing requirements where the functionality is expected to change often. Also, if there is a tight deadline, the risk is higher. XP methodology addresses these scenarios and mitigates risks associated with the project so that the development team can successfully deliver on time.
If you’re looking to hire a custom software development company or you are looking to build a custom web application contact us today for a free consultation.
Stay ahead of the game with our helpful resources
4 digital solutions to address common application performance issues
High network latency, memory leaks, slow page loads, heavy CPU usage, and unresponsive servers are all typical performance issues we’ve experienced at some point when using or accessing digital applications. With how easy they occur in projects across verticals, you might be wondering whether the development teams behind these programs have done enough due diligence prior to the release. But human errors and oversight aren’t always the culprit. The reality is that while developers can strive to develop a fully functioning program with virtually no apparent faults upon delivery, no software is truly error-free. Even the most rigorously tested applications
6 useful tips for creating more robust application lifecycle management
As digital technology becomes the norm, software acquisition is now key to gaining a competitive edge in today’s market. Be it as a value offering tailored to consumers or a productivity tool to run complex processes, custom software undeniably helps companies drive growth and deliver value more efficiently. Just as necessary as having a proprietary application is prescribing a standard procedure to govern and maintain its utility. This is to ensure that your business can develop or adopt the right type of software—one that can fully cater to your business needs while keeping disruption to a minimum across critical milestones.
5 major roadblocks businesses must overcome when transitioning into a new software environment
As the business landscape becomes increasingly saturated, staying ahead of the curve often means embracing disruptive technologies to meet the fickle market demands. In most cases, this entails knowing when to pivot your current strategy to an entirely new solution. But recognizing the importance of digital shift is one thing; implementing the necessary IT upgrade is another. A global survey by Deloitte has found that although 87% of companies manage to identify the impact of digital trends on their industries, only 44% have adequately prepared for the coming disruptions. This vast disconnect between organizational expectations and conditions in the field
Is cloud computing the answer to better software development?
Cloud computing is perhaps not a term often heard in daily conversations, but it is one with a far-reaching impact on our technological needs. From expansive options of online data storage to numerous suites of web-based productivity tools like Google Workspace, nearly everyone has used a cloud-enabled technology. Over the last decade, this high degree of versatility also underpins the rapid cloud uptake among businesses. In fact, one survey has found that 94% of companies have already shifted their computing workloads on cloud platforms to varying extents. Unsurprisingly, the market size for cloud technology continues to grow exponentially. With a