The following is a guest post by Raj Subrameyer – Raj is an international keynote speaker, writer and tech career coach who helps people step into the leadership role of their dreams through his services and speeches. (More about the author below)
With customer demands increasing at an exponential rate, companies are forced to release software at a faster rate to meet these demands. Teams are under a lot of pressure to deliver as many features as possible within a constricted timeframe. As a result, when a user story passes through different phases of the Software Development Life cycle (SDLC) it constantly gets updated until the feature is actually released to the customer. This is called “scope creep” and is the number one cause of delays in release timelines.
According to the PMI’s Pulse of the Profession survey, a startling 52% of projects experience scope creep. As the requirements constantly change, the expectations of how a functionality should work also drastically change; resulting in the final feature being totally different from initial expectations. This causes unnecessary waste of cost, time and effort. So, how do we reduce scope creep in an agile project? Below are some ways to tackle this problem:
Get clarity in requirements as early as possible
Teams need to discuss expectations right at the planning phase of the user story which is usually during the high-level planning phase. This is the meeting where the entire team sits together and discusses each user story for the current release. Usually, the product owner leads these discussions and explains the requirements and expectations of the customer. Teams need to take this opportunity to raise questions and concerns, get clarity on expectations and discuss the details of the story to help in proper development and testing; in terms of complexity, dependencies, testability challenges and much more. Having this discussion helps to flush out most of the ambiguity in the requirements.
Have kick-off meetings
These are meetings that happen just before the development process starts on a user story. At this stage, the user story is more granular than how it was in the high-level planning phase. A developer, tester and business representative congregate together and discuss the requirements of the story. Several details such as missing requirements, testability challenges, unit and automated tests that need to be written, dependencies to other stories, test data needed for the story and the availability of final mockups for feature development are discussed in this meeting. They are usually timeboxed to be within 5 – 10 minutes. These meetings help to drill down into the finer details of the user story and gives more clarity to the team on how a certain feature needs to be developed and tested.
Freeze requirements once development work starts
One of the major problems teams face when working on a user story is new updates are made to the story even after the features have been developed and tested. There is no process in place to finalize the requirements of a story. So, the first order of business should be to lock down the requirements after the development work starts on a user story. If any changes have to be made to the story after this point, it has to go through a strict change management process.
Have a strict change management process
Any change to the user story that is currently in development needs to go through a change management process collaboratively established by the team. The process may look different depending on the context of the project and the organization but the common theme is to allow only critical changes to be added to the user story for which development/testing is in progress. All other changes have to be included in a separate story which hasn’t been planned yet. This helps to reduce constant changes in the requirements even after the development/testing on a story is complete. Also, saves considerable time, cost and effort.
Build awareness by empowering teams
Scope creep affects all roles in a project; the developers, testers, business folks, product owner, scrum master, UX designers, technical leads/architects and other stakeholders. This being the case, why not build awareness on the importance of preventing scope creep? Why shouldn’t we empower teams to raise a red flag when they notice process gaps at any point of the development process? Clear communication should be given by leaders on why this issue needs to be prevented as early as possible and everyone should own the responsibility of making sure scope creep does not seep into the development process. People should be given the authority to say NO when they notice changes in requirements that do not follow the change management process. There are also different tools and solutions available to document requirements and map them to the development and testing process. These tools can generate dashboards and give increased visibility into the changes in requirements and how it affects the development and testing process.
The above being said, changes in requirements could be beneficial to teams, helping to make features better and more usable for the end-user; but there needs to be a set cadence on when to do such changes and be mindful of how it could impact teams. There is a fine balance between updating requirements when needed (as long as it goes through a change management process) and locking down the requirements to prevent further changes from affecting the development and testing effort. So, remember “scope creep” can be your enemy or your friend. The choice is yours!
About the Author
Raj Subrameyer is an international keynote speaker, writer and tech career coach who helps people step into the leadership role of their dreams through his services and speeches. He is helping countless people to discover their zone of genius and leverage it to live the life that they love.
On top of that, he is helping tools and services companies build brand awareness through content creation and thought leadership. In his spare time, he loves traveling with his family and discovering new experiences which include craft beer. You can connect with him on twitter – @epsilon11, or his website – www.rajsubra.com.
Practitest is an end-to-end test management tool, that gives you control of the entire testing process - from manual testing to automated testing and CI.
Designed for testers by testers, PractiTest can be customized to your team's ever-changing needs.
With fast professional and methodological support, you can make the most of your time and release products quickly and successfully to meet your user’s needs.