Agile Methods Miss the Point

From artima developer, Agile Methods Miss the Point, by Dale Asberry, April 5, 2004

Summary

Elaboration of the seven principles contributing to my success - the Princples of: Enabling Others, Simplicity, No Complaining, Least Work, Least Surprise, Least Damage, and "It Just Works".

Where'd it come from

I was working on my JCM7 presentation Jini and Web Services: Judy Project Overview when I realized that I was making choices about how I developed the Judy codebase. I'm not really sure why I hadn't consciously recognized what I was doing -- especially since I remember following these principles for years... maybe from the project being "my baby", or, possibly, from the complete lack of time I have to give to it. Mostly, I think it came from me thinking about how to describe Judy to my audience. Since software is for, and about, people, I decided to include it in the presentation.

Dogma

One thing bothers me about the "Agile" movement is the fervor of the religious dogmatism from many of the practitioners. Before I get flamed, hear me out... I personally think many of the agile practices solve several problems that have afflicted the industry for decades -- I use them to solve problems myself. Yet, these practices are still fumbling around the most basic tenet. Software is for, and about, people. Fervor and dogmatism, while good at spreading and enforcing "the word", ultimately squashes critical thought (and the people engaged in it). Principles, on the other hand, are only meant as guides. Dogma are inflexible, hard and fast rules and includes the resulting punishment when a person strays.

Back to the Subject at Hand

Focusing on these principles, coupled with shuffling their priorities to meet the needs of the moment, has resulted in a steady progression and happiness with my chosen career - regardless of the methodologies (Waterfall->RAD->RUP->Agile) and technologies (COBOL->C/C++->Delphi->Java->Jini->Web Services) available to me.

The Principle of Enabling Others

"Give a man a fish and you feed him for a day. Teach him how to fish and you feed him for life." At the end of the day, this makes me more productive by focusing on what software development is really about -- the people I work with. Paradoxical, I know, but very powerful.

The Principle of Simplicity

If it isn't simple, then it's wrong. In programming terms, simplicity is relative to the level of abstraction. This principle is fallout from having to maintain, review, or otherwise interact with uncounted lines of crappy, overly-complex code from lazy programmers. I particularly despise having to write sub-optimal code myself to work around the limitations of someone else's (fill in the blank) framework/API/application.

The Principle of No Complaining

Don't complain if you're not willing to fix the problem. Nothing is more destructive nor demoralizing than a contentious spirit. Complainers are lazy, petty, and spiteful with no intention of ever being helpful (although they are usually pretty crafty about trying to make it look like they are).

The Principle of Least Work

Do the least it takes to make the software useful, but, prepare for the future. Do whatever it takes to make the work easier (see enabling others). If someone else has already done it, see if you can use it. This principle is not condoning laziness -- there is already to much work that needs to be done and not enough time to do it.

The Principle of Least Surprise

Always do the least surprising thing. In other words, make it work intuitively. And, don't trust your own intuition. I wasn't able to find who discovered this principle, but it is true on many levels, not just GUI design. Unfortunately we are forced to live with products that fail to follow this principle. Why is so much software so baffling?

The Principle of Least Damage

Firstly, don't let the user do something they don't understand. Secondly, if you do, always give them a way to undo it. Finally, operations should only do one thing at a time in incremental baby steps -- except when the user knows what she is doing. Users should feel safe using the software.

The Principle of "It Just Works"

Never expect or require the user to RTFM. Lead the user to her goal. Encourage the user to explore. Expect the user to say, "wow, it's so easy to use!" Frankly, I'm completely fed up with all those software projects that force me to grab the source from HEAD (just to get a usable distribution) and then requires me to read the source code just to figure out how the application works.

Final Thoughts

If you remember and focus on software (use and development) being about people, then whatever principles you follow will equally lead to your success.

Notes on CSS floats

From http://www.simplebits.com/ April 3rd 2003 entry:

