How much planning should be done in software development? That depends on many factors - criticality, complexity, cost and time.
Upfront planning performed before construction begins will always produce a better end result. But how much is essential and how much is too much? If we understand software planning (strategy, architecture and design) to mean creating the roadmap and blueprint of the system, then we can conclude that planning entails high level decision making affecting future activities in the process of construction. Decisions made at any stage in a project that affect prior work (i.e. upstream activities) such as design decisions made during contruction will often have adverse affects overall since they may be made out-of-context, with limited knowledge of the overall system, or for reasons of expediency.
Systems with high criticality (e.g. process control, medical) necessitate sound decisions and detailed plans to produce high quality, mission critical, error-free systems. Complex systems require comprehensive architectures to lay out the big picture and structure the component parts. Low-end web sites under tight cost constraints likely operate under less rigorous and disciplined designs, suitable to Agile methodologies under the guidance of informal strategic planning.
No comments:
Post a Comment