History and Improvement of Software Development

Normally we use our electronic devices every single day of our lives. We use our mobile applications, play with our computers or even argue about the new technology. But, have you ever think about the past? How did people live without a smartphone? Or what we did to evolve from nothing  to today’s technology?

9112c7ca9db8cc1d95be4a2213ecffb6

A little bit of history…

There was a time were programs were only instructions to manipulate physical devices, but today software is everything to the world. Basically, without the software, our devices are obsolete.

Late in the 50’s and 60’s, programmers didn’t interact directly with computers. For making mathematical operations they delivered their programs to a technician, which returned the results some hours later. Here is where programming languages started. The FORTRAN (by IBM) and the COBOL (by the US Department of Defense) were the first programming languages used for engineering and business applications; but their effectiveness was not the best, normally they took a long time to give results, leading to loss of time and budget. This started the “Software Crisis”!!

historyoftest

But fortunately, in 1968 a conference (NATO) took place to find a solution to these problems.Here, the term Software Engineering was created. Their solution was to use practices of traditional engineering applied to software. More about Software Engineering

applemacAfter this, the BOOM of software development started. The 70’s saw the growth of interfaces, that allows the developer to break the project into pieces. Then the 80’s gave birth to the famous “object-oriented programming”, that changed the way a user interact with the computer, by the Graphical user interface (GUI); now the device was more
friendly and easy to use.

But there were also bad things. Apparently the improvement on the hardware led to more software developers?, but bad code writing?.

What…Bad Coding?!

Yes! Bad code

i-will-not-write-any-more-bad-code
627x627-sftwaredev-feature-huss
software-development-banner
the mayor problem those days. It’s true that programming is complex, but the complexity is not in making the program; the complexity is in understanding and solving the problem that needs the program. That’s why the code was so bad…

i-will-not-write-any-more-bad-code

 

627x627-sftwaredev-feature-huss

Thankfully the Software Development Life Cycle (SDLC) helps to improve our abilities to solve and understand the problems.
This procedure aims to produce high quality software that will satisfy the expectations and necessities of the clients.
It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. In few words it helps to improve the quality of the software.

But there’s more…

There are Software Development Processes that help to plan and manage better the software-development-bannersoftware that is going to be developed. Usually, industries use them to develop and
maintain an application. Each process has its own methodology; and each new process
pretends to be better than the old ones.

The most famous processes are:

  • Waterfall
  • Prototyping
  • Incremental
  • Spiral
  • Agile

Agile vs Waterfall

There are big differences between these methodologies, but at the end developers use both daily. Usually there’s no preference for one or another, you just do what you have to do…

At the end…

We end up with a piece of software that give us some kind of satisfaction when we use it. That is what software has become, a part of our lives that days before wasn’t even planned like that. People change, technology change and we keep updating our world just to improve our lifestyle.

 

 

Resources:

https://www.versionone.com/agile-101/

http://www.tutorialspoint.com/sdlc/sdlc_overview.htm

https://www.vikingcodeschool.com/software-engineering-basics/a-brief-history-of-software-engineering