Managing Software Projects: Challenges & Processes

Instructor: Allesha Fogle

Allesha has graduate degrees in software engineering and computer science. She has over 15 years' experience in software and application development.

This lesson will cover the basics of how software projects are different from other projects as well as common challenges and methods for maintaining project scope, dealing with unexpected changes and communicating as a team.

Software Project Management

Software projects involve the organization of business and technical expertise to meet a need through a software solution. There are some unique challenges faced when managing software projects due to the nearly limitless goals that can be reasonably achieved through software products and the various implementation paths to accomplish them. In this lesson, we will discuss the unique qualities of software projects, the challenges that are commonly faced, and some methods to overcome these challenges.

The Players and the Process

One important part of software projects is the collaboration and communication of the team involved. The team can consist of stakeholders, business analysts, the development team, and a project manager who all have a role in delivering the final software product. Some of these roles could be filled by the same person or group in some cases, especially in smaller organizations without the resources to fill each role separately.

Software projects involve several stages including:

  • Definition of requirements
  • Analysis and design
  • Implementation
  • Testing
  • Product delivery

Some of the biggest challenges within a software process are maintaining project scope, unexpected changes in planned activities, and team communication issues. The following sections will discuss each of these challenges and some methods for dealing with these issues.

Scope Creep

The scope of the project defines exactly how much functionality should be included within the parameters of the software project. Because software development is dynamic and business needs change, there are many opportunities to introduce changes that were not specifically included in the original functional requirements. This issue, called scope creep, is often introduced to add more perceived value to the software product. Although flexibility is a benefit of using software solutions, this is often a factor causing product delivery to be delayed and cost more than originally planned.

For example, if the original scope includes the ability of the software to send emails only, adding fax and phone functionalities as well could lead to significant additional time spent on analysis, development, and testing which was not accounted for in the project plan. Prompt communication about proposed changes is a good way to overcome this challenge, since the entire team should agree to deal with the impact of the added scope before proceeding. If the team decides the cost is unacceptable, the added scope items should be limited or eliminated.

Expect the Unexpected

There are usually unexpected changes that affect the project plan regardless of whether scope creep is introduced. A defect is a failure at any part of the process that leads to software not working as expected once delivered. Defects can be introduced at any stage in the project and defects discovered late in the project will take greater effort to resolve. Sometimes during analysis, we find additional requirements are necessary to complete the project. This happens because some aspect of a product's expected use was not previously considered. Requirements defects can be difficult to detect and are sometimes not discovered until the product is already delivered. Such a change could range anywhere from minor and simple to add, to creating a need for system redesign adding significant effort to the project.

Risk of requirements defects can be minimized by having the software reviewed and tested early and often by people who understand how it will be used. Similarly, having a code review process, can reduce the number of implementation defects as they lead to early discovery of mistakes. Code review is the examination of written software code by other developers to identify defects implementation or design defects based on coding standards adopted by the team. A defined software testing process will identify implementation defects before the software is delivered. Software testing ensures the final product meets the defined software requirements.

Another type of unexpected change is due to the nature of work required for software development. Complex requirements often require more time for analysis and problem solving. There are often no set steps to resolve these issues because they take the work of the human mind which cannot necessarily be reduced to simple time-boxed tasks. Documentation of project information can help reduce the level of uncertainty over time, since that historical project data can be used in estimation of future projects with the same or similar resources or issues.

To unlock this lesson you must be a Member.
Create your account

Register to view this lesson

Are you a student or a teacher?

Unlock Your Education

See for yourself why 30 million people use

Become a member and start learning now.
Become a Member  Back
What teachers are saying about
Try it risk-free for 30 days

Earning College Credit

Did you know… We have over 200 college courses that prepare you to earn credit by exam that is accepted by over 1,500 colleges and universities. You can test out of the first two years of college and save thousands off your degree. Anyone can earn credit-by-exam regardless of age or education level.

To learn more, visit our Earning Credit Page

Transferring credit to the school of your choice

Not sure what college you want to attend yet? has thousands of articles about every imaginable degree, area of study and career path that can help you find the school that's right for you.

Create an account to start this course today
Try it risk-free for 30 days!
Create an account