In the 60’s programmers had to write their programs and could not test them, they were sent to technician and processed.
The first widely used programming language was Fortran – released in 1957 for mathematical and scientific computing, then Cobol, in 1962 for business applications.
One of the most important transitions was to use a time-sharing model instead of batch processing, which was and industrial process.
And thus...
THE SOFTWARE CRISIS
Late
Over Budgeted
Low Quality
Even though software engineering changed the world, one fourth of software projects failed, so the crisis stayed throughout the 60’s, 70’s and in the 80’s..
In 1968 NATO organized a software conference that forked the discipline of Software Engineering (Up to that point hardware was the main focus).
There were 3 main problems to be addressed:
Eliminate Human Error
Apply math to programming & develop formal methods, this was very expensive. People assumed that if they did enough math they wouldn’t need tests.
Eliminate Internal Complexity
The source code of projects became really complex, BUT! Most complexity is essential complexity: Not complexity in the solution, but complexity in the problem.
Eliminate Project Variability
Eliminate the craftsmanship, and create an industry with something like assembly lines. This meant standardizing the design process, which was impossible because software is not a defined process, it involves context.
All of these attempts
FAILED...
So we found an alternative strategy:
Software as an empirical process
AGILE:
1. Observation
2. Hypothesis
3. Experiment
Soooo…
basically, the Scientific Method.
In the 70’s, modular pieces where introduced, which communicated via interfaces. Projects could be fragmented which became a key idea in systems thinking.
In the 80’s Object Oriented programming was introduced and they could be independent and hold specific states. This was the abstraction that allowed programmers to interact with something that Continue reading "The story behind software engineering." →