avatarMuad Arshad

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

4185

Abstract

e initial client requirement.</p><h1 id="be89">Who was Dr. Winston W. Royce?</h1><p id="7c94">In almost any introduction he is referred as a Computer Scientist, a former Director at Lockheed, and popularly known for the paper he published in 1970 on <b>“Managing the Development of Large Software Systems”</b></p><p id="af6d">This specific paper implies all the stages of waterfall development, and he admitted the fact, it will suffice the need of a small software product requirement, but will doubt the success of large software systems.</p><p id="1a59">He said, in the introduction to the paper,</p><p id="2f75" type="7">“I am going to describe my personal views about managing large software developments. I have had various assignments during the past nine years, mostly concerned with the development of software packages for spacecraft mission planning, commanding and post-flight analysis. In these assignments I have experienced different degrees of success with respect to arriving at an operational state, on-time, and within costs. I have become prejudiced by my experiences and I am going to relate some of these prejudices in this presentation.”</p><p id="25df">Stating the introduction as above, Dr. Winston took his eye on some of the leading issues in software development to his own eye, and proposed few insightful ideas.</p><p id="1848">He began giving an eye on small software development, citing two stages: <i>Analysis</i> and <i>Coding</i> would be sufficient to ramp up the complete development, but not large scale development projects.</p><p id="4737">In his paper, Dr. Winston categorizes development of large software systems to take place under seven stages:</p><ul><li>Systems requirements</li><li>Software requirements</li><li>Analysis</li><li>Program design</li><li>Coding</li><li>Testing, and</li><li>Operation</li></ul><figure id="a883"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*WoHzlqFKhSYQ2Vzwy2VvJw.png"><figcaption>Seven steps of development for large development systems / Source : Wikipedia</figcaption></figure><p id="0331">Though the above steps took the ideal shape for the development process of the time, he foresaw dire challenges development teams could face with its approach to solving problems.</p><p id="acd3">He further said in his paper,</p><p id="d2f9" type="7">“The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated code will not fix these kinds of difficulties. The required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated”</p><p id="3f25">His fix on the key concerns proposed five steps large software development projects should focus on:</p><p id="fa63">Step 1: PROGRAM DESIGN COMES FIRST</p><p id="c17e">Step 2: DOCUMENT THE DESIGN</p><p id="d67d">Step 3: DO IT TWICE</p><p id="ed8b">Step 4: PLAN, CONTROL AND MONITOR TESTING</p><p id="00ff">Step 5: INVOLVE THE CUSTOMER</p><p id="3de5"><i>In Step 1,</i></p><p id="6514">Dr. Winston firmly mentions the importance on the design of the product. Through the first step, the product design should be able to ensure a comprehensive preceding design is available before proceeding further with the analysis stage of the product development.</p><figure id="26a4"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*rm4K3JAjS2K5AnNnif4KGw.png"><figcaption>Source : <a href="http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D">http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D</a></figcaption></figure><p id

Options

