Core Concept #6 – Software Development Methodologies

6.1 – Waterfall Development

You figure out everything you need to do and document them (requirements). Like a waterfall, there’s no way to go back up unless you start over again. You move on to next phase only when current phase is completed.

Waterfall methology

Above: Waterfall methology

Image Credit: Carl Ceho

6.2 – Agile Development

You figure out some of the things you need to do at the beginning. Then, continuously improve, evolve, collaborate and adapt as the development goes on.

Here are some of the popular implementations of agile development methodology:

6.3 – Software Development In The Real World

So you graduated. You write good and beautiful code (hopefully), everything is perfect so far. Let me introduce you cowboy coding, a software development methodology that isn’t taught in college.

Next, you wonder why you suck at estimating development time:

Why you can't estimate development time accurately.

Above: Why you can’t estimate development time accurately.

Image Credit: Carl Cheo

And methodologies are often implemented wrongly:

Agile programming, the wrong way.

Above: Agile programming, the wrong way.

Image Credit: Dilbert


"Extreme programming," Dilbert style.

Above: “Extreme programming,” Dilbert style.

Image Credit: Dilbert

So there you go. Computer science in the nutshell.

Feel free to suggest any new computer science theories or concepts to add, those that you think is important and often confusing.

On the next page: Common Beginner’s Questions