Discussion:
[AM] ANN: Mashing Deadly Myths
Scott Ambler
2004-02-23 19:34:10 UTC
Permalink
In Mashing Deadly Myths (Software Development March 2004,
http://www.sdmagazine.com/documents/s=9058/sdm0403l/sdm0403l.html)
I describe how one of the most interesting aspects of the IT community is
our ability to deceive ourselves. I explore the seven of the most common
myths that IT professionals appear to suffer from and offer some advice on
how to address them.

The article should be of interest to anyone trying to bring agile
techniques into their orgs.

- Scott


====================================================
Scott W. Ambler
Senior Consultant, Ronin International, Inc.
www.ronin-intl.com/company/scottAmbler.html

www.agiledata.org
www.agilemodeling.com
www.ambysoft.com
www.enterpriseunifiedprocess.info
www.modelingstyle.info
www.ronin-intl.com

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: gcma-***@gmane.org

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: agilemodeling-***@topica.com

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------
Hubert Matthews
2004-02-23 22:11:11 UTC
Permalink
Post by Scott Ambler
In Mashing Deadly Myths (Software Development March 2004,
http://www.sdmagazine.com/documents/s=9058/sdm0403l/sdm0403l.html)
I describe how one of the most interesting aspects of the IT community is
our ability to deceive ourselves. I explore the seven of the most common
myths that IT professionals appear to suffer from and offer some advice on
how to address them.
What about an eight sin: Assuming that everyone is subscribed to the same websites that you
are!

--
Hubert Matthews http://www.oxyware.com/
Software Consultant ***@oxyware.com

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: gcma-***@gmane.org

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: agilemodeling-***@topica.com

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------
Scott Ambler
2004-02-24 13:56:34 UTC
Permalink
Post by Hubert Matthews
Post by Scott Ambler
In Mashing Deadly Myths (Software Development March 2004,
http://www.sdmagazine.com/documents/s=9058/sdm0403l/sdm0403l.html)
I describe how one of the most interesting aspects of the IT community is
our ability to deceive ourselves. I explore the seven of the most common
myths that IT professionals appear to suffer from and offer some advice on
how to address them.
What about an eight sin: Assuming that everyone is subscribed to the same websites that you
are!
Good one! ;-)

It's a fairly painless subscription, your email address won't be sold
out. Also, you'll be able to sign up to the AM newsletter if you're
interested which comes out once a month.

- Scott

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: gcma-***@gmane.org

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: agilemodeling-***@topica.com

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------
Scott E. Preece
2004-02-23 22:14:14 UTC
Permalink
3. We need this documentation. ... Most documentation is written for no
other purpose than to soothe a bureaucrat.
---

This no doubt explains why the Computer section of your local Borders is
crammed full of books that try to explain how software works and how to
use it.

You are absolutely right in saying that the cost and benefit of each
documentation item should be considered as any other project
deliverable. You need to consider the expected benefit of writing the
document, which includes the cost of writing it when the information is
already gathered, the cost of rediscovering that information later, the
probability of needing to rediscover it, and the value of the
information to the downstream user.

You shouldn't be creating documentation that won't be used. Note,
however, that many documents are simply the by product of making a
decision or doing a design and the document IS used during the process
of making the decision or doing the design, whether it is used downstream
or not. The cost of archiving such a document, without worrying about
maintaining it, may be so small that even a very low probability of
reuse will still produce a positive expected value to doing so.

---
| 4. We need a team of specialists. ... What's really necessary is a team
| of generalizing specialists.
---

I have no problem with this if you describe a "generalizing specialist"
as "someone who know enough about the roles involved in the project to
interact effectively with the people in the related roles". On the
other hand, if you intend it to mean "every member of the team is
capable of performing every role", then I disagree vigorously.

Just as you wouldn't expect the person who designed the battery on a
cell phone to be qualified to also design the antenna, you shouldn't
expect that the person who designs the user interface is capable of
designing the code that implements the it, let alone of designing
Level 1 of the air interface stack or speech coding algorithms that will
run in the DSP. They just need to know each others' domains well enough
to communicate about needs and interactions at the interfaces between
domains.

---
| 5. The information is lost if it"s only in the code. This statement is
| clearly false: How can it be lost if you know where it is? The
| information might be lost to them if the folks in question can't read
| source code, but isn't the real problem a lack of development skills?
| Organizations that subscribe to this myth will invest far too much in
| documentation, increasing their costs, while slowing themselves down.
---

"The code" does not represent all of "the information". It says nothing
about what was intended, how it was expected to be used, or why it is the
way it is (modulo any comments people felt inclined to add). Stonehenge
is a nice example - we've got the artifact, but we have only speculation
about what it's for and how it was used.

---
|
| Myth-Masher: Again, this solution calls for building teams of
| generalizing specialists, people with the confidence and ability to work
| with the wide range of artifacts created during development. If you
| focus on writing high-quality code and putting documentation in the
| single most appropriate place (which is often the code), people will
| start to see this as an incredibly effective way to work. All I?m
| suggesting is that you apply the fundamentals of data normalization, the
| desire to store information in one place only, to documentation.
---

I have no complaint with this suggestion, just with the original
assertion that "the code is enough".

---
| 6. We need a detailed process definition. Just as bureaucrats think that
| you?ll read documentation, they also assume that you?ll read and then
| follow defined software processes. The only time that I?ve ever seen
| anyone read a process definition is when they?ve never done the job
| before....
|
| Myth-Masher: In reality, your process definition efforts are usually for
| naught. You?re better off developing a high-level overview of how things
| should work, producing templates and examples of key artifacts, and then
| ensuring that everyone is given the training and mentoring they need to
| gain the skills they require.
---

My experience is that you can't build the training, templates, examples,
and overview, without doing all the work that would produce the detailed
description. That is, the writing of the detailed description is a wart
on the side of the effort of developing the information it represents,
which you DO need.

| 7. We need to review this artifact. Too much faith is put in reviews and
| inspections, and when they?re done well in the right situations, they do
| produce results. However, reviews are compensatory practices?they
| compensate for communication barriers such as disparate locations, which
| result in inconsistencies between artifacts; little or no artifact
| sharing, which allows people to get on the wrong track without being
| caught for awhile (if ever); and overspecialization of skills, which
| results in narrowly focused decisions that ignore the bigger picture.
---

Reviews and inspections are different animals. Reviews are intended to
align thinking, inspections are intended to identify defects.

In organizations where colocation, simultaneity, and continuous
involvement are not practical, reviews are critical. If you want to
develop rules that apply only to projects small enough to get every
stakeholder involved in every decision, your audience is a very small
subset of the software development world.

Inspections, on the other hand, are just one (particularly effective)
way of finding defects in artifacts. There are other means to the same
end, and the relative costs and benefits will be specific to your
organization and project.

scott
--
scott preece
motorola urbana design center (il67), 1800 s. oak st., champaign, il 61820
e-mail: ***@urbana.css.mot.com fax: 217-384-8550
phone: 217-384-8589 cell: 217-433-6114 pager: ***@msg.myvzw.com

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: gcma-***@gmane.org

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: agilemodeling-***@topica.com

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------
J. B. Rainsberger
2004-02-24 02:10:18 UTC
Permalink
Post by Scott E. Preece
3. We need this documentation. ... Most documentation is written for no
other purpose than to soothe a bureaucrat.
---
This no doubt explains why the Computer section of your local Borders is
crammed full of books that try to explain how software works and how to
use it.
Not all documentation is user manuals. A team with strong internal
communication can avoid the vast majority of common internal
documentation (design, functional specifications, and so on).
Post by Scott E. Preece
The cost of archiving such a document, without worrying about
maintaining it, may be so small that even a very low probability of
reuse will still produce a positive expected value to doing so.
But is it worth the risk of becoming out of date, thereby providing
negative value?
Post by Scott E. Preece
---
| 4. We need a team of specialists. ... What's really necessary is a team
| of generalizing specialists.
---
I have no problem with this if you describe a "generalizing specialist"
as "someone who know enough about the roles involved in the project to
interact effectively with the people in the related roles". On the
other hand, if you intend it to mean "every member of the team is
capable of performing every role", then I disagree vigorously.
I'll venture this: every member of the team is willing to do what it
takes to make the project a success, including learning to do something
not in their nominal job descriptions.

The important thing to keep in mind is that no-one will be told "go
learn X" and sent the corner to learn it. They will have the team's
support as they go along. Learning in that environment isn't nearly as
frightening as many people might find it.
Post by Scott E. Preece
---
| 5. The information is lost if it"s only in the code. This statement is
| clearly false: How can it be lost if you know where it is? The
| information might be lost to them if the folks in question can't read
| source code, but isn't the real problem a lack of development skills?
| Organizations that subscribe to this myth will invest far too much in
| documentation, increasing their costs, while slowing themselves down.
---
"The code" does not represent all of "the information". It says nothing
about what was intended, how it was expected to be used, or why it is the
way it is (modulo any comments people felt inclined to add). Stonehenge
is a nice example - we've got the artifact, but we have only speculation
about what it's for and how it was used.
We encode what was intended in tests; we encode sample client code in
tests; if it's necessary to comment and why it is the way it is we add
comments to the code. If Stonehenge had tests, we could probably figure
out how to use it.

<snip />
Post by Scott E. Preece
Inspections, on the other hand, are just one (particularly effective)
way of finding defects in artifacts. There are other means to the same
end, and the relative costs and benefits will be specific to your
organization and project.
Finding defects in artifacts is not enough; being willing to fix defects
is all that matters. I have rarely been involved in reviews that have
led to fixes, although I have been involved in many reviews that have
led to "better luck next time." Fine, but it's too late for this
project. Pairing would have helped us /now/.
--
J. B. Rainsberger,
Diaspar Software Services
http://www.diasparsoftware.com :: +1 416 791-8603
Let's write software that people understand

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: gcma-***@gmane.org

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: agilemodeling-***@topica.com

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------
Scott Ambler
2004-02-24 14:15:02 UTC
Permalink
<snip>
---
| 4. We need a team of specialists. ... What's really necessary is a team
| of generalizing specialists.
---
I have no problem with this if you describe a "generalizing specialist"
as "someone who know enough about the roles involved in the project to
interact effectively with the people in the related roles". On the
other hand, if you intend it to mean "every member of the team is
capable of performing every role", then I disagree vigorously.
A generalizing specialist is someone with one or more specialties (or is
working on them) and a general knowledge of development and ideally the
business domain. I wouldn't expect everyone on the team to be an expert
data modeler, for example, but I would expect them to understand the
basics, appreciate why it's important, and be willing to work with
someone(s) with that expertise if needed.
Just as you wouldn't expect the person who designed the battery on a
cell phone to be qualified to also design the antenna, you shouldn't
expect that the person who designs the user interface is capable of
designing the code that implements the it,
I wouldn't expect them to be experts at both, but I would expect them to
understand and appreciate the basics. Otherwise they won't be able to
interact effectively and they will run the risk of stepping on each other's
feet.
let alone of designing
Level 1 of the air interface stack or speech coding algorithms that will
run in the DSP. They just need to know each others' domains well enough
to communicate about needs and interactions at the interfaces between
domains.
Yes.
---
| 5. The information is lost if it"s only in the code. This statement is
| clearly false: How can it be lost if you know where it is? The
| information might be lost to them if the folks in question can't read
| source code, but isn't the real problem a lack of development skills?
| Organizations that subscribe to this myth will invest far too much in
| documentation, increasing their costs, while slowing themselves down.
---
"The code" does not represent all of "the information".
Never said that it did. See
http://www.agilemodeling.com/essays/agileDocumentation.htm.
It says nothing
about what was intended, how it was expected to be used, or why it is the
way it is (modulo any comments people felt inclined to add).
Yes, you can still write external docs, nothing wrong with that, as long as
you focus on value.
Stonehenge
is a nice example - we've got the artifact, but we have only speculation
about what it's for and how it was used.
And yet it's one heck of a tourist attraction. In fact, it's
attractiveness might be the result of the mystery surrounding it -- it
would be hard to put a good spin on it if we were to discover that a few
people got drunk one night and decided to put it together for a joke.
---
|
| Myth-Masher: Again, this solution calls for building teams of
| generalizing specialists, people with the confidence and ability to work
| with the wide range of artifacts created during development. If you
| focus on writing high-quality code and putting documentation in the
| single most appropriate place (which is often the code), people will
| start to see this as an incredibly effective way to work. All I?m
| suggesting is that you apply the fundamentals of data normalization, the
| desire to store information in one place only, to documentation.
---
I have no complaint with this suggestion, just with the original
assertion that "the code is enough".
Please reread what was written. I didn't assert that at all.
---
| 6. We need a detailed process definition. Just as bureaucrats think that
| you?ll read documentation, they also assume that you?ll read and then
| follow defined software processes. The only time that I?ve ever seen
| anyone read a process definition is when they?ve never done the job
| before....
|
| Myth-Masher: In reality, your process definition efforts are usually for
| naught. You?re better off developing a high-level overview of how things
| should work, producing templates and examples of key artifacts, and then
| ensuring that everyone is given the training and mentoring they need to
| gain the skills they require.
---
My experience is that you can't build the training, templates, examples,
and overview, without doing all the work that would produce the detailed
description.
There's several firms which train people in XP that would disagree with
that statement. ;-)
That is, the writing of the detailed description is a wart
on the side of the effort of developing the information it represents,
which you DO need.
Sounds like a pretty big assumption on your part.
| 7. We need to review this artifact. Too much faith is put in reviews and
| inspections, and when they?re done well in the right situations, they do
| produce results. However, reviews are compensatory practices?they
| compensate for communication barriers such as disparate locations, which
| result in inconsistencies between artifacts; little or no artifact
| sharing, which allows people to get on the wrong track without being
| caught for awhile (if ever); and overspecialization of skills, which
| results in narrowly focused decisions that ignore the bigger picture.
---
Reviews and inspections are different animals. Reviews are intended to
align thinking, inspections are intended to identify defects.
Yes, but both are still compensatory practices.
In organizations where colocation, simultaneity, and continuous
involvement are not practical, reviews are critical.
Yes, because they compensate for this communication barrier that you've
chosen to erect. Perhaps tearing down the barrier is a better option.
If you want to
develop rules that apply only to projects small enough to get every
stakeholder involved in every decision, your audience is a very small
subset of the software development world.
Actually, I would prefer that people understand the implications of what
they're doing and then act accordingly. Most people don't understand the
risk, and the cost, of tolerating poor communication environments.

My experience is that teams can be dramatically smaller when you choose to
work that way. The Florida/Minnesota missing persons case study from the
Chaos group is a perfect example of that. Minnesota assumed that they
needed a small team and got the job done, Florida assumed they needed a big
team to build the same system and blew millions of dollars over several
years without delivering. I suspect that the Florida people didn't know
any better.
Inspections, on the other hand, are just one (particularly effective)
way of finding defects in artifacts. There are other means to the same
end, and the relative costs and benefits will be specific to your
organization and project.
Inspections are great compensatory practice when you're not able to adopt
practices such as collective ownership, coding/modeling standards,
continuous integration, and pair programming/modeling with others. I find
them far less effective in high-communication environments, but in
low-communication environments they can be really good when done
right. Use the right technique for the job.

- Scott

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: gcma-***@gmane.org

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: agilemodeling-***@topica.com

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------
Loading...