By Peter Bell

XP 2008 - When Six Conferences Just Aren't Enough!

I'm presenting at or attending six conferences in May/June, but I was talking with Tom Poppendieck the other night after Mary's talk @ Google in NYC. I got the impression that the XP conference in Limerick Ireland was just the conference I needed to hang out with the people who "really get" Agile/Lean/XP.

Checking my diary I saw I would just be finished with Scotch on the Rocks, and could just fit the XP conference in before flying back to the US to present at CF United.

I'm really excited about the conference. There is an excellent line up, and I really feel that Agile/Lean/XP/SCRUM along with Metaprogramming/Language Oriented Programming/Domain Specific Modeling is one of the best ways that developers can maximize the business value they can produce.

Looking forwards to lots of learning this year!

Pair Programming with Ben for SCFUG

As reported on Stephen Moretti's blog, next Thursday at 3pm EST (8pm British Summer Time) I'll be pair programming using TDD with Ben Nadel for the SCFUG.

I paired with Ben last night and thoroughly enjoyed the process. It makes it much easier to stick with the TDD when pairing and one of my goals this year is to pair with a number of good programmers as I think you can learn a great deal by watching how other people approach projects.

Anyway, check out the announcement and sign up for the fun!

Pair Programming With Ben Nadel

Neither Ben nor I have ever paired and neither of us have much experience with Test Driven Development, but last night we spent a couple of hours pair programming and developing a new BaseObject for a project using TDD in MX Unit . . .

[More]

It's Not About the Language, Stupid

A great developer isn't the one with the deepest knowledge of their language of choice. Most of the time (and there are exceptions when you need the deployment demon or the garbage collection guru) the best developer is the one that has the best understanding of all of the pieces of creating great software. That's why approaches like Domain Driven Design are so valuable and why project management approaches like Scrum and engineering practices as described in XP are so crucial.

It's why I'm particularly excited to see that Lean software pioneers Mary and Tom Poppendieck will be giving a presentation in NYC next week. If you're interested in the craft of software and would like to meet like minded people from different language communities, I think these kind of meetings are an amazing opportunity to become a better developer - irrespective of the language you happen to develop in.

Comment on the previous posting if yu can make the meeting in NYC next week. I think it's going to be a memorable event.

Poppendiecks giving free talk on Lean in NYC

Mary and Tom Poppendieck are going to be giving a free talk on May 6th in NYC. If you're interested, post a comment below and I'll try to get you out an invite.

For anyone who has read their books, this is an amazing chance to learn more about lean software development from the pioneers in the field. And it's free! If you are in town or can make it to NYC, just comment below and I'll try to get you an invite.

For anyone interested, they will also be teaching a two day course.

Kent Beck on YAGNI

Seen in the extreme programming group on Yahoo!

"A big part of the problem with YAGNI is that it is expressed indirectly. That was a communication style I was enamored of ten years ago that I found caused lots of problems. Today I would probably just say it directly, "It seems to me that you have reached a point where more experience would be better than more speculation. I encourage you to just implement X1 and see how it goes. You might want a simple little data storage abstraction. That will simplify the code in X1 and make it easier to move to a database later."

"Here's what I do: consider X2 a little, but try not to get so caught up in it that I freeze. As soon as I hit unknowns about X2 or X1, I stop thinking about X2 because I have something more important to learn. That's what I am getting at with YAGNI--breaking the cycle of fear and procrastination that I tend to fall into when programming. I use it with people who come to me for help when I think they have fallen into that same cycle. As I mentioned in a previous post, there is quite an opposite intervention, "Have you thought about..." that I use when I see an important issue, short- or long-term, that isn't being considered."

Fixed Bid vs. Agile

It was both an interesting and frustrating experience reading Mike Cohn's excellent User Stories Applied tonight. On the one hand it's the tightest, cleanest summary of how to work with user stories that I've ever read. Lots of great distinctions in a no-nonsense, readable and enjoyable book by someone who clearly has to deal with the same issues we all do on a daily basis. (Go get a copy - it really is worth it.)

On the other hand, we're still left with this huge gap. On the one hand pretty much all of the smartest developers I know concede there is simply no way to accurately predict the effort required to complete a non-trivial software project. That maps exactly with my experience. While I continue to remove variables, tighten my contracts, more carefully set expectations and develop systems to cut the cost of changes, I still have issues accurately estimating projects - even after completing over 400 over the last ten years.

On the other hand not only do all of my clients want a fixed bid/fixed scope contract, but most all of the people who I'm bidding against will provide one.

Much of this is a function of education and selecting better customers (both of which I'm working on) and techniques like Software Product Lines can be used to manage the risk in providing a fixed bid on projects within known domains (as they can radically cut the cost of development and change, provide more detailed default documentation, make many tasks configuration, increase the profit margin of development and so on). That said, it can still be frustrating trying to balance the recommended approaches in much of the XP and Agile literature with the expectations of many of the smaller clients I still work with and the programming shops who are more than willing to provide fixed price quotes.

I guess it came to a head when I read part IV of the book which is a worked example for a simple e-commerce store with a basic catalog, cart, checkout, and wish list along with some basic my account and reporting features. The estimate was something like 50 ideal days with the programmers estimating one ideal day per 2-3 actual work days (which I get).

So assuming $80/hr, 8 hr days and 1 ideal day per 2.5 programmer days that is a billable cost of $640 x 50 x 2.5 or $80,000 excluding sales effort, project management, support, training, look and feel or content entry. It would depend on how you did those other items, but that wouldn't leave much change from $120-$150k for a simple commerce site which (even if I had to code from scratch) I'd see as a 2-3 man week project at the most (programming only).

What are your thoughts? Do you provide fixed bids? If so, how do you handle things like "dark matter", rounds of revisions and unreasonable clients? Do you sell agile/iterative development successfully to unsophisticated business owners when competing against fixed bid/scope quotes? How? What are the benefits that they buy?

And would it take you 50 ideal days to build out a simple e-commerce system or do we need to introduce these guys to a more productive programming language fast :->

Any input appreciated.

Some More Thoughts on Unfuddled

Well, I've been playing with Unfuddled for a while now as I work on tasks, add notebooks for provisional user stories. I've got a few more things for my wishlist . . .

[More]

Trying Unfuddle

I'm in the market for some project management software. I need something to manage a single dev (me) on small 100-300 hour projects with stories, time tracking, some kind of widget or IDE integration, a simple wiki or cms for sharing notes and svn integration (see my previous article for the detailed requirements.) I'm not sure Unfuddled is exactly what I'm looking for. I don't like the lack of stories (I can only roll up tasks by milestones so I need to treat each story as a milestone which is not really ideal), but it is there, it looks like it should work, and it's quick to get started with. And the corporate version which includes time tracking and unlimited projects is $49/mo, so that's about where I wanted to be financially. Anyhow, I decided to give it a go for this project. Here's my experience . . .

[More]

Selecting Project Management Software

These days I'm starting to take on more consulting projects so in addition to the generated sites which typically only take a few man hours, I can get to play with some more interesting/custom projects which typically run 100-300 man hours (if you have any fun ones you might want some help with next year, feel free to comment and I'll email you offline!). It is great because I can still use the SPL to create well architected apps more quickly than hand coding, but I also get to write some more custom functionality and to spend the time to create a really great solution. However, I need some project management software to help, so I did a quick review of some of the alternatives - from Trac and LightHouse to Mingle and Rally Software. Here's how it turned out . . .

[More]

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.005.