{"id":338,"date":"2021-07-14T08:11:28","date_gmt":"2021-07-14T08:11:28","guid":{"rendered":"http:\/\/suimy.me\/?p=338"},"modified":"2024-05-01T17:04:38","modified_gmt":"2024-05-01T17:04:38","slug":"software-development-plan-made-easy","status":"publish","type":"post","link":"http:\/\/suimy.me\/index.php\/2021\/07\/14\/software-development-plan-made-easy\/","title":{"rendered":"Software Development Plan Made Easy"},"content":{"rendered":"\n
\n
\n

The Nature of<\/strong>\u00a0<\/strong>Software Development Projects<\/strong><\/h2>\n

The first issue concerning software development projects is the fact that\u00a0many of them are unique<\/strong><\/a>.\u00a0<\/strong>So unless you\u2019re developing the exact same software over and over again, the parameters differ too much to use them as a one stable point of reference.<\/p>\n

The second issue concerns\u00a0the rapid evolution of technology.\u00a0<\/strong>We don\u2019t even have to go back 50 years for comparison \u2014 it\u2019s enough to see\u00a0how much has changed just in the last decade<\/a>. Software development has no choice but to reflect that in the form of\u00a0constant<\/strong>\u00a0new programming languages<\/strong><\/a>, frameworks, libraries, and tools.<\/strong><\/p>\n

On top of that,\u00a0clients\u2019 needs along with market demands change as well.<\/strong>\u00a0Suddenly, the websites have to be SEO friendly, their mobile versions need to be top\u2013notch to satisfy the constantly raising market share of mobile devices, and web apps need to be restricted to one single page, following the example of Facebook and many other successful projects.<\/p>\n

Also, it will be beneficial to follow mobile SEO strategies<\/a> to enhance user experience and improve mobile conversion.<\/p>\n

It\u2019s a lot. Each project has the potential to bring something new, and the proposed solutions can\u2019t always be based on experience gained by the\u00a0years of delivering different software. That\u2019s what makes software development\u2019s estimations so difficult \u2014 there\u2019s simply\u00a0too much uncertainty and novelty to be able to properly assess each project.<\/strong><\/p>\n

That\u2019s also the reason why being an optimist doesn\u2019t pay off. Assuming that everything will go well with no delays, that there won\u2019t be any bugs to fix or last\u2013minute changes, is naive.\u00a0By thinking of the worst\u2013case scenarios, you can predict many issues and prepare for them in advance<\/strong>\u00a0\u2014 for example, by adding time buffers in recognition of sick leaves developers might have to take.<\/p>\n

To properly and masterfully manage all those unknown variables,\u00a0Steve McConnel<\/a>, an expert in software engineering and project management, introduced a concept known as the\u00a0Cone of Uncertainty<\/strong>. It\u2019s a model describing the level of uncertainty throughout the whole project \u2014 at the start, the level of uncertainty is huge. The more time passes though, the more data you gather and therefore, the more you know. And so the challenge lies in achieving that level of knowledge as fast as possible.<\/p>\n

<\/span>Software Development Project Plan<\/strong><\/h1>\n

Software development plan describes\u00a0what needs to be done and how in a clear, concise manner<\/strong>, so that the whole team knows their roles and responsibilities, but with enough flexibility to reflect the tumultuous nature of software development.<\/p>\n

Instead of having one strict deadline for the whole project, it\u2019s\u00a0divided into smaller parts<\/strong>\u00a0instead,<\/strong>\u00a0and the success rate is measured by\u00a0milestones<\/strong>. Depending on the type of\u00a0Software Development<\/strong>\u00a0Life Cycle<\/strong><\/a>, the whole process will include iterations, revisions, and feedback. So even though it may seem chaotic at first, the whole team, as well as stakeholders, will know the state of the project at all times.<\/p>\n

How does the software development lifecycle differ from the software development plan?<\/strong>\u00a0The former is a specific roadmap, describing all the steps and their order necessary to complete the project, while the latter focuses on explaining the scope of the project and all its circumstances. In short, a software development plan explains\u00a0what will be done and why,<\/strong>\u00a0while a software development lifecycle explains\u00a0how it will be done.<\/strong><\/p>\n

Now that we got all that out of the way, let\u2019s move on to the phases that will ensure a proper software development plan everyone can rely on.<\/p>\n<\/section><\/div>\n

\n
\n \"software-development-plan-image-1536x864\"<\/section>\n<\/p><\/div>\n
\n
\n

Defining The Problem<\/strong><\/h2>\n

The first phase starts the moment the client contacts a software house. During the first talks, besides deciding on terms of cooperation, the client should say:<\/p>\n