Writing Code Using 2 Processes

By Nikhil Abraham

When writing code it isn’t always obvious how the end product was created. However, all programs, even mysterious ones, are created using a process. Two of the most popular processes used today are

  • Waterfall: A set of sequential steps followed to create a program.

  • Agile: A set of iterative steps followed to create a program.


Following is a specific scenario to explain how these two process work. Imagine you want to build a restaurant app that does the following two things:

  • It displays restaurant information, such as the hours of operation and the menu.

  • It allows users to make or cancel reservations.

Using the waterfall method, you’d define everything the app needs to do: You’d design both the information-display and the reservation parts of the app, code the entire app, and then release the app to users. By contrast, using the agile method, you would define, design, and code only the information-display portion of the app, release it to users, and collect feedback.

Based on the feedback collected, you then would redesign and make changes to the information-display to address major concerns. When you were satisfied with the information-display piece, you’d then define, design, and build the reservation part of the app. Again, you would collect feedback and refine the reservation feature to address major concerns.

The agile methodology stresses shorter development times, and has increased in popularity as the pace of technological change has increased. The waterfall approach, on the other hand, demands that the developer code and release the entire app at once, but since completing a large project takes an enormous amount of time, changes in technology may have occurred before the finished product arrives.

If you used the waterfall method to create the restaurant-app example, the technology to take user reservations may have changed by the time you get around to coding that portion of the app. Still, the waterfall approach remains popular in certain contexts, such as with financial and government software, where requirements and approval are obtained at the beginning of a project, and whose documentation of a project must be complete.

The healthcare.gov website, released in October 2013, was developed using a waterfall style process. Testing of all the code occurred in September 2013, when the entire system was assembled. Unfortunately, the tests occurred too late and were not comprehensive, resulting in not enough time to fix errors before launching the site publicly.

Regardless of whether you pick the agile or waterfall methodology, coding an app involves four steps:

  1. Researching what you want to build

  2. Designing your app

  3. Coding your app

  4. Debugging your code

On average, you will spend much more time researching, designing, and debugging your app than doing the actual coding, which is the opposite of what you may expect.