Approximity blog home
550 to 569 of 600 articles InfoSyndicate: full/short

Big Requirements Up Front (BRUF)   25 Sep 04
[print link all ]
I really appreciate Georg Tuparev’s postings to the XP-ML.
 >Because it is important for the customer to have an idea of how much
 >> everything will cost ...

 In 99% of the times customer neither needs nor wants "everything"! One
 of the big dangers of BRUF is that it imposes the wrong feeling that
 "everything" is important. This is a major distraction that inevitably
 leads to scope-creep and eventually project failures. When we have the
 first meeting with a new customer we ask the following 3 questions:
 1. What is your biggest pain?
 2. If we solve this and only this pain, will your life get better?
 3. Are you willing to pay X amount of Euros to us to solve this pain.

 If any of these questions is answered with "no" we just thank for the
 coffee and walk away. If all 3 questions are answered with yes, we move
 to the first planning game...

 Put it in another way: I do believe it is extremely dishonest and
 incorrect behavior to conduct 9 months BRUF only to reach the
 conclusion that the customer does not have enough resources to
 continue. It is dishonest because as I wrote in an earlier posting,
 _all_ good developers I know are able to estimate almost immediately
 the scale of any software project without conducting BRUF.

Only hire people who pair?   25 Sep 04
[print link all ]
(Source: Chad Woolley posted this to the extremeprogramming-ML) Here’s an interesting experience I had when interviewing for an XP shop, and one I will definitely keep in mind in future interviews, whether I am the hirer or hiree.

As part of my interview, I was required to sit and pair program for about half an hour. We worked on an writing a unit test for an actual defect that currently existed on the project (although it could easily have been a real user story, or a contrived scenario if the project had not yet started).

I thought this was a great idea, and a great source of knowledge for both sides. I was able to show that I did indeed know how to program, write unit tests, knew my way around an IDE, had acceptable interpersonal communication skills, etc. I was also able to get a different perspective on what the team dynamics were like, which I could not have gotten from a formal interview setting.

The interesting thing is that both me and my partner (one of the interviewers) taught each other about some tools and approaches that we were not previously aware of.

Even though I didn’t get the job (the position was withdrawn), I kept in touch and became friends with the interviewer/partner, and the things we taught each other came in useful in our future development work.

This company also asked for code samples and a mini-presentation, which I also thought was a great idea for separating the wheat from the chaff.

Since I have had responsibility for helping interview, select and recommend job candidates in the past, I know for a fact that the best resume and interview performance in the world is inconclusive. You can still get a lemon, even though the lemon may be very good at piling on the BS.

From my perspective as a job candidate, I am confident in my skills and my abilities. I know that I can quickly adapt and excel in any position within my skill set. However, its very frustrating when I cannot convince the potential employer of this through only a traditional resume and interview.

In future interviews that I go for (which will hopefully only be with XP/Agile shops), I am going to suggest this as a way for the hiring company to get a better idea of my skills, knowledge and abilities, both technical and interpersonal. If I am ever part of a hiring team in the future, I will definitely propose that code samples and a pair-programming session be part of the interview process for candidates who make it to the final stages. This is admittedly very time-consuming, but probably much less net investment than being forced to live with (or try to get rid of) an employee who looked much better "on paper".

Thanks, Chad

Adapting Extreme Programming   25 Sep 04
[print link all ]
Kent Beck posted this today to the XP-mailinglist.

I’ve been thinking about the problems of applying XP to whole organizations. Turns out this is ground thoroughly covered by the lean production folks.

Here is a paper I found helpful: www.nwlean.net/no_harm.zip The premise is that every step of the transformation must pay for itself.

Getting people to understand that their problems are tractable can be hard, I’ve found. Rob Mee was talking to a guy about TDD on a gig of ours recently. "Sure, yeah, TDD is a great idea." "Why don’t you do it?" "It’ll make us go slower." "But it makes you go faster." "Yes, of course, but it’ll make us go slower." "But it’ll make you go faster" *iterate N times for annoying large N* "Okay, it makes people go faster everywhere but here."

Kaizen Events   25 Sep 04
[print link all ]
(Source: Keith Ray) Keith Ray has an interesting entry on Kaizen Events in his blog. Kaizen Event definition from Ray’s blog: The Kaizen method is a "rapid improvement process" utilizing a cross-functioning group of managers and employees working as a team to meet targets in a results-oriented focus on a predefined project area. The process may take the following steps: define the problem/opportunity, choose the best people, and correct the problem in one week or less using Kaizen tools and techniques. The ultimate goal is to significantly reduce costs, reduce lead times, reduce required inventory space, enhance workforce empowerment, eliminate waste, and focus on continuous improvement. The Kaizen process may include: new product development, robotics, total quality control, Just-in-Time, statistical quality control, labor and management relations, or other concepts.

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