Not long after I updated my CSS, a reader pointed out that when resizing text, the content column would “jump” to the right, overlapping the sidebar. Not good.

The problem: I needed to clear the floats that enable the navigation to be horizontal. This didn’t seem to be a problem in my old, positioned layout. But when floats are used to lay out the columns that follow the navigation, not clearing can cause bizarre issues.

The solution: Adding a simple clear: left; to the #content declaration (since this

follows the navigation) solved the text resizing issue.

Something to keep in mind if you’re using a floating layout, along with an unordered navigation list that also uses float.

So… clear, clear, clear.

Beyond the five paragraph essay

This is a post originally from T Burke at Swarthmore. I found the link via del.icio.us

Beyond the
Five-Paragraph Essay

When I hand back
analytic essays, I try to leave room to do a collective post-mortem and talk
about common problems or challenges that appeared in a number of essays. I think
it helps a lot to know that the comment you got is a comment that other people
got, and also to know how some people dealt more successfully with the same
issue. All anonymous, of course, and following my Paula-like nature, nothing
especially brutal in terms of the actual grades dispensed.

I usually base
my comments on some scrawled meta-notes I keep as I work through each batch
of essays. Sometimes there are unique problems that arise in relation to a particular
essay question, which is sometimes a consequence of my having given enough rope
for certain students to hang themselves in the phrasing of the question. Often
there are problems I’ve seen before and commented upon.

1) Some
of these perennial comments concern smaller but important stylistic errors and
misfires, such as:

Choice of
tenses
, which can be difficult in history papers if the student is writing
about contemporary texts as well as past events.

Point-of-view.
The only thing I strongly discourage is the use of the “royal we”,
though there are ways to make it work rhetorically if used with care. The
other thing I mark is switching randomly or rapidly between point-of-view.

Endless unbroken
paragraphs
.

Weirdly arbitrary
capitalization.


Psychotic
misuse of commas and semicolons
.

Sentences
that I label “awk” (awkward) or “ugh” (ugh)
, where
there’s just something really aggravatingly roundabout if not absolutely
grammatically forbidden in the structure of the sentence or where the sentence
or phrase is plain-old butt-ugly.

"Purple
prose”
, e.g., wildly overwritten or florid. The template I have in
mind here is an actual paper I graded some years ago that began, in apparent
seriousness, “Verily, the colonial state in Africa indeed formulated
a versilimitude of societal establishments…”

"Blocky
prose”
, the opposite of purple prose, with every sentence a completely
unadorned subject-verb-object monotone. The composite effect is like reading
a telegraph message. “Africa was ruled by Britain, France and Portugal.
They constructed colonial states. Most colonial governments were based on
indirect rule. Indirect rule was based on Africans having their own customary
rules and rulers. Colonial authorities controlled customary rules and rulers.
There were many conflicts over these rules. Indirect rule was an unjust system.” And so on.

Confusion
over the difference between different sources or materials.
On a recent
assignment, for example, some writers ended up comparing a contemporary scholar’s
work with a primary source from the 1920s and acted as if the two sources
were contemporaneous with each other and written for more or less the same
purposes.

Arbitrary,
purely “structural”, use of evidence or supporting material
,
where an essay has the feel of having been written with “blank spots” for evidence which the student then fills by more or less randomly pulling
out quotes from a text.

“Kitchen
sinkism”
: an essay that indiscriminately throws every scrap of potentially
relevant material and information at a problem, organized serially as it occurs
to a student during the writing process. This is especially bad at shorter
lengths, where making good decisions about what to include and exclude is
critical.

Words and
phrases that implicitly or explicitly assert mastery of the entire corpus
of material related to the assignment
, often through language that compares
a source text to all other source texts of the class X from which the text
comes. Every once in a while, I get an undergraduate who has some justifiable
reason to assert this sort of authority, but most of the time, it is a mistake,
though often an unconscious one.

