Author Archives: Tom Vaughan
Heisenberg’s Key Performance Indicators
How do you objectively measure the progress of a software engineering team from iteration to iteration when they are so many variables (human and otherwise)?
The Standing Desk
Dave, My OPOWER colleague switched from a normal office desk & chair situation to a standing desk more than a year ago and ever since, I’d been considering doing the same. For my entire programming career, I’ve had terrible posture in my chair and tended to do “the maxell pose” where my wrists are resting [...]
Cinco de Failure
If you’ve ever seen Yoni or Jeff K, you would know that I have absolutely no chance of competing in a facial-hair competition with them on raw natural talent. Thus, for the 2010 Cinco de Mustache event, I felt compelled to compete on ingenuity and engineering.
To the disgust of myself and my wife, I [...]
Alfresco 3.3 Lunch & Learn
OPOWER attended the Reston, VA "Alfresco 3.3 lunch & learn" seminar this week, hosted by the generous folks over at SiteWorx. Alfresco 3.3 looks support the CMIS 1.0 spec and head further into the ECM space.
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.
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
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.
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.
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?
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!
Maven-izing Google’s Data Client Java Library