Author Archives: Tom Vaughan

The Birth of OMAMA

Over the last 6 months, I have been slowly filling up the empty wall spaces in the engineering department with various posters of Nickleback, Justin Bieber and Edward from Twilight. These posters tended to get relocated and repositioned behind the desks of engineers who had recently broken the build or accidentally replied-to-all on an email [...]

Spring Configuration and Library Decomposition

Opower’s evolved rapidly in the last 24 months and nowhere is that more true than in our code base.  Two years ago we had 2 flagship applications that shared model objects, DAOs and a handful of utility classes with one common JAR.  Since then we’ve expanded to the point where (not even counting all the [...]

Maven-izing Google’s Data Client Java Library

Quick and dirty perl script for mvn deploy:deploy-file for the 40+ JARs google ships in it java client bundle.

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
We started to notice a couple things that have caused us to try out a new schedule in our upcoming 6th iteration.

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). duckhuntWell, 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.