Tuesday, July 25, 2006

Agile 2006: Another Perspective/Story

On a beautiful Friday morning when I drove to this Agile 2006 conference in extreme corner of Bangalore,I imagined beautiful Bangalore without those traffic problems. Here are my experiences for sharing:

An eye opener!
A wonderful story, that put forth a platform for many more stories!
A product development seminar : A story teller's way!
Reminds about Stefan Covey's habit "WIN WIN" & Cirle of Influence !
A paradigm shift in minds of people struggling to achieve common goal!
Hard to believe the statistics: Only 7% of the features are ALWAYS used by our customers !
Is the Agile story also true for the hardware products or any other products per se?
What is innovation and design? Can it be remembered as 1-2-3-4 !
A russian vodka in extreme cold and a french champagne when accompained with extremely beautiful!
Very Situational! :)
During the conference I was busy collecting as much as information and later decided to combine thebits and pieces to make a story which goes like this here.
Agile - The dictionary meaning!

Pronunciation: 'a-j&l, -"jIlFunction: adjectiveEtymology: Middle French, from Latin agilis, from agere to drive, act -- more at AGENT1 : marked by ready ability to move with quick easy grace2 : having a quick resourceful and adaptable character - ag·ile·ly /-j&(l)-lE, -"jI(l)-lE/ adverb

