The influence of programming paradigms on development techniques
I was reading an old paper recently A Requirements-Driven Software Development Methodology by Castro, Kolp and Mylopoulos where I found an interesting assertion:
Software development techniques have traditionally been inspired and driven by the programming paradigm of the day.
This means that the concepts, methods and tools used during all phases of development were based on those offered by the pre-eminent programming paradigm. So, during the era of structured programming, structured analysis and design techniques were proposed, while object-oriented programming has given rise [..] to object-oriented design and analysis
This may seem somewhat surprising, because we usually think of methodologies and tools (processes, tools, languages) to be orthogonal, allowing us to shop around according to project needs or personal preferences.
But this is clearly not the case as the paper describes some paragraphs later:
Using the same concepts to align requirements analysis with software design and implementation makes perfect sense. For one thing, such an alignment reduces impedance mismatches between different development phases.
Moreover, such an alignment can lead to coherent toolsets and techniques for developing software (and it has!) as well, it can streamline the development process itself.
That’s an important point to take into account when you start a new project. Certain tools (and this includes languages) may require certain methodologies to reach full effectiveness.