There are many web design methodologies that have been presented over the years, and they all have different attributes. Some prioritise speed, while others are catered to a large team. The most widely used and the one I have chosen to use is the Systems Development Life Cycle (SDLC) which breaks down the phases and presents them in an endless circle, meaning that the you can refer to it not only for the creation of the project but also for the entirety of the applications life cycle. This means that it is what’s called an “Agile” development model. An Agile methodology allows for adaptive planning and continuous development. Key components also include a quick and flexible response to external factors.
- Requirements Analysis – This is where the users’ expectations are defined, and the specific requirements of the project. It involves research of alternatives and prioritisation of the project goals. It includes the clarification of the requirements and the confirmation that they are quantifiable and within scope. However, within most modern projects these requirements are typically quite general statements that get refined throughout the project. As you can see from the diagram, Requirements Analysis is an ongoing process which is why it’s an agile methodology.
- Design – This phase involves turning the specifications into a design specification. This can then be reviewed by certain parties, like the people you are creating the artefact for. You can then take their feedback and refine parts of the design.
- Implementation – This is where the development of the application will begin. Typical projects see the sections of the design divided up and organised along with the predicted time frame of each section. You can then decide which parts to prioritise. This is the longest process, but is typically the least complicated.
- Testing – The development continues into this phase, where one will test every aspect of the application. This usually involves an identification and amending of errors and bugs. Testing should be done vigorously and in all environments. E.g if your testing a website, test it on all browsers and on mobile phones.
- Evolution – The application could be complete but that doesn’t mean its not going to be subject to change. The application may be working and complete, but could evolve in certain ways to be even better. Because of the nature of this methodology, if you wanted to make changes or updates to a complete project, you would go back to establishing the requirements and continue around the life cycle.
Forrester surveyed nearly 1300 IT professionals asking them what development process they use, 46% of them said they use Agile. The other 54% is made up of companies that use other ones like the waterfall model.
- Waterfall Model: This model is designed in such a way where each phase must be completed fully, before moving to the next one. Once each phase is completed, it is reviewed and feedback is received to see if the project is meeting targets and whether it is appropriate to continue. This is a more simplistic model, which makes it easy to use and manage, particularly as phases do not overlap each other. It was the first process model to be produced, and has been used since the 50s. However, research shows that more and more companies are starting to use agile. In projects where the requirements aren’t necessarily set in stone, or they are subject to change, the waterfall model lacks adaptability in these circumstances. With long and big projects it would be risky to use this model, because of the likelihood of certain elements of the design or requirements changing half way through.
Which one should you use? That is for you to decide but the statistics show that Agile is becoming more and more popular, and Im not suprised.