The Software Development Life Cycle - Planning
What is the planning phase? (phase)
The planning phase is concerned with (what) making plans to develop a software product or service. This may involve defining a minimum viable product or an ideal software version, creating project documents, and/or carrying out product-to-market fit. The planning phase ends with a decision for or against continued work or development of the intended software.
Why plan software development? (high-quality software)
[2 c1]
- Identify the ideal requirement(s) essential for a software project’s success
- Identify and resolve conflicts between high-level trade-offs i.e. similar or opposing requirements
- Reduce issues associated with lack of planning such as budget creep, time creep, scope creep etc
- Reduce the risk of developing unwanted software
- Enable an informed decision for or against further investment in a software project
Where do I plan the development of software? (controlled environments)
- Location: physical, online or hybrid meetings, events, collaborations
- In the environment, where a stakeholder is located in [2 c1]
- In the environment, where individuals who may use the intended software are located [2 c1]
When do I plan to develop software? (design and development session)
- During the start of a new project i.e. when an individual, corporate entity, or government having observed a want or need are interested in mitigating or resolving that need through the use of a software system
- During any phase in the SDLC project i.e. when a want or need is identified to alter any activity, result, document created in the planning phase
How do I plan the development of software? i.e. methodology
[2 c1]
- Project management process:
- In a sequential methodology such as Waterfall, planning phase is a one-off activity
- In an iterative methodology such as Agile, Prototype, planning phase is a concurrent process
- In an hybrid methodology, planning phase is both a sequential and a concurrent phase
- Planning process:
- Gather information for a software system proposal e.g. problem definition, organizational objectives, limitations in existing solutions, study of end-user needs, etc
- Define the expected software systems properties and functions
- Propose high-level solutions approach (is solution feasible?), select the most favorable, and analyze the trade-offs involved
- Create documents which guide the software projects operation, timeline, risks e.g. Project management plan, Feasibility study, Risk management plan etc
- Validate assumptions made e.g. does a market indeed exist for this software solution
- Make a decision to continue or abandon project using all the findings, and data acquired
- Persons: Stakeholders, representative users
- Tools: Document templates
- Technique: Observe the way and environment in which the proposed software may be used