Bad introduction
that doesn’t do any sort of useful job stylistically or structurally
.
A writer can have an introduction that doesn’t do any structural work
but is stylistically compelling, or a writer can have a plain-Jane intro that
gets the structure set, but having neither is a problem.

Bad or nonexistent
paragraph transitions
. At its worst, this makes me feel like I’m
reading the private confessions of a schizophrenic.

2) The
most important fundamental issue I see again and again is a paper which is largely
descriptive rather than analytical, which proves that a student has “done
the homework” but not taken ownership of the material and crafted an argument
of their own. Sometimes I see an argument in the first paragraph or in the last
paragraph (the latter often appearing to be a last-minute discovery) that is
cut off from the rest of the essay, unexplored or unsupported. I often comment
that papers lack what I call “flow”, a sense that they are moving
relentlessly and naturally from one assertion to the next, building towards
some goal or overall point.

I often suggest
some pre-built analytic structures that go beyond the usual five-paragraph essay
that students are taught to write in K-12 schooling. These are hooks, conceptual
heuristics that I hope can help a student find an argument, a structure, a “flow” to the analysis. Here’s some of the structures I often suggest for history
papers written in response to a professor's prompt or question:

Simple compare
and contrast
. This is often the next step up from the plain five-paragraph
essay. I sometimes call it the this-and-that paper. The essay can be written
around a block comparison, where the two (or more) things to be compared are
discussed separately in longer multi-paragraph sections, or on a point-by-point
basis, alternating each paragraph. The key here that makes this structure
rise above the purely pedestrian is the conclusion. A compare-and-contrast
paper that concludes with an unresolved or rhetorical question about the meaning
of the comparison is banal and descriptive, but a paper that concludes with
an emphatic resolution of the comparison or contrast can be excellent.

Close reading.
An essay built around a very tight interpretation of a single word, phrase,
metaphor or other linguistic component of a source or scholarly account, or
focus on a tight comparison of several related passages. The implicit hope
here is that the writer will find a potent enough metaphor or passage to hang
a larger argument on if they pay close attention to the language of their
sources or material.

Chronological.
A structure that is more precisely fitted to historical writing, where it
traces the development of a theme or issue over time. This is also very simple,
and often produces a mediocre paper that is purely descriptive and non-analytical,
but if it is done well, can be very sophisticated. The key to doing this paper
well is picking a theme or issue where tracing its development over time is
itself a potent or pointed analytic choice, where pursues a chronological
dimension to an issue repudiates some other way of understanding it. (The
reverse, by the way, works equally well, namely, taking an issue that is commonly
understood as changing considerably over time and arguing that it actually
is quite static.)

Contrarian.
A paper built around a full-scale attack on the source material or even the
assumptions of the essay question. The key to doing well here is tight discipline
and focus, remembering that this is for “argument’s sake”—but
also making sure that the criticism on offer isn’t arbitrary, a wildly
inconsistent grab-bag of fault-finding or a mouth-frothing disproportionate
polemic. The best essays under this heading will identify some deep axiom
or assumption made by the source material and ask, “But what if this
is not the case?” and go from there. Incidentally, I tell students that
just thinking about a contrarian essay is a good way to clarify the argument
in any essay—if you aren’t offering an analysis that is potentially
arguable, that you can think of ways to attack or counter, you don’t
have a good argument.

Thematic. Hard to describe: this is a catch-all term for an essay that isolates a single
theme or issue in response to the professor’s initial prompt, and focuses
exclusively on it. On a recent assignment, for example, I had one very good
paper that took a general prompt about development policies in colonial Africa
and zoomed in very tightly on agriculture and gender. The good thematic writer
just needs to have enough faith in the heuristic they’re using to isolate
a single issue or problem—a thematic essay goes wrong when the theme
is very badly chosen or when the writer loses confidence and switches halfway
through to something else.