="ed06"><i>In Step 2,</i></p><p id="d409">Unlike, Agile development, Dr. Winston promoted much importance on documentation. In fact, he worded it as,</p><p id="baa6" type="7">“At this point it is appropriate to raise the issue of — “how much documentation?” My own view is “quite a lot;” certainly more than most programmers, analysts, or program designers are willing to do if left to their own devices. The first rule of managing software development is ruthless enforcement of documentation requirements.”</p><p id="8e53">In this step, documents are given key focus, according Dr. Winston’s suggestions, six in number: <i>Software Requirements, Preliminary Design (SPEC), Interface Design, Final Design (AS-BUILT) Final Design (SPEC), Test Plan, Test Plan (SPEC) Test Results and Operating Instructions</i>.</p><figure id="3dea"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*Q5e9iBkGDY-NLsnyGl-uRA.png"><figcaption>Source : <a href="http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D">http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D</a></figcaption></figure><p id="b4d9"><i>In Step 3,</i></p><p id="00cd">The key objective in the third step is to capture an early stimulation of the end product.</p><p id="0c8b">This step promotes the concept of prototyping, without the use of the term. It promotes precision in finalizing the software product.</p><figure id="6392"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*oNLk_W2kJiMirahY9tP09A.png"><figcaption>Source : <a href="http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D">http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D</a></figcaption></figure><p id="8873"><i>In Step 4,</i></p><p id="a6ed">Dr. Winston identified the testing to be the phase that should utilize most of the resources in the development — be it human resources, computer resources or monetary.</p><p id="14b5">Handled by test specialists, he suggested this step should focus on few things such as: focusing every corner of analysis and the code to be subjected to a simple visual testing — which during later stages could be used for logic testing.</p><p id="6436">Finally, the product should be tested for “checkout” purposes, as Dr. Winston suggested in his paper.</p><p id="144d"><i>In Step 5,</i></p><p id="196d">The paper suggests the development team should care about the client inputs, and involve the customer to have his say on the product, before being formally handed over to the customer.</p><h2 id="4e56">The paper is so fascinating! — isn’t it?</h2><p id="d5d4">In a world where a rigid framework was in place for software development, Dr. Winston W. Royce published a paper off limits for his generation of software developers and teams.</p><p id="33a3">Though neither of terms <i>Waterfall</i>, nor <i>Agile</i> has been used throughout the paper, he has highlighted the importance of <i>iteration</i> — a key approach to modern agile practices, feedback from customer and thorough testing.</p><p id="988b">Though the paper is from an age where Waterfall development itself was <i>non-existent, </i>he had written a paper to grasp true sense on both Agile and Waterfall development — H<i>ave your say!</i></p><h2 id="cc51">About Author:</h2><p id="0a30">I am an Associate Business Analyst keeping baby-steps to pursue a career as a writer, all the while learning the basics and advanced techniques in writing — one day to achieve my dream.</p><p id="e5a6">My medium handle is <a href="https://muadarshad.medium.com/">Muad Arshad</a> where you can find out articles I have written on random topics, life experiences and tech-based roles! — <i>whoops</i></p><p id="6b8c">Reach me on twitter through <a href="https://twitter.com/muad_0911">@muad_0911</a> and on LinkedIn through <a href="https://www.linkedin.com/in/muad-arshad/">Muad Arshad</a>!</p><h1 id="4252">Happy Read!</h1></article></body>

Agile had a beginning you didn’t know about! — Or, did it?

A story that had gone unheard….

Wait, What?

It is a popular fact, between 11th and 13th of February 2001, 17 enthusiasts met in Utah to relax, talk, to eat, but with a greater motive of trying to find commonplace in software development, resulted in the official introduction of “Agile Software Development Manifesto”.

Representatives of Extreme Programming, Feature Driven Development, SCRUM, and many who wanted to pact on a optimized, heavy developer-driven methodology were present.

Photo by Austin Distel on Unsplash

Since it would be little off to find a count of software development moguls to be present in a single convention, the meeting ended with the conclusion of the single-truth of Agile development — a Manifesto for Agile Software Development — this was signed-off by all participants at the meeting.

Story from the convention in 2001 onwards is History!

Currently, Agile Methodology is used in every corner of the world in Software Development.

To be precise, according to betanews, 97% of tech companies have been following or trying out promoting Agile development, by 2019.

Also Agile introduces itself with a popular statement,

“Easy to follow, difficult to master”

The adaptability is increasing of the Agile Methodology, and almost every time Agile Practices are taught, the history is dragged to not earlier than the early 2000's.

But, was 2001 was the actual birth year of the Agile Methodology?

Just as it makes sense, for a group of people to organize a convention, to initiate the Agile Software Development Manifesto, a persistent issue was visibly growing for quite a number of years — even decades.

The seventeen tech enthusiasts made it evident it was the high-time a solution should be in place for flames in the field of software development to douse away.

But, was it actually the “great beginning”?

You guessed right — There were several people who proposed similar solutions before.

On the hind side, the proposed insights had considerable problems to overlook — or worse, some did not take it up for a discussion and restricted their thoughts and insights to be left as a draft on a paper.

Though it is hard to find reliable sources whether representatives of the Agile Alliance purely derived the Agile Software Development Manifesto based on experiences, but chances are, they have referred a count of papers from earlier days of Software Development.

Out of those who had made a sound impact on the issues faced by software development teams to successfully complete a product in the late 20th century is Dr. Winston W. Royce.

How did software development take place back in the day?

It is noteworthy, software development was not as popular in the mid and late 20th century, as it is now.

Development teams and managers were hooked up with the practice of the Waterfall method as a norm, but, what is humorous is the fact, Waterfall is not as how it is termed today.

In fact, Waterfall was not identified as a firm software development framework.

They would get the length of requirements, complete product development and deliver the product to the client.

In lament terms, the practice was a sequential phased development that required to get the product done based on the initial client requirement.

Who was Dr. Winston W. Royce?

