| I've never been a Project Manager before
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Check out the excellent Dilbert
|
| IT WON'T WORK HERE doesn't work here
|
|
25 Sep 04 |
|
[print
link
all
] |
(Source: Kent Beck posted this to the XP mailinglist) This came up in a
discussion of how to handle long-lead-time materials. The OP basically
said,
"I can't do all that stuff you say I should do, but how do I handle the situation ..."
The response:
-- IT WON'T WORK HERE doesn't work here.
|
| Executive Dashboard
|
|
25 Sep 04 |
|
[print
link
all
] |
Thanks to Sven C. Koehler. He pointed out me to Edward Tufte’s
interesting forum.
There are some interesting answeres in the thread, esp. the graphic about
the patient. Isn’t every company a patient? :-)
I'm developing an executive dashboard, and I haven't been satisfied
with the business graphics that are widely available
(e.g. gauges, dials, stoplights). I decided to make a "Zen" version
of a KPI status indicator, using as little color as possible,
and incorporating E.T's innovative "Spark Line" metaphor for display
of trends. The graphic below shows the proposed KPI display across
the top of a browser screen with a descriptive example in the middle.
Any feedback would be wonderful!
Comments: Because of complex KPI names (e.g. This Week versus Last Week
Sales (All Divisions), KPIs were labeled with Roman numerals.
Balloon help could display the KPI name when the cursor brushes the
KPI indicator.
link
|
| Hackers and Painters
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Paul Graham) When I finished grad school in computer science I
went to art school to study painting. A lot of people seemed surprised that
someone interested in computers would also be interested in painting. They
seemed to think that hacking and painting were very different kinds of
work— that hacking was cold, precise, and methodical, and that
painting was the frenzied expression of some primal urge.
Both of these images are wrong. Hacking and painting have a lot in common.
In fact, of all the different types of people I’ve known, hackers and
painters are among the most alike. www.paulgraham.com/hp.html
|
| XP is fractal.
|
|
25 Sep 04 |
|
[print
link
all
] |
(Source: Ken Boucher posted this to the xp-mailinglist)
> Surely, you're not calling design documents you built in the middle
> of a project "up-front" design?
Let’s talk about "project" and "up-front" for a
second.
In the old world I came from, a project had a feedback loop. This feedback
loop could be considered to have covered design to unit testing, roughly a
period of 6 months to a year on many projects. In other words, I would get
feedback on my design 6 months after I made it.
Now let’s enter the fractal nature of XP.
My design to unit test feedback loop is the duration of a card in most
cases. In some cases it’s as small as design/refactor/new test/new
code/refactor/ (which may be a scope of minutes). In some cases it may be
as large as an iteration (after all, we didn’t pick the cards in this
iteration at random, we had a plan). It may even have been as large as a
release plan.
The difference is that I get my feedback quickly and the design I do at any
given stage is as small as it needs to be instead of as large as it can be.
But I still do design "up-front". I have a plan before I leave
the release meeting. I have a plan before I leave the iteration meeting. I
have a plan before I even start refactoring before that first unit test. I
have to make the same decisions I would have made in the BDUF, the only
difference is that I make them as late as possible. In short, I make them
just before I do the task that requires that decision to have been made.
XP is fractal. It’s possible to think about an XP project as a large
collection of projects, each small enough to be written on 3*5 cards. And I
do design for every one of those projects up front.
|
| Story cards are like poker |
|
25 Sep 04 |
|
[print
link
all
] |
(Source: Brad Appleton, XP-ML) How cool would it be actually to /use/ poker chips in the Planning Game?
Interesting - I interpreted the above statement to be talking about having the planning game include both cards and chips (just like poker). The chips would correspond to story points, and would be attached to a story card with the appropriate number of chips. And when a story was "split" the corresponding chips would be split between the resulting new card(s).
- The dealer gives the customer all the chips for this iteration
- Then the customer "shuffles" the cards and lays them down
- As each one is laid down, development uses a different color of chips and places the number of chips that story costs.
- If the customer is okay with it, they then take an equivalent number of chips from their "stack" and place it to the "bet" pile.
- If the customer isn't okay with it, the story can be split (kind of like "double down" in blackjack) and/or cards can be "reshuffled"
- At any time, the customer may "reshuffle"
- When the customer is out of chips and is okay with the current "bets" and card order, the planning session is adjourned
|
| Test-Driven Writing
|
|
25 Sep 04 |
|
[print
link
all
] |
(Source: Stefan Schmiedl)
>An activity that I /do/ still have trouble with, however, is writing.
> When faced with having to compse anything more substantial than an
> email response, I feel the fear start to creep in and I get myself all
> tied in knots. Even after I start to put some words down, I often
> find myself getting stuck because the thing isn't flowing and the task
> of finishing seems overwhelming.
Yup, writers block definitively, as John Roth diagnosed already. But if
you’re able to describe it in such flowering detail as above,
there’s no need to have it.
> So on my way home last night (after another frustrating couple of
> hours trying to get some thoughts on paper), I was thinking about how
> I could make my prose writing come as easily as my code writing. I
> started wondering if I couldn't somehow employ a TDD-like cycle in my
> writing process.
I am often writing articles with my business partner,
who’s<br>especially good at collecting lots of nice stuff on
the web. The first thing I have do with the "drafts" I get from
him, is to find the<br>structure fitting best to the available data.
This is currently donein a Mindmap using freemind (freely available at
sf.net, IIRC). For some<br>time I also tried vimoutliner (www.vimoutliner.org) for this, but
found that for this process, the two-dimensional display of a mindmap is
better suited to my brain.
When the outline is finished, I start to grow the flesh on the bones.
That’s relatively easy, as I confine my work strictly to the current
paragraph.>
The next step is easy, if I have the time: I let the stuff settle for a few
days, then go over it once more and clean up the unbelievable mess I
created then. If I don’t have the time, I need to play about two
hours nethack, which erases my brain just as well…
So the steps are:
- data collection
- gradually by experience
- by force (coauthor delivery)
- data organization
- mindmap
- outline
- draft
- follow the map
- work local
- refactor or polish
- grammar, spelling, rhetoric
- present line of thought more clearly
I think that there’s a difference between code and prose showing
here. You expect your code to give certain results for a given input, and
you are free to not care about the implementation at all. With prose,
implementation is almost everything. So the cost of providing a
"working release" is higher with prose than with code. At least
for me.
>find myself getting stuck because the thing isn't flowing and the task
>of finishing seems overwhelming.
Writing is like every other kind of art. It is never finished.
Feeling better now?
Writing is like dealing with animals. Don’t be afraid of it, and it
won’t hurt you.
Your fellow author in pain, S.
|
| Don't do code reviews. Do pair programming
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Ron Jeffries in the XP-mailinglist) Well, Don't do Code Reviews, do Pair Programming. Frankly, code reviews are /so/ much worse than pair programming that a dose of them would make me fly to pair. Let's see if we can replicate my experience.
Here's one path through a network of a million decision points:
To do code reviews, everyone has to read the code beforehand, unless you're doing a walkthrough, see below. I'd ask everyone to come together physically to the review. Then I'd ask them to report truthfully how much time they spent reviewing the code. Early on, I would report truthfully that I had spent zero or very little time, in hopes of getting others to admit the truth. When they admit the truth, I'd dismiss the meeting and reschedule it.
Then, after a while, the only alternative is a walkthrough, since no one is preparing effectively for the review. So we do walkthroughs for a while. They are intensely boring, and few people stay involved. Note in your mind the people who are present but not involved. At the end of the session, say, holding your hand up, "Who else had a real problem staying engaged with this walkthrough?" If there's honesty in the room, hands will go up. Prompting may be necessary. Then: "Any ideas?"
Surely someone will think of "doing this in smaller groups or one on one". Try it. Ask the team whether "we should empower the one-on-one folks to change the code, and under what circumstances." Don't mention that this is pair programming.
Try an experiment. You're "interested in collaborative programming". Interested parties should come to the room to help. On the screen, start writing a program. Ask for help with it, get the room to pair with you. Get stuck (no need to fake this if you are me). Someone will start telling you what to do. Don't get it (no need to fake this either). Get them to come up and do it ... grabbing the chair that is accidentally beside you, while you move over.
Note that reviews often find things. Observe how many of them are resisted by the original programmer, or are "too much trouble to fix now". Build a few BVCs relating to time spent prepping, in the meetings, number of useful suggestions (by person if you can do it without problems), number of changes made in response to suggestions, ...
Code reviews are intensely painful, in my experience, and we were trained by Freedman himself. There will be no need to set them up to be perceived that way, though it will take honesty among the group to express it. After doing enough code reviews, which take way more than half the groups' time by the way, a team who has heard of pair programming should be begging to pair. About all you have to do is make sure that no one treats the review session as nap time, and that you are /early/ in recognizing the people who think it's a waste of time. Because they're right.
|
| Hang the code, and hang the rules
|
|
25 Sep 04 |
|
[print
link
all
] |
Douglas Seelinger posted this in the XP-list:
A quote from "Pirates of the Caribbean: The Curse of the Black Pearl":
--You're pirates. Hang the code, and hang the rules. They're more like
guidelines anyway.
|
| Installing Oracle 10g On Debian
|
|
25 Sep 04 |
|
[print
link
all
] |
|
We go through, step-by-step, the process of installing Oracle 10g Release 1
(10.1.0.2) Enterprise/Standard Edition for Linux x86 on a Debian unstable
installation as of 2004-06-04. This chapter was originally written by
Damien McAullay with suggestions from Giuseppe Sacco and Oliver Bankel. link
|
| Paris Metro firm to run Wi-Fi buses
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Sourc: register) Wireless
Internet access will soon move beyond railways and onto the roads if RATP,
the company which runs the Paris Metro and the capital’s bus
services, has its way.
The organisation will next week show off a Wi-Fi enabled bus at the
Paris-hosted Public Transport Exhibition 2004. It will also launch a public
trial of the technology, on the number 38 bus, which runs between North and
South Paris. Buses on the route have already been equipped with Wi-Fi, RATP
said. Travellers will be able to connect their (suitably equipped) PDAs and
notebooks with the bus’ on-board access point. However, Internet
connectivity is only provided at Wi-Fi speeds when the vehicle passes
within range of a fixed hotspot - at a major terminus, for example. For the
rest of the journey, connectivity is maintained through a GPRS link. link
|
| When Should We Test?
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Kent Beck, one of the people that invented extreme programming (XP) offers
an economic model. The financial risk management community and the software
development community can learn a lot from each other. Think of this
article as: When should you put Risk Management into place?
Amongst other things this article tells you when best to have children :-).
[groups.yahoo.com/group/extremeprogramming/files/when%20should%20we%20test.pdf]
|
| The Simplest Thing that Could Possibly Work
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source Ward Cunningham, Bill Venners) Ward Cunningham talks with Bill
Venners about complexity that empowers versus complexity that creates
difficulty, simplicity as the shortest path to a solution, and coding the
simplest thing when you’re stuck.
In the software community, Ward Cunningham has a reputation for being a
font of ideas. He invented CRC Cards, a technique that facilitates object
discovery. He invented the worlds first wiki, a web-based collaborative
writing tool, to facilitate the discovery and documentation of software
patterns. Most recently, Cunningham is credited with being the primary
inspiration behind many of the techniques of Extreme Programming. link
|
| Agile Processes Summarized
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Ron Jeffries and Alistair Cockburn, XP-ML)
I think that to get a group to be agile, you have to get people to do
something like one of these things:
- Go in that room there and do all 12 XP practices until you actually do know
better. (XP)
- Go in that room there, don’t let anyone screw with you, work on
whatever you think you can get done for a month. Keep doing that until
everyone is happy. (Scrum)
- Go in that room there, in peace love and understanding, ship software every
month (*), and think about it. (Crystal Clear.)
There is a telling sameness to all of these, is there not? —> This
is a wonderful summary of a summary! There’s not much to be removed
(see Saint-Exupery, below). In Italian, the expresso of an espresso is
called a "ristretto" (any Italians online?). This is the agile
ristretto. It belongs on a Blog or something. "La perfection est
atteinte non quand il ne reste rien a ajouter, mais quand il ne reste rien
a enlever." (Saint-Exupery)
|
| Increasing Software Development Productivity
|
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Mary Poppendieck) Income growth of workers in any economic sector
is directly related to productivity growth. In the past, the productivity
of the technology sector grew not because technical workers were becoming
more productive, but because technical capability was growing so fast.
Unfortunately for the incomes of software development professionals, this
is no longer the case. Future income growth will be related to our ability
to increase software development productivity.
How can software development productivity be increased? Through the same
approaches used in operations: a focus on customer value, a short,
effective supply chain, healthy discipline, and innovation. Mary will
discuss techniques that businesses have used for decades to jump-start an
increase productivity, and show how they can be used to increase software
development productivity. pdf
|
| Ender's Game and Software Development
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Very interesting entry by /\ndy Hunt. Ender is in reference to a novel by
Orson Scott Card called ‘Ender’s Game’. Its part of a
series of three books, all of which are well worth reading. www.toolshed.com/blog
|
| Communication is the Transfer of Emotion
|
|
25 Sep 04 |
|
[print
link
all
] |
|
Seth Godin has put together a nice pdf about how
todo decent powerpoint slides. By the way, his new book "Free
Prize" is out, too.
I always enjoy reading his weblog.
|
| [ANN] DataVision 0.8.2 released; upgrades to JRuby 0.7.0
|
|
25 Sep 04 |
|
[print
link
all
] |
|
DataVision
0.8.2 is now available from SourceForge at sourceforge.net/project/showfiles.php?group_id=33343
DataVision is an Open Source
reporting tool similar to Crystal Reports. Reports can be designed using a
drag-and-drop GUI. They may be run, viewed, and printed from the
application or exported as HTML, XML, PDF, LaTeX2e, DocBook, or tab- or
comma-delimited text files. The output files produced by LaTeX2e and
DocBook can in turn be used to produce PDF, text, HTML, PostScript, and
more.
DataVision
is written in Java and uses JRuby to add Ruby scripting.
|
| Where is the snow?
|
|
25 Sep 04 |
|
[print
link
all
] |
Summertime .. so all we do is to ski-roller. High time for the snow to come
back and cool it down a bit. I found that pic a long time ago on I have
forgotten what website.
|
| How to Construct Bad Charts and Graphs |
|
25 Sep 04 |
|
[print
link
all
] |
|
(Source: Gary Klass) A short but good article in the style of Edward Tufte, the big guru when it comes to displaying data in a meaningful way.
Fundamental rule of efficient graphical design: minimize the ratio of ink-to-data
The three fundamental elements of bad graphical display are these: Data Ambiguity, Data Distortion, and Data Distraction. link
Make sure you check out these classic bibles about envisioning information by Tufte:
Envisioning Information and The Visual Display of Quantitative Information
|
|
|