Wednesday May 30, 2007
My Dad, Broken Windows Theory and Software Development II
Dave Murphy has brought up a delicate, excruciatingly painful yet
important point. Time to market, executives' business commitments,
customer pressure also play a major role in the scheduling of
projects. As they should, but never at the cost of deteriorating
products and low quality.
Originally, I wanted to write the following in the comment section.
But then I realized that it was getting too long. I decided to use an
entry to answer.
Dave, my entry was directed at those executives as well. Compromising
on quality does not pay. Let me tell you a short story, which actually
describes the absolute worst year in my entire life (so far that is).
To be absolutely clear: this did not take place at Sun, this story is
from my ancient history. My manager committed that my team will
deliver a project in what seems in retrospect an absolutely impossible
schedule. As you say, I warned, yelled, screamed, cried - but all was
falling on deaf ears. I remember clearly, the day the project's
release was announced. We were shocked, knowing that it was nowhere
near being ready to ship. Features were incomplete, quality was not
even low - it was non existent, even the hardware still had some
issues. A few executives, of the kind you're talking about, with their
reputations (and actually jobs) on the line, launched the "mandatory 80
hour work week" program, no vacations were allowed. In fact, I
remember clearly - people had to submit for vacation, if they wanted
one of the weekend days off! Builds were spun almost daily, and
sometimes twice daily, dozens of testers were hired only to keep
finding the bugs already found by the other testers. Management
meetings were concluding sometimes after midnight. Intimidation was
everywhere.
Bottom line - the project was late - by about a year, it was
over-budget by who-know-how-many millions of dollars, reputations were
tarnished, people were having heart-attacks, and a few divorces were
recorded. It was a disaster. Disaster for the business as well as for
individuals. All the executives involved were either fired or
extracted. Scores of good people left the company.
This reminds me of a children's tale. A farmer once had a special
duck. That duck would lay one golden egg every day. The farmer became
rich, and greedy at the same time. He decided to kill the duck and get
all the eggs at one time. He slaughtered the duck, only to find an
empty stomach. The moral of the story is simple: if you ask for too
much - you get absolutely nothing. Projects, and schedules, must be
challenging, but realistic. Some people forget the realistic part.
The good news is that I have seen other executives as well. The kind
who fight tooth and nail to delay releases for the sake of quality.
The kind who would worry about the well being of their staff, the kind
who will actually succeed in delivery of solid products, who make their
customers delighted. My point stands: quality is not negotiable!
Posted at 08:03AM May 30, 2007 by Amiram Hayardeny in Personal | Comments[1]
Tuesday May 29, 2007
My Dad, Broken Windows Theory and Software Development
My father was born in Jerusalem, Israel in 1935. His native tongue, though, is French. Not only is he fluent in French, he was always flaunting the fact that he could easily recite poems, proverbs and plays, beginning to end, in French. He could recite the entire collection of the Fables of LaFontane. As you can imagine, my childhood was peppered with intriguing stories, with lessons at the end, in French. "Qui vole un oeuf vole un boeuf", my Dad used to say: "He, that steals an egg, will steal an ox".
"James Q. Wilson and George Kelling developed the `broken windows' thesis to explain the signaling function of neighborhood characteristics. This thesis suggests that the following sequence of events can be expected in deteriorating neighborhoods. Evidence of decay (accumulated trash, broken windows, deteriorated building exteriors) remains in the neighborhood for a reasonably long period of time. People who live and work in the area feel more vulnerable and begin to withdraw. They become less willing to intervene to maintain public order (for example, to attempt to break up groups of rowdy teens loitering on street corners) or to address physical signs of deterioration.
Sensing this, teens and other possible offenders become bolder and intensify their harassment and vandalism. Residents become yet more fearful and withdraw further from community involvement and upkeep. This atmosphere then attracts offenders from outside the area, who sense that it has become a vulnerable and less risky site for crime."
The "broken window" theory suggests that neighborhood order strategies such as those listed below help to deter and reduce crime.
Source: http://www.cityofseattle.net/police/prevention/Tips/broken_window.htm
You might be thinking now: what in the world is the connection between proverbs, the Broken Windows Theory and software development. Indeed, the connection may not be straightforward. Lets see if the following scenario is possible. A large group of developers are responsible for the development of a significant commercial software product. They are all hard working, smart, innovative, diligent. But like all other software developers, they do, in fact, introduce bugs to the product. Not intentionally of course. The question is not whether the bugs are there, the question is how these bugs get treated. Do they get fixed, tested, integrated and delivered? Or do they quietly age in the system until a really important customer experiences them? Do they get treated with respect? or are they ignored?
Let me rewrite the paragraph describing the Broken Windows Theory, using some more familiar words from the software development world: ..."This thesis suggests that the following sequence of events can be expected in deteriorating software products. Evidence of decay (large defect backlogs, no documentation, no code reviews) remains in the system for a reasonably long period of time. Quality oriented engineers who work on the project feel more vulnerable and begin to withdraw. They become less willing to intervene to maintain software quality for example, to attempt to enforce code reviews, or to address signs of deterioration..."
The "Broken Software" theory suggests that good software engineering strategies such as those listed below help to deter and increase quality.
"He, that steals an egg, will steal an ox", "Broken windows invite further deterioration", "Ignoring small bugs, invite bigger ones". When someone tells you to fix "seemingly unimportant bugs", insists on good documentation, holds back feature for the sake of better quality, remember the "Broken Windows" theory.
If you have ideas of how to increase software quality, please share them. You can use the link below to add a comment.
Posted at 08:08AM May 29, 2007 by Amiram Hayardeny in Personal | Comments[6]
Saturday May 26, 2007
Sweets and Crying Kids
Place: the exit of any amusement park, zoo, kids' museum, actually any
place where parents take their kids to have fun. Phenomenon: two
parents in front, with worried faces, in the back, a little girl, dragging her feet,
three balloons tied to her little hand, a corn on the cub in the same
hand. On the other hand, a drumstick, a large set of crayons and a
coloring book, and a few stuffed animals are dragging behind her, on
leashes. And yes, of course, she is crying and sobbing. Big tears
streaming down her cheeks. And she's mumbling: "I want to go on the
ferris wheel"...Rings a bell? Ever asked yourself how can that be? A
crying kid at the EXIT of a fun place? A crying kid loaded with food,
gifts and souvenirs? Almost inconceivable.
So how does this happen? If you have kids you would know the answer.
It's easy. You get up in the morning and the following thoughts go in
your head: I work hard, I don't pay enough attention to the kids, I
should try to be a better parent, I should do fun stuff with the kids.
Also, if we stay home, they will go crazy. And I don't want to have
them watch TV all day, it's anti-educational. How about - yes, there's
an amusement park somewhere, lets go be good parents, the kids will
have fun, plus they will get really tired, and maybe, finally, we will
have a couple of minutes to ourselves before we collapse...
So we hit the road, and get to the amusement park. It's really hot
outside, and we stand in line for the rides. And this is the point
where the singing begins: "I want this", "I want that". The park management
knows, understands, and caters to little children. They place the traps in
strategic areas around the park. Souvenirs, food, candy, pop-corn, stuffed animals,
balloons, cotton candy, ice-cream. You name it, they got it. And the kids play
along, they want everything, and the rides. And you, playing the
"Great Parent" role, take out your wallet and get this and that and the
other thing.
It's all great, until you get to the point where you either run out of
money, or out of patience, or both. And once you get there, there is
no turning back. You say "no" to the next thing. And then the crying
starts. There's no consolation. The child is absolutely positive that
she's been wronged, that a terrible injustice has been done. This is
the point where you see them, on the way to the parking lot. Hardly
carrying all the stuff, and crying like they play the lead role in a
Greek tragedy...


Posted at 03:00PM May 26, 2007 by Amiram Hayardeny in Personal | Comments[0]
Friday May 25, 2007
Observations - "The Tipping Point"
Finally, a few years late, I am reading "The Tipping Point"
(http://www.gladwell.com/tippingpoint/index.html). Even before
finishing the book, I can already tell that it's the best I have read
in this genre since "Freakonomics
(Freakonomics). I haven't even finished
reading the book, yet I already have a few observations. More will
come, I am sure of it. First and foremost, starting at about page two
of the book, I realized that I keep thinking about a person who played
a very significant role in my life. Every sentence, every idea
presented in the book, made me think of him even more. At a certain
point I realized: this person must have read this book too. I will
explain later.
The book, starts with trying to explain "social epidemics". How do
things spread like brushfires to be extremely successful. He uses two
examples throughout the first chapter (and a few more, but these two
are weaved into every idea the book presents). The two examples are
the Hush Puppies shoes, and the message Paul Revere delivered to
certain parts in Massachusetts in 1775. Hush Puppies brand of shoes
was on the verge of collapse. But a few people from
Greenwich Village in New York who started wearing them, made them a
huge success in the following years. Paul Revere, according to the
book, was so successful in delivering his warning to the colonists in
New England, that the author offers, not in as many words, that the US
won its independence due to his special skills. In short, the author
introduces types of people who take a critical role in the creation and
the success of a social epidemic: the Connectors, the Mavens, and the
Salesmen. For a social epidemic to succeed, it has to come from a
Maven - a person whose opinion is accepted with few or no questions,
pass through one Connector or more - a person who simply knows plenty
of people, and serves as a "social glue", and one or more salesmen - a
person who has a gift for selling stuff. There's more - the message
has to stick, but that goes beyond my point here...
I am sure that when this book was written, the author did not plan for
it to be a best seller. After all, Malcolm Gladwell did not write a
whole lot of other best sellers, or even books for that matter. So what made it a best seller? I
have a strange feeling that the way a book becomes a best seller, is
exactly like other phenomena described in "The Tipping Point". It
becomes a social epidemic, a word of mouth started by a Maven, spread
by connectors, and "sold" by salesmen. Needless to say, the contents
must be good for it to "stick". And it is. It's a pleasure to read,
it colors life in new vivid colors. It tags people with an interesting
tag. I have realized, reading this book, that I know quite a few
Mavens, Connectors and Salesmen. I also have had some reflections on
myself.
But as I said before, I gained an insight about one particular person,
whose name I shall not surrender. Although, people who know me, and my
whereabouts in the last decade, will easily make the connection and
hence know his identity. What if I told you that this person has read the
Tipping Point, and liked the characters, or the character types it
introduced. What if I told you that he made a list (mental or actual)
of characteristics owned by these characters, and tried to gain them,
and more importantly - display them. In retrospect, it was so
pathetically obvious, it is almost sad. A person who is not naturally
likable, does not generate a whole lot of original thought, and has
significant difficulties in presenting ideas, suddenly tries to pass as
a Connector, a Maven and a Salesman - all at the same time. Now, that
I am in the process of reading the book, I can clearly see it. If I
had seen this person again, I would say to him that he had great many
other traits, there is no need to try and pass for what he isn't.
Reading this book, I had another realization. When I was younger I
knew a person who really did not like to read. In fact, he hated to.
(Don't start guessing here that this is an autobiography, it isn't. I
used to be, and still am a book worm). One time he had to read a
book. It was a big book, which had a lot of history weaved
into a romantic novel. The name of the book was Exodus, by Leon Uris
(Exodus). But to
my great surprise, when I asked this guy a question or two about the
book, I have immediately realized that he didn't read the book, he
learned it. He memorized it. He knew the time line, the historic
events. There could not have been any joy in reading a novel for the
purpose of learning it. During the course of my life and career, I
have met many people who read books not because they like reading, or
they like the books. They read because they have to. They read
because it is the right thing to do. They read, because they live with
the wrong perception of what a Maven is. They associate with people,
they tell jokes, not because they like people, or drinking, or jokes.
They do it because they have the wrong perception of what a Connector
is. They try to come up with ideas, which are not original nor
interesting, and sell them to others, having the completely wrong
notion of what a Salesman is. The problem is simple. People don't
like to take advice from others pretending to be Mavens. They don't
like to hang out and tell jokes and drink with people who are obviously
doing it because there's a hidden benefit in it. People will not buy
something from an artificial, self proclaimed Salesman.
In our social structures, the senses that people have are amazing.
Give them two minutes, and they will be able to make you out for what
you really are. I seriously doubt if it can be staged at all, and if,
after all, it can be staged - it has to be done by people who chose
acting as their life career. The book is fascinating, read it. And
don't take it from me because I am not a Maven, nor a Connector, or a
Salesman. Take it from me because I love reading it, and so will you.
Posted at 09:01AM May 25, 2007 by Amiram Hayardeny in Personal | Comments[2]
Wednesday May 23, 2007
Happy Shavuot (Holiday of Weeks)
Today, May 23, Jews around the world celebrated the Holiday of Shavuot. This holiday is celebrated exactly 7 weeks after Passover (Shavuot). This holiday commemorates the receiving of the ten commandments by Moses in Jewish history (or mythology - you pick).
Belonging to a relatively small people, I frequently wondered how many
Jews are living today, and what is the meaning of this number. In
2004, the estimated number of Jewish people was 15 million (source:
http://www.infoplease.com/ipa/A0904108.html).
| Religion | Members | Percentage |
|---|---|---|
| Christianity | 2.1 billion | 33.0% |
| Islam | 1.3 billion | 20.1 |
| Hinduism | 851 million | 13.3 |
| Buddhism | 375 million | 5.9 |
| Sikhism | 25 million | 0.4 |
| Judaism | 15 million | 0.2% |
| Baha'ism | 7.5 million | 0.1 |
| Confucianism | 6.4 million | 0.1 |
| Jainism | 4.5 million | 0.1 |
| Shintoism | 2.8 million | 0.0 |
Posted at 07:56PM May 23, 2007 by Amiram Hayardeny in Personal | Comments[1]
Tuesday May 22, 2007
In the Presence of Greatness
I am not a humble person. Yet, this morning, I found myself sitting
(mostly) quietly, listening to Dr. Steve Chen. The following is an
excerpt from Dr. Chen's biography:
"Dr. Steve Chen took his doctoral degree under Professor David Kuck
at the University of Illinois at Urbana-Champaign. After his
graduation, he joined Cray Inc., rising to the post of Principal
Designer and Senior Vice President. Dr. Chen led the R&D effort on
the development of the Cray-XMP and YMP vector machines which was
widely used in the western world for research in defense,
aerospace and aeronautic engineering, automobile design, gas and
oil exploration, material science, meteorology, environmental
engineering, chemical engineering, pharmaceutical, biological
science and physics. Dr. Chen is well known in the world of
science and engineering as a "super star" in the field of super
computing.
In 1991, Dr. Chen and Professor David Tuck were nominated as members of the National Academy of Engineering by the National Science Advisor of the Nixon administration. Dr. Chen is also a Fellow of the American Academy of Arts and Sciences."
Need I say more? Only this: growing up in the industry, Cray was a legendary name. Super computers were spoken of with awe. I can't remember where it was, but I clearly remember seeing an old Cray super computer, one of the early ones, in a museum. I was standing there, appreciating the strange shape and color, reading about the incredible number of instructions that the strange looking machines can run in a second. Awesome. Strangely, it all came back to me today. And the feeling was, well, humility would describe it best.

Sin-Yaw Wang, our site VP, asked me to join him for the meeting with
Dr. Chen. There was no way I would miss it. The reason why we came to
see Dr. Chen was to make him an interesting proposition. To consider
Solaris for operating system in his projects. We, Sun, can offer Dr.
Chen the best, fastest, most reliable, scalable and secured OS on the
planet, along with first class assistance from our top Solaris
developers. But whatever the reason for this meeting was, I will
remember it for a long time. It was a privilege.
Posted at 09:05PM May 22, 2007 by Amiram Hayardeny in Personal | Comments[0]
Monday May 21, 2007
Paintings from Guy
I came home today, and my wife told me that there was a surprise in the play room. Guy, my four year old made a few exceptional drawings. I thought what you're thinking. I was expecting the usual: some lines and circles, nothing coherent. When I saw it, though, I knew it was special. Possible because this is my kid, but what's wrong with that? So here are Guy's dog, and fly (autographed). I thought it was special. Special enough to put it here...


Posted at 07:48PM May 21, 2007 by Amiram Hayardeny in Personal | Comments[1]
Solaris - The Better Linux
I had set up a demo session at Sun China Engineering and Research
Institute (ERI) in Beijing. I may have not mentioned it before, but my
job here at ERI is director of Solaris X86 Engineering. Anyway, my
manager,
Andy Roach, was visiting here with his staff, and we prepared a two
hour working lunch - demo session combination for him, his staff, and
anyone who was interested here at Sun ERI Beijing.
The results were outstanding. Not because it as well put together (it
was), and not because the presenters were exceptionally professional
(they were), and not because of the unusually delicious pizza (it
was). It was outstanding, at least in my mind, because I heard one of
the visitors say: "Solaris is the better Linux". And coming to think
about it, it certainly is.
What Solaris is doing for the last few years, and will continue for the
foreseeable future, is to emphasize its high-end features: performance,
reliability, stability, debuggability, security, virtualization and
many more enterprise type features, while collecting more and more
desktop and developer type features. We at ERI Beijing, are helping
Solaris' capabilities in the desktop area: USB, network (wired and
wireless), storage, audio and video, human interface devices etc. We
also help our IHVs and potential customers in verifying that their
hardware platforms and components are compatible with Solaris, and
directing them to the right places for the resources they need to make
Solaris work flawlessly on their platform of choice and environment of
operation.
The demo session had quite a few stations, in which the visitors could
see for themselves the new Solaris capabilities in the desktop area.
This is what we have presented:
Posted at 03:50PM May 21, 2007 by Amiram Hayardeny in Personal | Comments[1]
Saturday May 19, 2007
Tips for a Good Demo Session
For the first time since I started writing a blog, I have received a special request for a blog. I decided to rise up to the occasion. I am sure that you'll be able to find books and other materials on preparing a good demo session, The following is based solely on my experience.
If you are in software development you must have had to demonstrate the
results of your work, a prototype, the finished product. Is there a
way to make sure that a demo session is successful? The short answer
is no, there isn't. There are many variables, many of which are beyond
your control. Something may, and very possibly will, go wrong. Yet,
there are many variables that ARE well within your control. Make sure
these are well taken care of, and you give yourself a better chance of
success. No guarantee of course, but a better chance of success.
A short disclaimer: what I am describing is a venue for developers to
show what they are working to upper management. This does not cover
finished products or customers.
First and foremost, you have to define the goal of the demo. Over the
course of my career, I have seen demos done for initial funding,
continued funding, customer interest, executive updates, possibly other
reasons. You have to make sure that your goal is clear. Like anything
else, in order to accomplish your goals, you have to know them first.
In demos, a very strange dilemma comes to mind: if the product is ready
for prime time, it is probably too late for a demo already - it's ready
for marketing. If it's not ready at all, it may embarrass its
developers and damage their reputation. You have to take a risk here,
make sure it is a well calculated risk. Demo a product when it's ready
to be shown. Not a very clear statement - you have to use some
intuition.
State the business problem you are trying to solve. If you have no
business problem, then there's no need for your solution, is there?
Prepare user scenarios. The more real they are, the more convincing
your demo will be.
Choose your venue carefully. If you're showing multiple demos in the
same conference room, make sure that there's enough space between
them. Make sure that the lighting is right, and yes - the
temperature. Computers generate a lot of heat, if your audience is
uncomfortable, you risk people concentrating the temperature rather
than on what you're showing them. (This is correct for too cold as
well - but as for me personally, the heat bothers me more). Again, if
you're showing multiple projects, it is nice that each station has a
little "name tag", and possible a one page "brochure" describing the
technology.
You have to be ready to resume after failure, as if nothing happened.
As painful as it is, it is quite possible that something will crash.
It isn't the end of the world. Restart. People are ready to accept
failures during demos. Smile, admit that the this is not yet a
product, and resume. Remember the dilemma from before? What you're
showing is not ready for market, but it is ready for show. And yes,
make sure, ahead of time, that you have power, network, hardware and
software. Everything you need should be there ready to roll at most 30
minutes before the beginning of the "show". I usually do a dry-run
before a demo. It is helpful to test the scenarios, the presentations.
By the way, I found out that lunch helps a lot. Last time we ordered pizza, it worked like a charm. Hungry people are less receptive to new technologies...
A demo should be able to show to the audience what the product will be
able to do when it's ready. It is not supposed to do it yet, not
completely and certainly not perfectly.. Make sure it is stable enough
to show, prepare the environment, the presenters, prepare for the
unexpected: take care of your part of the equation. The rest will work
itself out.
Posted at 07:17PM May 19, 2007 by Amiram Hayardeny in Personal | Comments[2]
Thursday May 17, 2007
My Personal Abilene Paradox
Remember my entry “the Road to
Abilene” or “the Abilene Paradox”? It's a situation in which a
few people are engaged in an activity neither of them likes, or
actually hates, or is actually destructive, simply because everyone
thinks that the other one thinks it's the right thing to do. They
are either embarrassed, or simply can't tell the other people to stop
it. (http://www.abileneparadox.com/)
I already wrote that I have a regular
driver who drives me back and forth to work. The guy is absolutely
great. I love him. He's quiet, responsible, and definitely doesn't
take unnecessary risks. In Beijing, it's priceless. Anyway, he
usually puts on a radio station that I really like – “Music
Radio”, I believe it's 90.00 on the FM dial. I admit that it also
has a “beep” going on the full hours, which is great fro someone
who has a strange relationship with time, like yours truly. I am
completely comfortable with it, but to some people it is strange that
I have a few watches, and they are all precisely set to the second.
The driver takes his job very seriously. The car is always clean and
smells nice, inside and out. And the music is nice, gentle, a
perfect ride in the Beijing traffic.
And then the Devil gets involved, and
here's what happens. The driver buys a few CDs. American CDs. It's
a collection titles “Automobile Music”. And he puts it on, and I
make the mistake of humming to some really old Whitney Houston song.
And that's it. We are on the fourth day in a row of the same CD. I
can't stand it. I am going nuts.
But what do I do? Do I tell him? I am
positive that he will be insulted. If I were him, I would be too.
Do I just listen to it and shut my mouth? Not sure I can. If I hear
Stevie Wonder one more time, I will go berserk. Bring and iPod?
Work in the car?
So he probably hates this music, but
assumes that it is part of his job, and therefore tolerates it. I
hate it, but I can't say anything about it. Two grown, responsible
adults sitting in a car, listening to the same bad music forever.
What was the definition of hell?
Anyway, I am writing these words (in
the car, going home), listening to the last chords of the old classic
“When a Man Loves a Woman”. For the fifth time today. And then
to my great surprise, he just pushes a button and the song starts
again. That did it for me. I lost it. I was immediately stripped
of all my British manners and upbringing, I forgot my good nature and
the strong desire to not ever hurt anyone. I just told him to put
the radio on. I am sure he hates me now
Posted at 07:35PM May 17, 2007 by Amiram Hayardeny in Personal | Comments[4]
Today's Page Hits: 25
| www.flickr.com |