How Many Babies?

This is one of those questions that gets under a programer’s skin: Supposed a society where people prefer boys. They will keep having children until they get a boy and then stop. What will be the percentage of boys to girls in this society? Programers Like to Complicate Things: I immediately started drawing out trees with…

Jira: Epics, Sub-Epics, and Story Points

I love Jira, probably more than I should, but the difficulty in tracking progress and breaking down work to mirror my teams kills me. The new Greenhopper 6.2 and the “edit in place” fields made a big difference, but I still needed a couple of things: A way to groups a bunch of Epics together…

How Software Estimates Fail Part 4: Lots of Little Estimates

Last week we talked about how easily estimates go wrong when you try to make giant ones up front, but they can also fail easily when you try to add up lots of small ones. Once again, it comes down to simple math and how optimistic we are about our planning. If I were to…

How Software Estimates Fail Part 3: The Grand Estimate

Classic project planning work backwards, you pick a large goal that will propel the business forward and add the right mix of enough man power and/or time to hit your goals. Make millions. Retire. If it were that simple, none of us would be dialing into 9am scrum meetings.There is a reason why when people…

How Software Estimates Fail Part 2: Estimating Once

This is the “Cone of Uncertainty.” The numbers behind the cone are based upon surveys of thousands of software projects and the differences between their estimated and actual schedules. As you travel into the cone, you are travelling further into the project’s timeline. Estimates made later in a project are base upon more data and…

How Software Estimates Fails Part 1: What Is an Estimate Anyways?

Nothing dooms a project faster than its first estimate. From the fateful moment that someone even hints at one; the launch date, budget and staffing all seem to be broadcast to every possible stakeholder and locked down in an iron clad contract. This kind of behavior is why so many gun-shy developers just stopped giving estimates all…

Stupid sed Tricks: LDAP

Spent too many minutes doing a simple task today: Take groups from LDAP and tell me who in in group 1 but not group 2. Apache’s Directory Studio is essential if you do a lot of LDAP work. It makes it easy to navigate and peek around. With this I was able to dump two files, each listing…

Why You No Pattern?

Anyone who has plumbed through a Servlet container like Tomcat will recognize the “pattern” above. Not just Servlet containers, many popular Java service provider frameworks implement services the same way. I end up explaining this “pattern” to people all the time, but I can’t find a specific pattern names to which to them. Then again,…

What’s Tron with Software

Why are programs eating?!? You must acquit. I was lucky to attend a sold out showing of the original Tron at the Santa Monica Aero following by a talk by some of the key people behind the movie. Anyone who has seen Tron vs. Tron Legacy knows that we are talking about very different movies…

Agile is Dead

To be honest, I never though much of Agile to begin with. By the time that silver bullet was shot, I was already a cynical veteran of the many buzzwords prior. Agile, like many of the other buzz phrases: Service Oriented Architecture, Extreme Programming, Internet Time, Web 2.0, etc; they are all just the endless…

Exceptional Exceptions

In Java 1.4, java.lang.Throwable finally allowed for nested Throwables. This may not seem like a big breakthrough, but in a world of n-tier application, low level exceptions from driver objects are not appropriate to return to end users. Also, loosing the root cause introduced its own set of problems. In a Java 1.3 world, we…