Enroll into QATUTOR Video Course on 

The Big Picture Of The Cycle

Lecture 4 - The Software Development Life Cycle -> Quick Intro -> Idea -> Product Design -> Coding: Part 1 -> Coding: Part 2 -> Testing And Bug Fixes -> Release -> Maintenance -> The Big Picture Of The Cycle -> Lecture Recap

Let’s use the The Simpsons family for our example. For our episode we need:

– Mother – Marge Simpson (PM);

– Son – Bart Simpson (programmer, tester, and release engineer);

– Father – Homer Simpson (user);

Idea: Marge says to Bart, “Your father will be happy if you’ll build him a house just like this one in the picture as a gift for Father’s day.”

arrow

Product Design: Then Marge shows Bart an old photograph of Homer when he was five years old standing in front of his modest yet warm and loving house in Springfield.

arrow

Coding: After his usual procrastination, Bart looks at the photo and starts to assemble Lego pieces to build a similar looking house.

arrow

Testing and bug fixes: When the house is ready, Bart starts to kick it, throw it against the walls of the Flanders house, insert/retrieve food into/from inside the house, and do other things that Homer would probably do. Each problem is fixed as soon as it’s discovered.

arrow

Release: When everything looks fine with the house, Bart gives it to Homer.

arrow

Maintenance: Homer immediately tries to open a bottle of beer, and not being able to do this essential task, he asks Bart to fix the problem (call to the customer support team), which Bart does by gluing a bottle opener to the roof of the house (patch release for EFR).

Now, back to sharelane.com. First, let’s recall our knowledge about players, their roles, and the stages in which they participate (note that the activities for Maintenance can be performed at any stage).

Player
Role
Stage

Marketing dude

Generate ideas and create MRD

Idea

Product Manager

(PM)

Create spec

Product Design

Developer

Translate instructions from spec into software code

Coding

Fix bugs

Coding

Testing and bug fixes

Tester

Prepare test cases

Coding

Execute test cases

Testing and bug fixes

Release Engineer

Push release

Release

1. Let’s start at the historic meeting at the bar when the idea of v. 1.0 was conceived:

bar

2. After we get an idea we have to develop a way to implement that idea; hence, we need a product design for v. 1.0. The product design is made by the PM.

At the same time,

– the marketing dude generates ideas for v. 2.0.

bar2

3. After the product design for v. 1.0 is finished, we are at the next stage of the Cycle (“Coding“) where the developer writes code for v. 1.0.

At the same time,

– the tester writes test cases for v. 1.0

– the PM creates specs for v. 2.0 features

– the marketing dude generates ideas for v. 3.0

bar3

4. After the developer is finished with his code for v. 1.0, it’s time for the testers to execute the test cases which have been written for v. 1.0 during the “Coding” stage. Now we are at the “Testing and bug fixes” stage of v. 1.0.

At the same time,

– the programmer writes code for v. 2.0

– the PM writes spec for v. 3.0

– the marketing dude generates ideas for v. 4.0

When the Testing and bug fixes stage is over, we have a major release of v. 1.0. Once v. 1.0 is pushed to production, the testers jump on the “Coding” stage of the Cycle for v. 2.0 and start writing test cases for v. 2.0

bar4

We have just looked at the Software Development Life Cycle for a major release version 1.0 of sharelane.com. After that, all is by analogy.

Now, let’s look at the big picture:

bar5

BTW

The Big Picture is just a model; in real life (especially in the start-up environment) everything is not so smooth and structured. For example, during the idea stage of v. 2.0, the marketing dude can generate ideas for both short-term (v. 2.0) and long-term (v. 4.0) projects.

The main points to understand are:

– the concept of the Cycle

who does what during each stage of the Cycle

– the concept that several Cycles can coexist. For example, in March we have activities for four Cycles where the coming major release is 1.0. Next ->

Lecture 4 - The Software Development Life Cycle -> Quick Intro -> Idea -> Product Design -> Coding: Part 1 -> Coding: Part 2 -> Testing And Bug Fixes -> Release -> Maintenance -> The Big Picture Of The Cycle -> Lecture Recap