Wednesday, January 15, 2014

The Antibiotics of Software Engineering - Agile Testing


Surgery is not a recent invention, it dates back millennia. 

Notable Milestones in Surgical History (http://surgery.about.com/od/surgeryinthemedia/a/HistoryOfSurgeryTimeline.htm)

6,500 B.C.E. - Skulls found in France show signs of a rudimentary surgery called trepanation, which involves drilling a hole in the skull.
1540 C.E. - English barbers and surgeons unite to form The United Barber-Surgeons Company. These barber-surgeons performed tooth extractions and blood letting. Physicians were considered an entirely different profession, treating illness with medications.
1818 - First transfusion of human blood.
1843 - First hysterectomy performed, in England.
1843 - First use of ether.
1867 - British surgeon Joseph Lister publishes Antiseptic Principle in the Practice of Surgery, extolling the virtues of cleanliness in surgery. The mortality rate for surgical patients immediately falls.
1885 - First successful appendectomy performed, in Iowa.
1890s - Widespread use of chemical agents to minimize germs. Carbolic acid was put on incisions to minimize germs and decrease infection rates.
1896 - First successful heart surgery performed, in Germany. Surgeons repaired a stab wound in the muscle of the right ventricle.
1905 - First successful cornea transplant.
1917 - First documented plastic surgery performed, on a burned English sailor.
1928 - Antibiotics discovered.

Even if the procedure was successful, often the patient suffered and usually died of subsequent infections. 
Also, not to ignore is the discovery of Ingnaz Semmelweis, a physician at a Vienna hospital. While working at a Vienna hospital in 1847 he discovered that far more women died after childbirth by the so called childbed fever in the medical ward then in the midwifes ward. Semmelweis postulated the presence and spreading of germs causing the illness by doctors. Even though, after applying a chlorine and lemon based hand-wash solution the death rate could be reduced from ~35% to 1%, he was being labeled a heretic by the doctors. Ignaz Semmelweis was ignored until Louis Pasteur confirmed the germ theory.

Now, after it was accepted that germs caused infections and that hygiene was mandatory for good outcomes it became also obvious that there was a need to have a treatment once an infection set in. As listed above, on September 3rd  in 1928 Alexendar Flemming discovered the antibiotic effect of Penecillin and transformed medicine as we know it. Nowadays, antibiotics are used to treat all kinds of infections and antibiotics are prescribed in a preventive manner for many medical procedures. 

In software development we are able to develop rather fast and make significant changes to existing systems quickly. However, after these procedures the system often falls sick, suffering from bugs, side-effects and other ailments. I like to consider these as infections. Those infections even arise after well planned and executed engineering efforts.
The fundamental question is, how can we cope with them or even better avoid them - what is the the antibiotic equivalent in programming?
For me, the answer is: Agile Testing

Agile Testing is the process to validate that new functionality performs correctly and more importantly to verify that the existing behavior has not changed - that no infection has set in.

1. We have proof that the current system is healthy before the procedure starts
2. We are able to monitor the systems health during the procedure
3. We can intervene the moment side effects set in
4. We have proof that the procedure was successful 

A well done Agile Testing strategy is the equivalent to clean medical equipment and antibiotics. 

9 comments:

Ashok Guduru said...

Sushruta was the first Indian surgeon of 600 century BC: Wiki (
http://en.wikipedia.org/wiki/Sushruta_Samhita)

Ashok Guduru said...

I liked the article and the analogy. Very nice.

Ashok Guduru said...

I came to know about this article from TW blogs site but it is pointing to something else!

Mark Pearson said...

To manage the risk successfully one should have scum in their projects .With high competition, companies have to develop products fast and innovatively always adding value and greater customer satisfaction. In Scrum, it is important to learn agile through one of the Agile Training Providers and practice its basic principles which collectively and naturally help in effective management of risk. As a project manager i follow SBOK guide of scrumstudy.com

Alan Abraham said...

Acetech software development company is one of the leading software company India.

Alan Abraham said...

software development company is one of the leading software company India.

Wright Williams said...

More and more companies are trying to get nimble to enable them to respond to change with agility. Over the years, there has been a clear shift in momentum about the ways how companies manage projects. So, the project manager should be a PMP certified, who can better handle the planning, execution, and closing of any project. To get yourself prepared for PMP Certification, http://www.pmstudy.com is the best source.

Olivia Jennifer said...

It will definitely ease your work of handling a big project. As a project manager I use scrum in my projects. One of my friends referred me to use the Guide to Scrum Body of Knowledge by http://www.scrumstudy.com. I like the concepts of sprints, daily standup meetings, etc. the SBOK Helped me alot in Understanding how Agile Project Management works.

Alexia Marthoon said...

Hi , I am pondering over attending any PMP prep course / PMP classes to get PMP credentials. What are your thoughts? Would that be worth the money spent professionally?