Created: May 8, 2022 2:08 PM Tags: Development Model, SAT
The problem-solving methodology is a systematic way of solving problems, which divides the problem into 4 distinct stages: the Analysis, Design, Development and Evaluation phases. The issue is then worked through using different development models, as the process is not necessarily linear and can be executed in different ways. It is a methodology or a framework, and the way in which it is executed is known as a Development Model. For the purposes of this SAT, there are 3 different development models available:
The waterfall method is a block by block development model, where each section is signed off and there is no going back. It moves through the stages of the PSM in a linear fashion and are completed in order before moving onto the next one, each stage being a dependency for the next. The advantages of this is it is a very easy to understand process which is good for time management and allocation, and only one thing needs to be done at a time, so resources can be allocated effectively. On the other hand, it lacks in its flexibility in that different stages cannot be revisited and is not suitable for larger more complex projects where many things have to be going on at once to be efficient. It also means that a working prototype or mockup will not be available later in the project.
The Agile development model is one that achieves flexibility and communication with the client/audience through many iterations, called “sprints”. Each iteration goes through the PSM in five stages, gradually improving the software solution so the client can see changes frequently. These “sprints” are designed to have quick turnarounds such that large changes are not made in a direction the consumer does not desire before they are reviewed and revised, meaning functional requirements are modified quickly. This method of continuous development has the benefit of being very flexible and allowing many changes to take place, having a close connection with the client to get exactly what they want, reducing risks and providing an early release of the first product. On the other hand, it requires quite a bit of skill from the developers and introduces easy scope creep that is not ideal, with hard deadlines not being the easiest to set. Along with this, changes may be inconsistent with previous development. The Agile development model is well suited to when the needs of the client are not well-defined, frequent changes are needed, and when documentation is minimal with bare minimum planning required to start the project.
Similar to the Agile Model, the Spiral Development Model utilises iterations to create the software solution, going around until a minimum viable product is created. It’s somewhat halfway between the Waterfall and Agile models, not necessarily wanting continuous development but rather managing risks. It is split up into 4 phases, where prototypes are made, the risks are analysed and evaluated. This model is beneficial in that traditional processes remain but can still scale to be larger, and prototypes are developed quickly with risks being fast to deal with, but on the other hand, it can be more expensive than other models and creates an unnecessary amount of stages for small projects. This model is best suited to the kinds of projects where risks are expected and need to be prevented fast, the client is not too sure how to proceed and the product needs to be released quickly and can be updated after that.
The selected development model is Agile due to its flexibility and close connection with the client. Waterfall wasn't quite suitable to the needs of the project, as the developer and the audience have a close connection, meaning the two will work closely together, and in such a case it would not be very logical to not be able to go back and make any changes based on active feedback from the client or target audience. Agile will be better suited due to the close involvement with clients along with rapid releases that are tangible. The project also does not necessarily need much documentation, besides what is required by the subject, as this is a project that has an individual developer and external workers do not need to collaborate on the codebase. Mainly, the rigidity of Waterfall was deemed not suitable, and if a major roadblock was to be found in the middle of the project that was not accounted for before, the model would not be flexible enough to adapt. Finally, Spiral was also not the best choice as it would take up more time than the other models, creating an unnecessary amount of stages. Unlike the scenarios where Spiral is better suited, the clients of this project are relatively confident with how to proceed, and the developer does not need a quick product release or expect many risks with quick responses. As such, the decision lay mostly between Waterfall and Agile, but Agile was selected due to its ability to be more flexible with changes to the project.