What is Agile and Waterfall Development?

Photo by Kelly Sikkema on Unsplash

What is Agile? First, I came across this question in an interview and haven’t had the slightest clue on what it was considering my focus for the last few months have been about solidifying JavaScript, algorithms, data structures and React Native. As best as I can anyway. So I was curious enough to research it and figure out exactly what “Agile” meant. I soon found out that it is a Software Development Methodology. Often revolves around the evolution of a project from the ground up. Coming up with solutions and features to make changes as the development process furthers.

Let’s start with how we turn an idea into reality. When we have a certain idea it usually is a factor of being an upgrade to what we already have in todays world or an idea that does not currently exist. These ideas come with research and understanding the need for it. One way of doing this is known as “Waterfall Development” and the other is known as “Agile Development

Waterfall Development

This is when lots of time have been spent on doing your research then some time developing it before actually deploying it out to the world. This process can take a really long time and time is money. As well as being difficult to go back and fix errors since so much of the project is already completed. This is mainly from assuming that all problems are known upfront and will not change. That’s a no go and I would NOT suggest assumptions are a good thing! According to what I read up on most companies do not use this methodology anymore due to it’s financial costs from the many different factors I mentioned above.

Agile Development

Agile development is different in a way that after reading up about it. It is a way of planning a project that I have been doing since the beginning of my time at Flatiron Academy. It’s an iterative approach where you are not going to spend so much time in the development phase. Instead try to break up what you are trying to make into an MVP(Minimal Valuable Product). This allows you to create a project that can be used almost right away and incrementally evolve over time feature after feature. Instead of trying to create everything at once. We see this today in many applications. There are always new upgrades every few weeks or months. Whether it be a miniscule positioning of an element or a huge feature that has taken the platform by storm.

It is crazy to think that I could not even get the answer right during my interview but I used Agile Methods since I started programming. I guess with time it just shows that you don’t know everything even down to the correct terminology. HIGHLY important!. I hope this helped you understand it more as it surely did for me! Thanks for reading :)

Below is a list of my resources….

Software Engineering Student currently at Flatiron Academy. Background in architectural design. Love for sustainable design and tech!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store