Let me introduce to you few people who had a high level of influnce on my thinking those 2 days:
Craig Larman [keynote speaker, cheerful, listening hindi songs, didn't had lyrics for them, speak tuti-fruity hindi]
http://www.craiglarman.com/Steve Messenger [keynote speaker, tall personality, old and experienced rum]
http://www.dsdm.org/Paul Hammant [very practical, can answer in yes and no and then explain, XP guy, die hard fan of agile ]
http://www.paulhammant.com/Henry Jacob [indian malai kofta wrapped in western name, innovation in mind, runs a blog]
http://www.henryjacob.com/

Here goes some of the stories talked about in the conference
Sitting in uncomfortable chairs?How many of us would still like to sit on our old uncomfortable chairs? NONE I believe !! Do we also
apply the same for the product we work on? I think YES. Our search to optimize the process, quality,
scope, budget continues endlessly. Bloodletting verses the mordern way of treating a diseased person! This indeed was the way of curing diseased people in medival times. They even had Level 1-4like today's CMMI levels :). None of us now believe in that anymore? This was possible withexistance of empirical evidences and a revolution in medical history. Are we still developing
product the old way? How is our interaction with our mordern customer influence their product?
Agile: iterative way !! What is Agile? (Later)!
Bloodletting was apopular medical practice from antiquity up to the late 19th century, involving
the withdrawal of often considerable quantities of blood from a patient in the hopeful belief that
this would cure or prevent a great many illnesses and diseases. http://en.wikipedia.org/wiki/Bloodletting Earth is not the centre of universe.Confirmed with empirical evidences. Acceptance to others also have to pass the samilar tests. http://en.wikipedia.org/wiki/Ptolemaic_systemPig and Chicken Story: How committed are you to customers?A chicken and a pig went for a walk around the farm. As they passed the farmers window they noticed awonderful breakfast prepared for the farmer and his wife sitting on the breakfast table. As they peekedcloser they noticed ham and eggs on the plates. The pig and chicken were silent for a moment as theytook in the impact of what they saw. Finally, looking at the eggs and prideful of her contribution, the chickensaid, "now that was a sacrifice!" The pig looked at the ham on the plate and finally turned to the chickenand said, "Yes, for you it is a sacrifice. But for us it is total commitment!"Story of stock market product design.Imagine designing a software for a stock market company. MyStocks section should show theonline customer stocks to SELL and BUY. A simple design. But when you peep into what bringsmoney for the company. It's the number of transaction of BUY and SELL done by customer.So how do you think a group of people working in MNC's would make those transaction duringthe working hours, fearing management might catch them doing?And how do the group of people most of the time away from computer can achieve this?That's when the solution for Alerts on computers and mobiles were designed. :)Indian Farmers: Innovation is to *speed up* few things.3 decades back it would take a week to plough a piece of land, whereas today it can be done in hours.Washing Machine: Innovation is to *eliminate* somethings.With automatic washing machine we eliminate the long involvement of people throughout the washingof clothes.Bringing the *WAH factor*.When did you see any product last time and felt like saying "WAH"? That's WAH factor.Story of Mouse.What do you think is the most significant innovation in computer. Will you believe it to be mouse?It is because that made it possible for computers to reach comman man. Circle of Innovation
Below figure shows the places the product visits during it's lifetime. It also relates to Circle of Influence by
Stevan Covey. Code has and can influence few people and the software has influence of many more
people. It is very interesting to know how it is going to influence life. Keeping that in mind quite early
is the key.
Interesting Book by Alan Cooper on how software products affect life: The Inmates Are Running the Asylum
: Why High Tech Products Drive Us Crazy and How To Restore The Sanity.

Fig. Copy from http://www.designdrivendevelopment.org/docs/D3Introduction.pdf
What is Gamda? (Not very sure about how it is spelled). How is it similar to situation during Surgery?
It is Japanese word for real place of work. There are no boundaries there. No cubicle walls. Very strange!! It could
only be possible when we work for a solution the way we play together. This open another perspective about
how the surgeries are done? No doctor examines/fixes patients in their cubicles.

Here are some of the buzzwords talked about in the conference.

Waterfall
Some of the later studies suggest the failure of this traditional method and demands more interaction with
customer. A ambassador from customer needs to be always in contact with development team.

The waterfall model is a software development model (a process for the creation of software) in which
development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis,
design, implementation, testing (validation), integration, and maintenance. The term was introduced in 1970 by
W. W. Royce; ironically, Royce himself advocated an iterative approach to software development. Royce
originally proposed what is now known as the waterfall model as an example of a system that he argued
"is risky and invites failure" http://en.wikipedia.org/wiki/Waterfall_model


Agile (The Revolution for developing product , Iterative way)
Most agile methods attempt to minimize risk by developing software in short timeboxes, called iterations,
which typically last one to four weeks. Each iteration is like a miniature software project of its own, and
includes all of the tasks necessary to release the mini-increment of new functionality: planning,
requirements analysis, design, coding, testing, and documentation. While an iteration may not add enough
functionality to warrant releasing the product, an agile software project intends to be capable of releasing
new software at the end of every iteration. At the end of each iteration, the team reevaluates project priorities.
Agile methods emphasize realtime communication, preferably face-to-face, over written documents. Most
agile teams are located in a bullpen and include all the people necessary to finish software. At a minimum,
this includes programmers and their "customers." (Customers are the people who define the product. They
may be product managers, business analysts, or actual customers.) The bullpen may also include testers,
interaction designers, technical writers, and managers. http://en.wikipedia.org/wiki/Agile_software_development

An iteration could be small as a day(s) or week(s).

Paradigm shift (Change is not accepted easily. What is paradigm shift?)
Paradigm shift is the term first used by Thomas Kuhn in his 1962 book The Structure of Scientific Revolutions
to describe the process and result of a change in basic assumptions within the ruling theory of science.
Don Tapscott was the first to use the term to describe information technology and business in his book of the
same title. It has since become widely applied to many other realms of human experience as well.
http://en.wikipedia.org/wiki/Paradigm_shift


Empirical Evidences What is it and why it is required to facilitate paradigm shift?
Empirical research is any research that bases its findings on direct or indirect observation as its test of reality.
Such research may also be conducted according to hypothetico-deductive procedures, such as those developed
from the work of R. A. Fisher. http://en.wikipedia.org/wiki/Empirical_research

Die or Retire
Resistant to change leave only two options behind "Die or Re t ire". What is your preference?

DSDM (Organisation and Philoshophy) Cousin of Agile methods.
The DSDM (Dynamic Systems Development Method) is a method that provides a framework for
Rapid Application Development (RAD), supported by its continuous user involvement in an
iterative development and incremental approach which is responsive to changing requirements, in order to
develop a system that meets the business needs on time and on budget. It is one of a number of Agile methods
for developing software and forms part of the Agile Alliance. http://en.wikipedia.org/wiki/DSDM

Fixed bid projects
Where the cost scope time of the project is fixed. Definitely not a WIN-WIN situation! Chicken and Pig story?

X-treme programming Do you think you can paint a picture of next generation office in first draft?
Way to work with the modern customers who can't paint the picture well in first draft.

Extreme Programming (XP) is a software engineering methodology for the development of software
projects. It prescribes a set of day-to-day practices for developers and managers; the practices are
meant to embody and encourage particular values. Proponents believe that the exercise of these practices,
which are software engineering best practices taken to "extreme" levels, leads to a development process
with the qualities prized by Agile Manifesto signatories. This makes Extreme Programming the most
prominent of several agile software development methodologies used to create software. Agile methodologies
prioritize adaptability to changing requirements over the project predictability valued by more traditional
methodologies. Some elements of the Extreme Programming methodology are controversial.
http://en.wikipedia.org/wiki/Extreme_programming

It is also four eye principle and also facilitate the high interaction and feedback and highly iterative
process. The customer needs to be handled as the buddy and vice-versa.

Refactoring Did you clean your paper rack today! You might not find where the nice note you kept
among pile of dirty papers.

Refactoring is the process of rewriting a computer program or other material to improve its structure or
readability, while explicitly keeping its meaning or behavior. http://en.wikipedia.org/wiki/Refactoring

Here are some of the research quoted in the conference.

Dr. Winston W Royce.
Gave first person to invent about the Waterfall model (but it was his personal view that time ).

Frederick P Brooks Jr.
Chairman Defence science board Task force on Military Software failure investigation 1987,
I found the later report of 2000 which says the same thing. Page 11 talks about iterative design and developement.
http://www.acq.osd.mil/dsb/reports/defensesoftware.pdf
The Mythical Man-Month: Essays on Software Engineering is a book on software project management
by Fred Brooks, whose central theme is that "Adding manpower to a late software project makes it later.
" This idea is known as Brooks' law, and is presented along with the second-system effect and advocacy
of prototyping. The work was first published in 1975, and republished as an anniversary edition in 1995
(ISBN 0201835959) with the essay No Silver Bullet and commentary by the author.

B Randell and FW Zurcher.
"Iterative Mulltilevel modeling a methodology for computer system design" - IEEE

Harlan Mills.

Johnson Usage of features by customers.
Never (45%), Always (7%), Often (13%), Sometimes (16%), Rarely (18%).
You need to have a ambassador user to tell you time to time verify the next generation office picture he is
keeping in his mind.

Mac Cormack

Standish (study on 23000 projects).
2 of 5 success factor were (Frequent user involvement, Smaller milestone). Both are Agile methodologies.
http://www.standishgroup.com/sample_research/PDFpages/chaos1999.pdf

Shine

Some of the books suggested in the conference and some links i found.

Agile and Iterative Development : A manager's guide.
Applying UML and Patterms
Freaknomics.
Funky Business.
http://www.standishgroup.com/sample_research/PDFpages/chaos1999.pdf
http://www.acq.osd.mil/dsb/reports/defensesoftware.pdf
http://www.cio.com/archive/070101/secret.html
The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How To Restore
The Sanity.

Games played during the conference to learn some techniques:

Xtreme Programming Game with Lego kits
Game of Innovation: http://henrydjacob.typepad.com/home/files/slides/D3DesignByGames.pdf
This paper is about the 1-2-3-4 steps for innovation.

WIN-WIN

Adopting Agile methods and working closing with our customers all the time build a WIN-WIN
situation. Mordern world customers are not very clear about the products they want. It is only
when there is something working and solving there problem their vision starts getting clearer . Now
these customers starts demanding more. Not their fault. Something has struck their mind.
Few things need to be removed from the product and many more need to be added as well.
How closely we work with our customer, can it be determined early enough?

Since this might leave you with another perspective about me or Agile.
You play Niel Bohr as kid. :) I play 9 - 2 -11 before you catch me. :))
Neil Bohr as kid
http://www.cyd.liu.se/~kamva881/blogs/musings/2005/01/height_of_a_skyscraper.html

No comments: