How many times have you heard or said the following?
All I am looking for is a “simple” application that is mobile friendly with features like customer management, inventory management, project time tracker, event manager, shopping cart, product tracker…and the list goes on.
This is how most of the web application development projects start.
The keyword here is, “simple.” Even though the functionality listed for a project might seem like standard features that make it easy for us to use the application, it does not necessarily mean that these features are simple to develop.
Does that mean we need to stress out about starting work on a new idea? Of course not. There are multiple development methodologies available out there which make it easy for us to handle these complicated applications.
Even though the amount of work involved in the development process stays the same, these methodologies make it easier to ensure a successful delivery of the final app. Let’s look at some of the famous methodologies that most of the successful companies are using: Agile and Waterfall.
Agile refers to something quick and always alert and so does the methodology it refers to. In an agile environment the application is developed in phases and each phase is delivered and deployed for use rapidly. Typically, deliverables in an agile environment are scheduled to be released every six weeks. The idea behind an agile approach is prioritizing the features from the initial scope and grouping them into multiple phases based on their importance.
Every time a phase is completed, the set of features which were part of that phase are put in use while the next set of features is being developed for the next phase. This allows for quicker delivery of small parts of the full application. Since the system is being used while development on other parts is pending, the users can also beta test it and list out fixes which can be included in the next phase of development. This circular development approach is great for medium size applications that require faster delivery.
On the other hand, waterfall development approach does not repeat steps of development after the application has been delivered. Just like a waterfall, this methodology goes through steps that are not repeated. A waterfall always flows in one direction, and once the water reaches the bottom, it doesn’t go back up. In the waterfall approach of development each step has defined end points and until all the tasks from each step are completed, the next step is not initiated.
A standard development goes through planning of the scope and budget of the system, and then the requirements are defined and checked for accuracy. Once the requirements are signed off on, the application designing is started. The design phase is vague here because this could either be the user interface design, application framework design, or application objects and database structure design.
The application that is designed is now ready for the developers to code. This is called the development step. Finally, the system is tested at different levels, and the application is deployed for the final users to work with. After deploying the application, any changes or fixes are part of the maintenance phase. This works well for systems which have a well-defined scope and requirements because it is not built for requirements change management. What is change management? Let’s leave that for another discussion.
If you ask us, what approach works for Custom Creatives? The methodology that we use for our projects depends upon what type of project it is, but in most cases we have worked with a hybrid approach. Some of the features of the waterfall approach work very well for project planning, and agile approach helps with quicker delivery of the important features of the application. Gathering all the requirements up front using a waterfall approach helps in planning the delivery of different versions of application as per project priorities. Once we get into the development and testing, breaking it down into versions or phases allows us to release important features of the application in a shorter time frame. This approach also helps if requirements change after parts of the application are delivered.
Now to bring it all together, we have to understand that no IT project should be considered “simple” unless a good development methodology is used. Planning and organizing the development not only reduces the time and cost, it also ensures that the correct end product is delivered.