Estimate like a pro
As a rule, spend more time refining user stories than estimating the cost to implement work. If the story definition is clear, a story estimate should not take more than five minutes. For higher-risk engagements, involve several engineers and designers to inform the estimate independently and reconcile the differences afterward.
For engineering, estimate development and testing effort in days—preferably for each story or epic consider the:
- level of unit-testing coverage.
- ability to split up work for multiple engineers/teams.
- need for test case documentation/artifacts.
- need for regression testing documentation/artifacts.
- supported operating systems, browsers, and devices.
Estimate DevOps effort in days or as a proportion of total work. Consider the delivery team’s familiarity with build/deployment systems as well as the need for clients to sign off on progress or other types of “gatekeeping.”
Take the above sum of all efforts and then list and apply risk modifiers to the amount (e.g., heavy integration delays may incur a 10 percent penalty on total effort). Negotiate with the client to either lower the risks or be aware of the additional cost that the risk modifiers will contribute to the overall effort. Discuss the implication of risk modifiers with your team as well as the client’s team on an ongoing basis—being aware of risk is half the battle.
Consider the following:
- The size of the overall engagement and how many work streams you plan to parallelize—along with the number of product managers that should be allocated to the effort—needs to be well understood.
- All engagements require a full-time product manager (no half allocations).
- Establish milestones and microreleases to demonstrate progress and measure success.
- Include analytics as part of the foundational requirements for the platform.
Consider the following:
- Include at least one full-time product designer for all engagements, often several (no half allocations).
- In addition to pure design output, consider the need for design research, user testing, prototyping, etc.
- Consider a design system as part of the deliverables.
Despite client requirements, insist on the inclusion of
- back-end and front-end automated testing in the development effort;
- automated test coverage as part of the testing strategy;
- UI styling by our front-end engineers;
- performance strategy and testing; and
- logging/uptime monitoring strategy.
When our team takes ownership of all the core facets of the build, we are much more likely to build a superior product. Using our well-defined practices, processes, and tools ensures that we can operate at the highest standard and that we will not have to compromise our proven approach to these activities.