How to define project definition?
Scaling up your business requires a change of approach toward project definition. In the context of software, we refer to it as all the aspects that need to be covered during the process of planning and execution. A good project definition should answer the following questions:
All projects should start by providing their business justification, a prerequisite to initiating any project. We can see this phase in almost every project management approach, including PRINCE2, DSDM (Dynamic Systems Development Method), or even AgileSHIFT. The latter one, which is relatively new to the market, distinguishes a phase called “Startup” which asks if the project is worth doing.
Everything that needs to be done during the project. The scope of work has to be established before the project starts. As change is a part of every software-based project one has to take it into consideration when defining technical and system infrastructure, and the rules and procedures which will be used to operate the software. There is also a need to provide your team with training on maintenance or new organizational procedures introduced after scaling.
There is a need for a simplified structure within the team, with a clear set of responsibilities assigned to every person.
A project definition has to include both a general and a detailed (with every task required) timeframe allowing the team and all stakeholders to track the progress.
How to define the project scope?
Even if you have vast resources, without a well-defined project scope there is little chance of success. So what is a scope and how do you define it when you have to make frequent changes to your product during the software development process? In simple terms: by defining scope we mean adopting a clear vision and an agreement on the deliverables expected from the project.
While defining the scope you have to prepare a detailed description of what the project is supposed to achieve and what it cannot accomplish. Of course, in today’s world changes to the project are inevitable, especially if you assume scaling up. To deal with that situation project managers use project scope management which includes defining project needs, understanding the project objectives, and the project scope definition.
By using Work Breakdown Structure (WBS), Product Breakdown Structure (PBS), or Resource Breakdown Structure (RBS) you can determine the impact of the change on the project scope.
These structures identify the features, components, or resources that would need to be added, changed, or deleted during the lifecycle of the project. Doing so will help to avoid scope creep. Furthermore, you must frequently update your project scope and communicate any changes to all stakeholders.
- Use WBS, and PBS RBS to identify any changes that can impact the project
- Update your project scope frequently
How to re-organize a software development model when the product continually changes?
To maintain both high-quality and high value when the product continually changes there is a need for a re-organization of the software development model, which means choosing the right methodology, preferably the agile one (Extreme programming, Scrum, etc.) When it comes to requirements, project managers using Scrum tend to freeze the model for the current iteration so developers have a certain level of stability, although XP and DAD practitioners allow a change during the iteration. Whichever you choose, it is important to bear in mind that it may result in moving some requirements to the next iteration.
When working on the software project, stakeholders are responsible for defining and prioritizing new requirements, whilst developers are in charge of estimating the effort it takes to implement them. As many examples show, dealing with smaller requirements is easy to estimate, while bigger ones can be challenging.
So how to manage more difficult requirements? You must reorganize them into smaller and more manageable parts, so they can be implemented within a single iteration. As for iteration itself, it has to be shorter than in Scrum because it reduces the feedback cycle, making it easier to stay on track for both developers and stakeholders.
- Incline toward Agile rather than traditional methods.
- Try to manage any change to requirements within one iteration.