Methodologies, Paradigms, and Practices
It could be argued that software engineering, at least as it's usually thought of now, really came into being with the first formally identified software development methodology. That methodology (which was eventually dubbed Waterfall in 1976) made people start thinking about not just how the software worked, or how to write the code, but what the processes around writing the code needed to look like in order to make it more effective. Since then, roughly a dozen other methodologies have come into being, and in at least one case, the collection of various Agile methodologies, there are nearly a dozen distinct sub-variants, though Scrum is almost certainly the most widely known, and Kanban may be a close second.
While those methodologies were growing and maturing, the increase in computing power also led, eventually, to newer, more useful, or more efficient development paradigms. Object-Oriented Programming (OOP) and Functional Programming (FP) are probably the most well-known advances on the original procedural programming paradigm that dominated the scene for decades. Automation of code integration and promotion practices (Continuous Integration and Delivery, respectively) have also become popular in recent years.
In this chapter, we will cover the following topics:
- Process methodologies
- Waterfall
- Agile:
- Scrum
- Kanban
- Development paradigms:
- Object-Oriented Programming (OOP)
- Functional Programming (FP)
- Development practices:
- Continuous Integration
- Continuous Delivery