Dead last, after the headline act, and after Joel Spolsky told everyone to go home, I did a lightning talk at DC’s recent DevDays (A StackOverflow production) on how we have used process metrics from our bug tracker to improve our process.
Tweaking the Agile Calendar
For the first five iterations, the dev team had been following this schedule:
- Iteration N, Week 1 = Design for iteration N and 2nd week of QA for iteration N-1
- Iteration N, Week 2 = Development
- Iteration N, Week 3 = Development
- Iteration N, Week 4 = 1st week of QA for iteration N
- Iteration N, Week 5 / Iteration N +1, Week 1 = 2nd week of QA for iteration N, design for iteration N + 1
We started to notice a couple things that have caused us to try out a new schedule in our upcoming 6th iteration.
Continue reading ...
Agile impressions, 5 iterations in…
I’m assuming from the amount of hype out there that if a development team isn’t using “Agile” right now, they probably feel like the one kid on the block who didn’t have a Nintendo (with the Duck Hunt option, of course).
Well, we here at OPOWER loved our Duck Hunt, so we’ve been attempting to use “Agile” for the last 5 months or so. Agile means a lot of things to a lot of people, so I’ll spell out what it means for us and then reflect on some of the pros, cons, and room-for-improvement in our practice.
Continue reading ...
Best javadoc ever
/** * Whatever to satisfy whatever. * * @author dave.copeland */
When is a null not a null?
tl/dr: Don’t have a non-null object’s .toString() display “null”. It’s confusing and not helpful when looking at object states in IDE debuggers.
I recently converted the attribute of our Person POJO that stored a user’s email address from a java.lang.String to a javax.mail.InternetAddress. Call it not enough testing or lack of imagination, but I introduced a Null Pointer Exception in a back-office web flow where a new user is created for our customer service application. When a new CSR account is created and the email address is left blank, an NPE gets thrown up. Embarrassing, but easy to fix, right?
Continue reading ...
Move meetings to move developers
Here’s the scenario:
You cruise in to the office at 8:45, get your coffee, check the reddits, and ignore that email from your parents asking if their computer picked up a virus because McAfee won’t stop popping up a tooltray icon helpfully informing them that they’re totally vulnerable. Right around 9:15, you get motivated to tackle that 2 point user story for the current iteration.
You head over to the wiki, check out the specs for the requirement, find out what the Trac ticket number is and see if there are any comments with last minute advice or dependencies. None? Good. . . let’s get started!
Continue reading ...
A year-long analysis of snack consumption
Consistently, month after month, the chips that get left in the giant ‘box-o-free-snacks’ are:

Nacho Cheese Doritos.
Honorable Mentions: Fritos and Cool Ranch Doritos.…
Continue reading ...
New Developer Law
NEW LAW FOR DEVELOPERS:
If you throw an exception about some connection being refused, you’d better damn well put what connection you were attempting to make in the exception message.
What inspired this law? Thanks for asking.
Continue reading ...
Moving Day
We officially out-grew our Rosslyn space today and moved in to a new space right next to the Court House metro stop.
Continue reading ...