Software project planning is a skill that can be acquired through experience
Software project planning consists of
- Project estimation
- Project scheduling
- Project risk analysis
- Project quality management
- Project change management
You can think, The plan as a road map that tells you which way to go, how many people involved and what task assigned to them, the method used for evaluating risks and quality, and the actions that need to be taken for a change
A project will exist for a limited time and budget also, Always remember that the smaller the project the lesser the planning required furthermore if the project is large then planning need to be done in detail
Because suppose you want to build a door of a house, to build it you need less planning as it is a simple structure on the other hand if you want to construct a house then you would need more planning as it requires a complex structure
Software scope and feasibility
Software scope means the description of input and output function that need to deliver to the client and we can develop this description through discussion with the client
As you have captured the software scope then the next step would be to ask a question is it feasible? Or is it an illusion trap?
Understand one thing that everything which comes to mind will not be feasible
- Time feasibility
- Cost feasibility
- Resource feasibility
- Technology feasibility
Will the project time to market is sufficient enough to defeat your competition?
Do we have the required amount to complete the project?
Do we have the required skill set or framework that we have expertise?
Do we have enough resource that is required to complete the project?
Determine the number of people required with what skillset
Determine the software developments tools and hardware that is required for a project
determine whether you have elements of reusable software,(from past project, or purchased from third party ) code snippets which were internally developed in previous projects
As we know, from the software development world point of view. original work is less effective
Because it is alway better to use reuse the existing code, design, use cases which you have developed in the previous projects
Understanding the scope and evaluating whether you fall in that skill set that is required to complete the project
Remember planning helps you understand what you going to build and on the other hand capture software scope accurately. firstly, it will be easier for you to take a step in the right direction, and secondly, you won’t waste your time, energy, money by going in the wrong direction
Tradeoff b/w business need and project feasibility
What do you think? which is a more important business need or project feasibility at the end of the day business need is the king which determines the choice
It doesn’t matter if you have built the greatest product which no one wants, so we can say that the business need also the most thing that needs to be considered
Project scheduling means project break down structure where you divide the whole project into small manageable tasks to accomplish a common goal
- define work tasks
- define dependencies b/w tasks
- assign tasks to people with a specific time slot
- start date, end date
consider a simple object-oriented software project break down structure
task1: define problem definition
task 2: design software architecture
task 3: develop code from design
task 4:unit testing, debugging
why we need project scheduling?
because we can’t control a large project and access its progress towards deadline suppose in case if you surpassed the deadline then it won’t be nice that you visit the client and request to change the product delivery date