Business Courses / Course / Chapter

Bottleneck Effect in Software Development

Instructor: Stephen Meyer

Stephen has worked as a Project Manager and is PMP certified, as well as certified by the Scrum Alliance.

Quality software, an essential for any company, comes from quality software development. The goal for software development is efficiency, which is diminished when bottlenecks occur. Learn about the bottleneck effect in software development.

Defining Bottlenecks

Bret is a consultant for software development projects. He has had success in his work because he takes a unique approach. Many consultants take a broad look at the team, methodology, processes, and tools, and offer advice for each. Bret focuses solely on identifying and eliminating bottlenecks. While he believes there are a number of areas to consider, they should only be addressed if they involve bottlenecks.

A bottleneck in software development is an inefficiency where the flow of the project and/or work stops or slows at a particular point. Bottlenecks can occur in any project methodology. This is because all methodologies involve some form of sequence or progression, which can be slowed. The effect of bottlenecks is that resources at the stage where the bottleneck occurs are overextended while resources at later stages are underused or idle, creating inefficiency.

Potential Bottlenecks

Once Bret helps companies understand bottlenecks and the negative impact they can have, he moves on to identifying specific bottlenecks that can occur. The reasons they occur can be general, like team-related reasons, or specific to each aspect of a software development project. Successful companies identify all bottlenecks.

Teams

Bottlenecks can occur based on the makeup of the team, which is applicable to the development team, as well as the project team as a whole. For the development team, the goal is to be cross-functional where different team members have shared skills and competencies. This creates flexibility in completing work, where different people can be engaged and share the load. Bret warns teams that the less cross-functional they are, the more likely bottlenecks will occur.

For the project team as a whole, the problem area is around priorities. Development teams lean toward being fast and focusing on what is necessary. Stakeholders lean toward quality and are less likely to make a distinction between what is a need versus a want. Differing priorities could affect any and every area of a project, from requirements being established through their completion. Given this level of impact, Bret encourages project teams to agree on their priorities.

Requirements

One of the first steps in a project involves establishing the requirements, or the work that needs to be completed in the project. The potential for bottlenecks exists at the creation of these requirements, as well as with the quality of the requirements. Depending on the methodology, project requirements are written by stakeholders or a smaller subset of individuals on behalf of the stakeholders. This process works best when consensus can be reached or a sole decision-maker can be established. Bret cautions teams that if an agreement cannot be reached, because of differing opinions or even because different individuals are unavailable, project requirements cannot be established, creating a bottleneck.

Once project requirements are established, the potential for a bottleneck does not disappear. The purpose of the requirements is to define what is needed for the project in a way that can be understood by the project team. Providing too much or too little detail could slow things down. People will either spend time working through information that is unnecessary or seeking out needed information that is missing. Neither of these is desirable and could create a bottleneck at any stage where requirements are involved.

Development

Once requirements have been established, development can begin. One of the areas that Bret focuses on that can cause bottlenecks is the developers. Specifically, he focuses on the skill sets of the developers. Oftentimes, developers have areas of specialty and focus exclusively on work items that fall within their specialties. When work does not vary, bottlenecks can occur because only developers whose specialty is required are working efficiently.

The other area that Bret focuses on is the technology available to developers. Even if developers share the skill necessary to complete the project work, the technology can still cause bottlenecks. If the systems being used are dated and the work being done involves changes to existing software, technical debt can be a factor. Also, if there are differences between the development, testing, and production environments, inefficiencies can occur.

To unlock this lesson you must be a Study.com 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 Study.com

Become a Study.com member and start learning now.
Become a Member  Back

Resources created by teachers for teachers

Over 30,000 video lessons & teaching resources‐all in one place.
Video lessons
Quizzes & Worksheets
Classroom Integration
Lesson Plans

I would definitely recommend Study.com to my colleagues. It’s like a teacher waved a magic wand and did the work for me. I feel like it’s a lifeline.

Jennifer B.
Teacher
Jennifer B.
Create an account to start this course today
Used by over 30 million students worldwide
Create an account