If you plan to outsource, then outsource your planning too.
Outsourcing Software Planning is a great way to mitigate risks. Bringing experienced software engineers to your team at the beginning of the project can anticipate and avoid issues with resource and delivery timelines. Incorporating the planning phase as part of the outsourced scope of work will ensure that the outsourcing partner takes responsibility for the plan and its delivery.
Plan for adaptability
When we plan our software development projects using Agile methodology, we start from the big picture or “The Vision” and then drill down to a level where User Stories are well defined. At this stage, we tend not to go into too much detail about how the system will look but focus on things the system should do.
First we aim to define what can be achieved in two months rather than six. Whilst most projects can survive a delay in delivery of one week, if they’re properly planned, missing a deadline by a month can be catastrophic. We plan for short terms because they are more flexible if there needs to be a shift in direction during the project.
Our motto at Techifide: Accept and allow changes of direction. It’s best to be open-minded and humble at all times because software development is by its nature an evolving process. At any given point, it’s not possible to fully understand everything, perhaps not even at the end – there’s always further to go.
We consider days of work rather than effort as metrics for estimating tasks. Many Agile academics say Story Points are the best way to quantify effort. However, that effort will be translated into hours or days of work, and time is money. Always thinking about budgets, we estimate in terms of days instead of effort.
We use the Fibonacci sequence:
- 1 day
- 2 days
- 3 days
- 5 days
- 8 days
- 13 days
If a task will take more than five days to be completed, we try to break it down into smaller tasks and make sure the smaller pieces get merged into the master code and release as soon as possible, so that you can start validating functionality with your users.