Software Development Life Cycle (SDLC) is a broad term for a set of methodologies designed to guide a software development project. SDLC is a “process that produces software with the highest quality and lowest cost in the shortest time.”
There are several SDLC methodologies, but most include a version of the following phases:
- Identify Current Problems
The cycle repeats itself with each new iteration of software.
This article focuses on the first phase of SDLC: Identifying Current Problems. In this phase, the goal is to understand the strengths and weaknesses of the current application and gather information to fuel Phase 2: Planning.
With every iteration of the software development life cycle, your mission should be to answer three big questions:
- What are the needs of the user?
- How can we better meet those needs?
- How can we improve technical performance?
The order of these questions is crucial. Without understanding your user, you risk creating a well-functioning app that no one wants to use. This is why user stories are considered a software development best practice. You must constantly get feedback from the user to ensure that your software iterations are heading in the right direction.
Only after you have a deep understanding of your user’s needs, should you focus on technical performance of the app.
The greatest source of information on the current state of your software are your key stakeholders. Each business has a different set of stakeholders, but generally you’ll want to talk to the following groups:
- Management (Business and IT Executives)
- Industry leaders
Each group experiences your application in a different way, so it’s important to get feedback from all groups, not just one or two.
Below are sample questions that cover each stakeholder group. Again, the goal is to learn how to improve your application.
This is the critical question that you want answered by your users. Why did they “hire” your application? What needs are they trying to fulfill?
You don’t want to mess with the features that your users love. It’s good to hear which ones they like the most.
You can’t be fragile when gathering feedback. You need to ask directly what they don’t like about your application and be prepared to listen.
This is a good chance to get suggestions from users. Take these answers with a grain of salt, however. As Steve Jobs said, customers don’t often know what they want.
This question is called The Net Promoter Score, a proven method for gauging customer satisfaction and identifying evangelists. Answers of 9 or 10 mean the customer is a “promoter”. They are so satisfied that they will spread the word about you. Customers who give a score of 7 or 8 are “passive” and are unlikely to say much about you. Scores 1 through 6 are considered “detractors”, meaning they are unsatisfied with your product and might even deter others from using you.
Recommendations are the best indicator of whether or not you’re meeting your customers’ needs. Asking the follow-up question of “why” will give you context to the number they choose.
Developers have a never-ending list of feature requests from customers, salespeople, and other departments. Repeat requests are a good sign that the feature is actually needed.
Were there any major errors during the last cycle? Can we develop a more permanent solution to recurring issues?
The first iteration of an application is almost always messy. The app might work, but the code is hacked together and hard to read. Look for chances to refactor your software, or rewrite the code to make it cleaner and more consistent.
Each software development life cycle requires prioritizing and making tradeoffs. You have finite time and resources, so ask your developers what features they think have the most value for the user.
From a business perspective, every software project should be connected to a high level business goal, whether that’s revenue, new customers, retention, etc.
Salespeople know the needs of potential customers better than anyone. Often they are the first to recognize an opportunity to solve a need in the industry.
Common objections from prospects might be a chance to improve the product. Ask your salespeople to take note of any concerns shared by prospects.
For high-level strategic planning, get the opinions of industry experts on what will be the hottest trends in your industry over the next year.
Industry watchers or consultants might have insight into unmet needs in the market. If you’re lucky enough to have access to this information, use it.
Your application itself is another valuable source of information for identifying current problems. If you use an application performance monitoring tool like Retrace or Prefix, you’ll have code-level insights into your application’s performance. Logs, error reports, and application performance metrics can help you prioritize the features to knock out in the next cycle.
The purpose of the first phase of the SDLC is to identify the strengths and weaknesses of your current application. Armed with this information, you’re ready to move into Phase 2: Planning.
In the planning phase, you’ll determine the requirements, resource costs, and risks associated with your next software development cycle.
For now, remember that Phase 1 of the SDLC is all about asking the right questions. In order to identify current problems, you first have to understand why you’re building the application, service, or component in the first place. With feedback from all your key stakeholders, you can begin making valuable improvements to your software.
Want to learn more about software development? The Stackify blog covers everything you need to build killer software.
- Fundamentals of the CD/CI Pipeline - February 13, 2018
- A Crash Course Guide to Cloud Deployment Models 2018 - February 12, 2018
- Software Trends for 2018: Continuous Delivery - February 5, 2018
- CI/CD Tools Throwdown: Jenkins vs. TeamCity vs. Bamboo - February 3, 2018
- Software Configuration Management: Patterns, Best Practices, and Tools for Agile and DevOps - January 25, 2018