Lean Software Development: An Agile Toolkit by Mary and Tom Poppendieck   25 Sep 04
[print link all ]
Very interesting book. Highly recommended. This books brings the lean production principle to software development. Seven lean principles:
  • Eliminate waste: Spend time only on what adds real customer value
  • Amplify learning: When you have tough problems, increase feedback
  • Decide as late as possible: Keep your options open as long as practical, but no longer
  • Deliver as fast as possible: Deliver value to customers as soon as they ask for it
  • Empower the team: Let the people who add value use their full potential.
  • Build integrity in: Don’t try to tack on integrity after the fact - build it in
  • See the whole: Beware of the temptation to optimize parts at the expense of the whole

Link

Simple things ..   25 Sep 04
[print link all ]
I was just now doing some research on bus ticket clearing houses and I came across his post in rec.travel.europe from 2001 by Michael Forrest.
 >Reciprocity is not guaranteed on airlines (or toll bridges - it
 >has always amused me that the toll on the Severn Bridge between
 >England and Wales is GBP 4.20 for a car to enter Wales but there
 >is no toll the other way, ie entering England). (Maybe it shows
 >how the two countries value themselves?)

All of the bridges in the San Francisco Bay area only charge toll in one direction. Some genius realized that, on the average, just about as many cars went each way for the obvious reason that most trips across the bridges are round trips. So they doubled the toll and took down the toll booths going one way (except for the Golden Gate Bridge where the toll booths remain, unattended). There has been considerable saving in toll collection costs and the toll booth traffic jams in one direction are gone. Is it possible the Severn Bridge does similarly?

Modeling on White boards   25 Sep 04
[print link all ]
(Source: Scott Ambler) I just posted "Software Modeling on Whiteboards" at link. It describes how whiteboards can be an effective modeling tool.

Basically it’s an ad for Whiteboard Photo. ;-)

Software Bug Causes Soyuz To Land Way Off   25 Sep 04
[print link all ]
A mysterious software fault in the new guidance computer of the Soyuz TMA-1 spacecraft was the cause of the high-anxiety off-course landing over the weekend, according to NASA sources.’ Which is why I will never trust the Strategic Defence Initiative - the star wars project. It only takes one line of mistyped code in what will always be a beta release. www.msnbc.com/news/909677.asp

XP style process and battle-fields   25 Sep 04
[print link all ]
Not that I want to promote war in any way, but these posts in the extremeprogramming-ML made me smile:

Phlip:

 During the planning game, you review last week's
 finished stories, and they inspire you to write some
 new cards, to edit some cards, and to toss some cards.
 Then you (the Onsite Customer) re-sort all the cards,
 and draw off the top batch for the next week.

 But another input into this system that affects the
 planning game - the competition.

 The USA occupied Iraq using an effective new battle
 technique. In traditional advances, you send a
 diversionary force against one of your enemies flanks,
 draw them that way, then send your main force against
 their other flank.

 Modern soldiers, with cell-phones and such, follow a
 more agile approach. You simply send two forks of your
 forces, probing towards both flanks. You use sensitive
 algorithms to detect the defending commander's
 decision which flank to defend. If you can rapidly
 turn one advance into the diversion, and the other
 into the main attack, you will soon collapse the
 opposition's ability to effectively make decisions.

 Agile onsite customers can play this card too. If you
 detect your competition's marching orders, in
 real-time (using either sensitive algorithms,
 good-old-fashioned industrial espionage, or just
 reading their self-congratulatory Web site), you can
 then request iteration features which provide the
 minimum amount of code needed to start your project
 towards blocking the competition's advance. This
 technique will, again, collapse the competition's
 ability to make decisions.

 Or convince them to hire an XP coach or three. So
 either way it's a win-win-win for us! ;-)

Steven’s reply: :-)

 Or you could follow the agile strategy that Microsoft
 pioneered - announcing products with your competitions'
 features before you even start implementing them.

Industrial waste - Process waste   25 Sep 04
[print link all ]
(Source: Phlip posted this to the XP list) "Industrial waste" is when a factory produces something it shouldn’t. Heat, smoke, extra chemicals. This is wasteful because it represents energy and materials that went into the factory, but did not come out as product.

"Process waste" is the behaviors that don’t produce a working product. The biggest waste in the industry today is "programming in the debugger". This is so endemic nobody even calls it waste. Our vendors work very hard to supply us with advanced debuggers, so we can merrily cause problems and then fix them, instead of preventing problems.

