Category Archives: work

On this page:

Getting ready for my next experiment!


It’s been four years of awesomeness at IBM. I’ve:

  • helped companies and communities collaborate
  • facilitated brainstorming workshops with executives from leading companies
  • built web apps in Drupal and Ruby on Rails
  • created popular tools for community newsletters and analyses
  • drawn comics that made people smile across IBM, and
  • learned from and shared with people around the world.

It totally rocked. Thank you!

Mid-February 2012, I’ll be on to my next experiment. I want to help people save time and make better decisions. Let’s see how we can make that a sustainable business!

I’m looking forward to learning more about business, and sharing the adventure with you. =)

Stay in touch!

Stay tuned!

Work, extracurriculars, and measuring time: an epiphany

I remember now why I had stopped tracking time before. Breaking things down at the project level made me feel weird about my extracurricular interests at IBM, like the community toolkit and now the IBM comics. On one hand, I wanted to support our utilization goals and claim time as accurately as possible. On the other hand, I didn’t want to give up personal time, especially as I could use it to build more functionality into Quantified Awesome. I felt conflicted. I found myself slipping from the feeling of an abundance of time to the feeling of a scarcity of it, to be carefully portioned out among too many demands.

Today, brainstorming how to address my worst-case scenario considerations, I realized something: I’d been thinking about it the wrong way. It’s not extra time I’m donating or a hobby I might outgrow. It’s a live opportunity to test ideas with a massive, built-in internal market.

Comics on the intranet homepage? A fledgling artist couldn’t buy that kind of space. A community analysis tool that other people have come to rely on? Good practice in supporting disparate users and scaling up value.

No money might change hands, but a steady stream of thank-you notes helps my manager argue for a top rating, which often translates into a bonus.

So now I’ve got a couple of ways to rethink how this fits into my life.

I can promote these extracurriculars from the category “Work – Other” to “Discretionary – Other” or something similar, and budget myself four or five hours a week. It’s not work, it’s learning.

Alternatively, I can keep it under “Work – Other” and add an effective 10% overhead to my billable work. Many people have told me that I’m a fast developer, anyway, so scaling my output down to that of a somewhat above average developer will still mean that we do good stuff. The cognitive surplus goes into process improvement, self-development, and happiness, which is definitely worthwhile. I get stressed when I feel like I’m letting my other priorities slip, so spending time on them is important too.

These extracurricular interests can create a lot of value. I should adjust my measurements accordingly so that my measurements don’t lead to conflicting feelings.

How you measure affects how you manage.

Things I want to learn more about through work

Testing business assumptions: I like this definition from Eric Ries’ book, “The Lean Startup”:

A startup is a human institution designed to create a new product or service under conditions of extreme uncertainty.

I’ve come to realize that the most important part of this definition is what it omits. It says nothing about the size of the company, industry, or the sector of the economy. Anyone who is creating a new product or business under conditions of extreme uncertainty is an entrepreneur whether he or she knows it or not and whether working in a government agency, a venture-backed company, nonprofit, or decidedly for-profit company with financial investors.

I like the idea of treating work as an experiment that reduces uncertainty and helps us do something better. I want to get better at bringing out those uncertainties and planning how to resolve them.

Visualizing data and making better decisions: I like collecting data, bringing them together in dashboards, and figuring out visualizations that can help people make better decisions. Last year, I implemented a visualization for a Drupal project so that investors could see where the gaps in funding were. I’m working on some visualizations for my personal dashboard. I think it’s useful to be able to help people find patterns while avoiding false positives or visual noise.

Building systems that fit the way people need to work: I like the way we tailored the last project based on constant client feedback. I like saving people time by building systems that help them work more effectively instead of requiring a lot of repetitive work.


Making good progress on theming the site

The Drupal site I’m working on is slowly coming together. I still feel an itch to redo the big, hardcoded structures that a previous developer left behind, but I’m focusing on all the functional pieces first. Then I’ll do the styling and spacing tweaks, and then I’ll think of making that structure more flexible.

I like working with other people’s code, even if the code occasionally makes me go “Huh? What were they thinking?” It’s good to be able to work with other people’s structures and gradually immerse yourself in a project. Otherwise, you’d be limited to just the things you can build from scratch.

We’re still quite a bit away from having something that would be ready for launch, but we’re making progress. I don’t know if I’ll be on this project through launch, but it would be nice.

I like launches. =) I want to have more of them.

Figuring out my CSS workflow

Yesterday’s coding session with CSS was fantastic. I used WinWarden to make my browser translucent, and I overlaid it on my reference documents. This made it a breeze to check alignment, because I didn’t have to use any measuring tools. I used Chrome’s developer tools to manually adjust the stylesheets until things looked right, adding display: block to the parts I was working with. Then I copied the numbers into my SASS file so that it could generate the CSS.

I also found a GIMP script for exporting all layers as separate images. I had to rename a few layers, but the results made it much easier to flip through images instead of toggling visibility trying to find the logos I needed. (It turned out that the logos were not included, so I’ve asked the design firm to send them to me.)

I converted the complex front page into a Drupal panel layout, getting rid of thirteen regions that were cluttering up the main block management screen. This also makes it much easier to update the content, yay! I’m looking forward to converting other pages. The previous developer used multiple regions instead of controlling visibility through configuration, so there are a lot of templates and regions.

Dual-screen worked out great, too, although I still need to fiddle a little with my ergonomics to make sure everything works out.

I’m looking forward to making this even better. I’ve only got a few more weeks on this project, but I might take on more styling in the future if it turns out I can deal with the headaches associated with cross-browser styling.

After I get the rest of the basic requirements in place, I want to automate testing and screenshots, particularly for regression-checking and for cross-browser compatibility. Selenium and WebDriver look like the way to go if I want to simulate hover events. If I can’t figure out how to use WebDriver within the time I’ll set aside for learning this, I can use JQuery to fake toggling the classes. Automated screenshots + PDF Split and Merge + ImageMagick for compositing (maybe 50% opacity?) will make it easy to spot glaring errors.

That will have to wait for next week. In the meantime, there’s a three-day weekend ahead, so I’m going to make lots of progress on Quantified Awesome. Yay!

Getting ready for the next project

This project transition is smoother than the others. I’m joining another Drupal project right away. I’ve drafted estimates and documents of understanding for another Drupal project, and my manager is lining up some consulting for us to work on together. I’m not taking a vacation other than the statutory holidays. Two trips for my sister’s wedding took all of my vacation days! (Worth it, though.)

What’s working well about this transition:

  • Getting the agreements set up for my next project took much less time than I expected, even though it’s cross-border. It could be because I’m joining an existing project.
  • We’re winding down this project gracefully. It helps that we’ve focused on lower-risk items towards the end, and that we’ve scheduled in time for documentation. It also helps that we launched two weeks before project end. We’ve had time to deal with bugs and add features, and we can be more confident that the client’s set up for success.

I want to keep working on Rails at work, but I don’t think I’ll get any Rails projects in the pipeline any time soon. I’m sure the upcoming projects will be lots of fun too, though, and there are so many non-Rails techniques I want to improve on anyway. I’d like to learn how to use Selenium to test websites using multiple browsers, and I might get a chance to do that on this project. It would be good for me to learn more about consulting skills on other projects, and I’m definitely looking forward to taking advantage of my manager’s mentoring. I’ve got Quantified Awesome as a personal Rails project, and I might tinker around with Android development as well.

Now that we’re not scrambling to squeeze in as much as we can before the project end date, I’m looking forward to normal hours. More space for extracurriculars!