Feature Creep occurs in software projects when additional features are seemingly added nonstop throughout the life of the project. This can (and will) negatively affect the project budget and user experience.
From my experience managing software projects, feature creep occurs most frequently on projects that have not been properly scoped out before work was started. When a project is not clearly defined, both the agency and the client will not be satisfied with the end result. When there is no clear project plan the entire project is open to interpretation. Assumptions about functionality, cost, and maintenance can lead to costly miscommunications over the life of the project.
In my opinion, the most important thing that can be done to reduce feature creep is to ask these critical questions when a project is in planning:
Why are we building this software?
What are the business requirements? In other words, what exactly must be done for this project to be considered successful? When planning a project the answer to these questions must be extremely detailed. Do not make any assumptions. Anything that is not discussed in the requirements will not be covered in the quote and this can easily lead to miscommunication over project priorities/cost.
What other systems will this software need to communicate with? This is critical is assessing the initial cost and difficulty of a project.
- Who is going to use this software?
- What is their technical ability?
- What is their existing workflow like?
- What are we hoping to accomplish with this new software from the user perspective?
When asking these questions one thing that can be overlooked is who is answering the questions. Are you including all necessary departments in the initial project planning? If you are creating a software solution that will be used by several departments, it is extremely important to know what the priorities of the organization are. There may be political differences within the organization but it is best to find any potential pitfalls early on in the project lifecycle and make any necessary changes before it is too late.
Here are some tips on preventing feature creep once your project has been scoped and work has begun:
- Don’t just say yes. Instead say ‘I’ll get back to you about that’. A quick yes can often turn into a huge time suck for your team.
- Ask questions about requested features. Make sure you understand exactly what the client is asking for. This can save you a lot of hassle further down the road.
- Just because one person asks for a change does not mean it is necessary. Make sure the change is approved by project stakeholders before your team begins working on it.
- Attach time and cost estimates to feature requests so clients can see how they add up before you start working.
Not every project is scoped perfectly. If you find yourself drowning in project that has a severe case of feature creep, here are my recommendations to get your head above water:
- Do not implement any features or requests until you have finished the basic cornerstones of your project.
- Once the essential parts of the project are built, review and prioritize the list of features you have received with all project stakeholders.
- Estimate time and cost of the features, cost alone will typically reduce the amount of feature requests you have received. Eliminate as many as possible. Not all requested features are necessary.
- Work on high priority tasks until completion. Do not accept new requests until high priority tasks are finished.
Don’t let feature creep bring your project down. Doing your homework before you begin any project is an absolute must. If you are diligent in documenting change requests, while simultaneously managing client expectations, you will put yourself in good position to have a successful (and profitable) relationship with your clients.