software development lifecycle phases

SDLC Phases: Identify Current Problems

Ben Putano Developer Tips, Tricks & Resources, Insights for Dev Managers Leave a Comment

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.”

SDLC Phases

There are several SDLC methodologies, but most include a version of the following phases:

  1. Identify Current Problems
  2. Plan
  3. Design
  4. Build
  5. Test
  6. Deploy
  7. Maintain

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.

Asking the right questions

With every iteration of the software development life cycle, your mission should be to answer three big questions:

  1. What are the needs of the user?
  2. How can we better meet those needs?
  3. 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.

Getting feedback from key stakeholders

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:

  • Customers
  • Developers
  • Management (Business and IT Executives)
  • Salespeople
  • 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.

Getting feedback from customers (or users)

What do you hope to accomplish by using this app?

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?

What is your favorite aspect of the application?

You don’t want to mess with the features that your users love. It’s good to hear which ones they like the most.

What is your least favorite part of the application?

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.

What improvements would you like to see to the application?

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.

How likely are you to recommend this application to a friend or colleague?

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.

Asking the follow-up question of “why” will give you context to the number they choose.

Getting feedback from developers

What are the most popular feature requests?

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.

What do the bug reports look like?

Were there any major errors during the last cycle? Can we develop a more permanent solution to recurring issues?

Are there opportunities for refactoring?

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.

Which features will make the biggest impact?

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.

Getting feedback from management

What are the business goals we are trying to achieve with this project?

From a business perspective, every software project should be connected to a high level business goal, whether that’s revenue, new customers, retention, etc.

Getting feedback from salespeople

What challenges are prospects facing?

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.

What are the biggest concerns about our product?

Common objections from prospects might be a chance to improve the product. Ask your salespeople to take note of any concerns shared by prospects.

Getting feedback from industry experts

What industry trends will be most important in the upcoming year?

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.

Are there any gaps in the market?

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.

Other sources of insight

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.

Next phase of SDLC: planning

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.

SaveSaveSaveSaveSaveSave

About Ben Putano

Ben is a writer and technology enthusiast based out of Kansas City, Missouri. His company, WeContent, helps technology companies build passionate audiences through irresistible content.