Another big waste is delayed integration. Some shops account for how many modules we must write, then specify the modules’ interfaces, and tell each programmer to write a module separate from the others. Then at the end of this cycle the programmers start trying to integrate. They might not even have build scripts to plug the modules together; they might find themselves manually integrating by clicking on the user interface to an IDE.

Delayed integration costs some orders of magnitude more than the cumulative cost of continuous integration does.

Get ahead of these problems. Write tests first, constantly review code, don’t own code, and integrate continuously. Write and maintain build scripts that support all these behaviors seamlessly.

Don’t delay surprises. If "our product has an installer" appears as a motherhood story, integrate the installation system early, and test it every day. Don’t wait for the last iteration.

The ideal is that the last week before a big release should look and feel just like any other.

Lean Manufacturing and Software   25 Sep 04
[print link all ]
(Source: Bill Wake) Is writing software more like manufacturing cookies or more like designing cookie cutters? It’s easy to wish that we could develop software like a factory stamps out cookies, but software has a design or creation element that is missing in that analogy.

But there are similarities: software is developed in stages, it is created in a process amenable to change, and it’s developed in a team. Lean manufacturing is a different approach than a traditional assembly line, and offers some lessons for software development. xp123.com/xplor/xp0312/index.shtml

What's the Second Directive?   25 Sep 04
[print link all ]
(Source: Ron Jeffries, aka Mr. XP) I’m been struggling for years with notions like having empathy with our mistakes, Kerth’s Prime Directive, and the like. Springing from a couple of notes on the extremeprogramming group, and a blog entry from Dale Emery, here’s my latest rant. xprogramming.com/xpmag/jatPrimeThis.htm

The Best and Worst of Statistical Graphics   25 Sep 04
[print link all ]
This Gallery of Data Visualization displays some examples of the Best and Worst of Statistical Graphics, with the view that the contrast may be useful, inform current practice, and provide some pointers to both historical and current work. We go from what is arguably the best statistical graphic ever drawn, to the current record-holder for the worst. link

[XP] Alistair interview on IT Conversations   25 Sep 04
[print link all ]
I was just sent the link for an online interview about agile development. The interview was done last month, it got posted yesterday. You don’t have to register to listen

link

Extreme Leadership   25 Sep 04
[print link all ]
An interesting read. Patterns of extreme Leadership by Kent Beck. pdf

Selling XP   25 Sep 04
[print link all ]
Alistair Cockburn has a very interesting paper on "The Costs and Benefits of Pair Programming". Of course Pair Programming is not the only "extreme" aspect of extreme programming but Alistair’s article contains some very interesting metrics (seems a lot less "extreme" after reading Alistair’s article). members.aol.com/humansandt/papers/pairprogrammingcostbene/pairprogrammingcostbene.htm

The Irony of Extreme Programming   25 Sep 04
[print link all ]
(Source: Ron Jeffries) The irony of Extreme Programming is that while detractors continue to explain why it cannot work, software developers all over the world are having success with it. www.xprogramming.com/xpmag/jatIronyOfXP.htm

"Example instead of test-first"   25 Sep 04
[print link all ]
Just now seen on the pragprog-list by Massimiliano Mirra: Many have a problem with ``test-first’’ because they can’t see how a test can come before the thing to be tested even exists. So I just replace the word ``test’’ with ``example’’, and tell the student that ``one great thing is that not only examples do tell you where to go with your program, but if you shape them in a certain way, they’ll also serve as tests later’.

Example isn’t another way to teach, it is the only way to teach.

   --Albert Einstei

Working on a book: Driving Software Projects with Examples   25 Sep 04
[print link all ]
Brian Marick posted this to agile-testing.

I’ve started work on a book, tentatively titled _Driving Projects with Examples: a Handbook for Agile Teams_. All that’s done to date is the Preface.

Two years ago, this would have been about driving projects with tests, but I think the role of examples in projects is larger than that. Also, examples fit more obviously into the whole "individuals and interactions over processes and tools" thing. Examples are something people use to explain themselves to each other. Conversations and learning are more obviously part of the picture.

Because I’m so hot on examples, I’ve put the draft book on a new site, exampler.com. Here’s the book: <www.exampler.com/book/>

(And, rather than "QA", "tester", or even "ECaBian", "exampler" might be a good name for those people on an Agile project that exhibit certain traits more strongly than other team members.)

Some of you practice the style of development I’m documenting - or variants of it. If you do, I want to talk to you, be it on the phone, or via emai, or in person. (I am budgeting travel money to visit worthy sites.) I’m serious about the "handbook" in the title: I want to fill it with tricks, tips, techniques, and stories. The more people I gather them from, the better the book will be.

 

Powered by Rublog