In almost any introduction he is referred as a Computer Scientist, a former Director at Lockheed, and popularly known for the paper he published in 1970 on “Managing the Development of Large Software Systems”

This specific paper implies all the stages of waterfall development, and he admitted the fact, it will suffice the need of a small software product requirement, but will doubt the success of large software systems.

He said, in the introduction to the paper,

“I am going to describe my personal views about managing large software developments. I have had various assignments during the past nine years, mostly concerned with the development of software packages for spacecraft mission planning, commanding and post-flight analysis. In these assignments I have experienced different degrees of success with respect to arriving at an operational state, on-time, and within costs. I have become prejudiced by my experiences and I am going to relate some of these prejudices in this presentation.”

Stating the introduction as above, Dr. Winston took his eye on some of the leading issues in software development to his own eye, and proposed few insightful ideas.

He began giving an eye on small software development, citing two stages: Analysis and Coding would be sufficient to ramp up the complete development, but not large scale development projects.

In his paper, Dr. Winston categorizes development of large software systems to take place under seven stages:

  • Systems requirements
  • Software requirements
  • Analysis
  • Program design
  • Coding
  • Testing, and
  • Operation
Seven steps of development for large development systems / Source : Wikipedia

Though the above steps took the ideal shape for the development process of the time, he foresaw dire challenges development teams could face with its approach to solving problems.

He further said in his paper,

“The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated code will not fix these kinds of difficulties. The required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated”

His fix on the key concerns proposed five steps large software development projects should focus on:

Step 1: PROGRAM DESIGN COMES FIRST

Step 2: DOCUMENT THE DESIGN

Step 3: DO IT TWICE

Step 4: PLAN, CONTROL AND MONITOR TESTING

Step 5: INVOLVE THE CUSTOMER

In Step 1,

Dr. Winston firmly mentions the importance on the design of the product. Through the first step, the product design should be able to ensure a comprehensive preceding design is available before proceeding further with the analysis stage of the product development.

Source : http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D

In Step 2,

Unlike, Agile development, Dr. Winston promoted much importance on documentation. In fact, he worded it as,

“At this point it is appropriate to raise the issue of — “how much documentation?” My own view is “quite a lot;” certainly more than most programmers, analysts, or program designers are willing to do if left to their own devices. The first rule of managing software development is ruthless enforcement of documentation requirements.”

In this step, documents are given key focus, according Dr. Winston’s suggestions, six in number: Software Requirements, Preliminary Design (SPEC), Interface Design, Final Design (AS-BUILT) Final Design (SPEC), Test Plan, Test Plan (SPEC) Test Results and Operating Instructions.

Source : http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D

In Step 3,

The key objective in the third step is to capture an early stimulation of the end product.

This step promotes the concept of prototyping, without the use of the term. It promotes precision in finalizing the software product.

Source : http://static1.1.sqspcdn.com/static/f/447037/6486244/1270928531727/waterfall+royce.pdf?token=kd1J6QLfh%2FfPIBEQARc6%2FqCiZ10%3D

In Step 4,

Dr. Winston identified the testing to be the phase that should utilize most of the resources in the development — be it human resources, computer resources or monetary.

Handled by test specialists, he suggested this step should focus on few things such as: focusing every corner of analysis and the code to be subjected to a simple visual testing — which during later stages could be used for logic testing.

Finally, the product should be tested for “checkout” purposes, as Dr. Winston suggested in his paper.

In Step 5,

The paper suggests the development team should care about the client inputs, and involve the customer to have his say on the product, before being formally handed over to the customer.

The paper is so fascinating! — isn’t it?

In a world where a rigid framework was in place for software development, Dr. Winston W. Royce published a paper off limits for his generation of software developers and teams.

Though neither of terms Waterfall, nor Agile has been used throughout the paper, he has highlighted the importance of iteration — a key approach to modern agile practices, feedback from customer and thorough testing.

Though the paper is from an age where Waterfall development itself was non-existent, he had written a paper to grasp true sense on both Agile and Waterfall development — Have your say!

About Author:

I am an Associate Business Analyst keeping baby-steps to pursue a career as a writer, all the while learning the basics and advanced techniques in writing — one day to achieve my dream.

My medium handle is Muad Arshad where you can find out articles I have written on random topics, life experiences and tech-based roles! — whoops

Reach me on twitter through @muad_0911 and on LinkedIn through Muad Arshad!

Happy Read!

Software Development
Agile Development
Computer Science
History
Waterfall Methodologies
Recommended from ReadMedium