Set-em-up,
knock-em-down.
When it’s done right, this is just about my favorite
kind of short analytic essay, and it is one of the structures well worth learning
for its general utility outside of the college environment. In this structure,
the writer explores some simplistic or banal assumption or argument for the
first part of the paper, carefully bracketed off as a sort of “Let’s
suppose that X is true”, where it is clear that the author is just thinking
it through. Then halfway through the essay, the writer pulls the rug out,
revealing that the initial argument is totally wrong, and substituting some
other argument or line of analysis in its place. In the end, the reason I
like set-em-up, knock-em-down essays is that they are so clearly focused on
the purpose of analytic writing, at least in my classes, and that’s persuasion.
This is why I grade descriptive essays so relatively low: they only prove
that someone did the reading. An essay that is persuasive is an essay that
shows a student has command of the material, has taken ownership of it. It
doesn’t matter if their knowledge is less than encyclopedic in that case.

Frustrations with Drupal 4.4

Rule #1 when using the latest and greatest software: don't.

I upgraded this site to the latest and greatest Drupal at some point and totally messed up the site. First my green theme didn't work, then all the nodes died because I invoked some filters. As near as I can tell, the filter.module can't be working at all.

Sigh.

Rule #2 when using the latest and greatest software: See Rule #1.

Bah.

Three times' a charm & Kris turns 30!

Blog

Or, Migraines: 3, Periods: 1

Had my third migraine of the year today. It started this evening around 5:30 at Costco. Kris' parents, Bob & Lil, and I had just finished shopping for Kris' birthday celebrations at the All-Star Baseball Academy of Mountain View. At checkout, my thoughts were, "Uh oh." My vision was suddenly doing funny stuff, but I couldn't quite confirm a migraine because I couldn't find the blind spot.

Five minutes later at the car, I couldn't see Lil's face when I looked at her. Sigh.

Lil gave me two 8-hour Tylenol, then drove us home, Kris arrived home as we were cleaning out the fridge for room for the cakes. When he got home, around 6:30, I went to sleep. Kris woke me at 7:30 (at my request). I scarfed down spaghetti and a Codeine from Kris' surgery (expiration March 2004 - how's that for close).

Off to set up the party. About 5 minutes after I got there, wham, more visuals. This time, pretty bad. I had no pain, but I was definitely 2/3 blind. Lil and I set up everything, people starting arriving. I don't think anyone could tell I was having problems.

Christina Valvo asked me about migraines, as she thought she had one earlier in the day. The symptoms certainly sounded like it, with the numbness, pounding headache and light sensitivity. I asked is she could tell I was having one right then, and she, along with Wade, laughed and said she couldn't.

The rest of the evening went well. I was in the batting cages three times. I did okay. Tom Senna, the owner of All-Star gave me some pointers while I was in the cage, helped me hit a few balls. Bob helped me the other times.

I had a great time. A lot of people came up to me and told me it was a great idea for a birthday party. There was a ton of activity, everyone seemed to be doing something, from the speed guns to the batting cages to the food.

Bob had a CD/DVD that he made about Kris' baseball career. It was really cute. We played it at 9:30 or so. Tom helped me set it up, we had to play with the laptop (Kris ran home at 8:30 to get the cables, such the sweetheart). People laughed and enjoyed the video.

After everyone came back to our house, the headache started creeping back. I took another Codeine. I tried to stay involved until 1:00, when everyone left, but it was so hard. I wandered away at some point, appearing again to say good bye, then disappearing. I hope no one noticed - it was Kris' night anyway.

I talked to Lisa at several points in the evening. She thinks this is my third migraine also. Kris thinks it's the fourth. Regardless, it's too many.

Update! I recalled I had some Trident gum on Thursday. It contains aspartame! That was probably the root cause of the migraine. Not that it lessens my head pounding, but at least I can, once again, avoid aspartame like the plague! The plague, I tell you!

Pages