Posts tagged ‘quotes’

Quote of the Day – Kent Beck on Responsible Development

Heard on the XP group:

Responsible Development is the style of development I aspire to now. It can be summarized by answering the question, “How would I develop if it was my money?” I’m amazed how many theoretical arguments evaporate when faced with this question.

Responsible Development shares many practices with XP but the roots are different. Responsible Development’s values are honesty, transparency, accountability, and responsibility. These lead me to pairing, test-first, incremental design, continuous integration, and so on because they support the values.

Quote of the Day – John A. De Goes on Teams

Overheard on the XP list, John A De Goes describing his attitude towards teams and processes.

There’s a growing realization that companies, organizations, and teams, they’re all comprised of humans, and being a human is radically different than being a machine. You can’t engineer something comprised of humans — you have to grow it, nourish it, cultivate it. You can fix a broken machine by following a recipe, but you can’t fix a group of people that way. Prescriptions for success amount to nothing, because they ignore the human component, which, when all is said and done, is the most significant factor determining success — development methodology be damned.

Current thoughts on Estimation and Planning

Several leaders in their fields have been giving a great deal of thought lately to the state of planning and estimation, and how it relates to agile and lean projects.

Alistair Cockburn said:

The purpose of planning to be able to answer the question “With what we NOW know, what will the most useful system we can create look like on THAT date?

Glen Alleman said:

The primary function of project management is to ensure that the project is implemented to meet the established budget, schedule, safety, and performance requirements to satisfy its objectives.

Corey Ladas said:

When we agree to take on a work request, we intend to deliver it within n days

There seems to be a general idea that the concepts of Lean can be applied very well to the process of software development, but it leaves unanswered the question of how to plan a long term project.

Agile and Lean both take the view that we will apply some fixed team size to the software, and we will deliver as fast as possible, and allow as much flexibility as possible to the client’s ability to adjust the course (scope) of the project. This is undeniably the current most efficient way to produce software, but that does not mean that it is always the right choice.

The core of the problem is that detailed estimation is a wasteful effort – it does not add business value. So we can deliver more efficiently if we do not estimate. But we have to balance that against the requirements of the business, which has some objective that they are hoping to meet by some date. As the implementors of the solution, we are obligated to be able to tell the business the “when” of the delivery, and they are obligated to tell us the “what”. Unfortunately, the exact “what” always changes. So even if we estimate the “when”, we can very easily be wrong. Its a vicious circle.

In theory, Agile handles long term estimation better than Lean. This is because teams can estimate backlogs at a high level, months (but not years) in advance. Lean is very “just-in-time”, so it can only answer the question at the last instant. The best “lean” answer so far is that we can offer smaller commitments to minimal marketable features. That is, basically what the quote (above) is from Corey.

Neither Lean nor Agile answers the problem of the longer term, more complex project with multiple groups and critical paths and a well-defined scope. The scope is the primary problem – Lean and Agile will deliver faster, but they are not willing to tell the client what he wants to hear – that the particular scope will be completed 2 years from today. They can still give some very attractive answers though – Alistair Cockburn has a list on his wiki.

My conclusion? There is no question in my mind that traditional planned projects are suboptimal, but for now, they are still appropriate for many situations. First though, I would try to sell the client on one of the approaches from Alistair’s list – if they are willing to define what they want in a way that is compatible with Agile or Lean, then we can give them the result for much cheaper, or (more often) a better result for the same price.

Quote of the Day – TFS vs SVN

Heard on the altdotnet group. (SVN = Subversion, TFS = Team Foundation Server, both of which are primarily source control systems):

Oh, and as someone who is doing a lot with both SVN and TFS recently. I would trust SVN much more than TFS.

SVN make me think: Wow, someone special has thought about doing this.
TFS make me think: Wow, someone… special has thought about doing this.

- Ayende Rahien (aka Oren)

Quote of the day – Chris Wheeler on Values

Chris Wheeler on the Extreme Programming (XP) group:

I think values are important, but I’m almost certain I could derive XP’s practices from Peace,Love, and Understanding as easily as they have been derived from the values that currently undergird them.

Incidentally, the XP group is *very* high volume. Its hard to keep up, but its fun because there are so many names that I recognize from books and blogs – always some interesting discussion going on.

Quote of the day – Kent Beck on defining XP

From Kent Beck on the XP yahoo group (emphasis mine):

XP is not defined by its practices. It is about values, out of which flow principles, out of which flow practices. Enough of software development is similar enough that, even in different circumstances, the practices derived from the same values and principles end up looking similar. Different values, different principles and you end up with different practices. They might still produce valuable software, but they wouldn’t be XP.

Matt Blodgett’s First Law of Software Development

See Matt Blodgett’s First Law of Software Development

A development process that involves any amount of tedium will eventually be done poorly or not at all.

I like that. To me, it is yet another argument for DRY (Don’t Repeat Yourself), which I consider to be the most important aspect of long term software quality.

If you are doing DRY, then you are not repeating yourself. Therefore, you are doing the least amount that you can in order to solve the problem. Any tedium is thus inherent in the problem, and could not be avoided.

(Of course, if you find or invent the right tool, you can also mitigate the remaining tedium. For example, using a diagramming tool to draw your database relationships rather than typing them in XML or SQL).

Favorite Quote of the Day

From Scott Bellware to Phil Haack on the altnet mailing list:

What difference does that make? Between you, me, the lamp post, and a couple million Microsoft developers, CTP usually means that Microsoft is open to responding to feedback that validates the directions that it has already committed to.

Blogger is finished screwing with me

My last post was almost a year ago…

The reason for that was that for a while now Google’s blogger has been screwing with me – ever since they started the beta blogger service. The short version is that it was too much trouble to login to make posts. Now however, they have gone out of beta, and I can actually login again! Woohoo :)

The new interface is much the same, with some minor additions, such as tag support and integrated login with my Google (g-mail) account. There’s more, but I couldn’t find a link to a simple “new features” page.

(In unrelated news) I found a nice quote today:

“In preparing for battle I have always found that plans are useless, but planning is indispensable.” – Dwight D Eisenhower

Sort of relevant to Agile software development. We like to plan, but we are not bound by the plan as we would be in the older waterfall model.