1ooX Productivity Gains For Software Engineers: A brief sketch of my approach
Here is a sketch of “Software Development Process” that would bring about massive Productivity gains for Programmers.
Current approach:
Only “Infrastructure” Code is reusable across applications. The Programmer has to write the “Domain Specific” Code from scratch.
I will define specifications (Example: JavaEE specifications) so that programmers can write “Domain Specific” reusable (and modifiable) Components and others can glue those components together into Software.
Example:
Hadoop (Infrastructure Code) and Spring (Infrastructure Code) are reusable. But, In case of Hadoop, the programmer has to write the “Map” and “Reduce” functions (“Domain Specific Code”) from scratch.
I will write specifications – so that people can write “Domain Specific Reusable Open Source Components” and later reuse those Components to build Software.
In today’s terms, it means not having to write “Map” and “Reduce” (of Hadoop) from scratch, but reusing pre-written Components and gluing them together.
“Domain Specific Reusable Code” will be modifiable (to suit your need) by changing values in a separate file, just like today you can modify Hadoop through its Configuration files.
You will join those pieces (or Components) of “Domain Specific Code” together through a OSGi-like module layer.
One important perspective: In the above mentioned approach, do not think in terms of “Code”, rather think, as you would if you were playing with a LEGO set (modular pieces):
what “Modules” you have in your “Code” toolbox
how you would join those “Modules” or “Pieces” together.
I am expecting 100X or more productivity gains.
Other Articles related to Productivity gains for Programmers: