Category Archives: work

On this page:
  • Pre-experiment potluck
  • Bridging from intrapreneurship
  • Notes from my exit interview with IBM
  • Squeezing another project in
  • Mapping out what I’ve learned at IBM
  • My CSS theming setup

Pre-experiment potluck

Today was my pre-experiment potluck, organized by Jennifer Nolan. I brought cookies, she brought cupcakes (which she had frosted with flowers), and other coworkers brought food. A few former IBMers made it in, too, and it was great to reconnect with them. Another milestone in my separation from IBM and adventure into entrepreneurship!

When we were planning this, Jen suggested a potluck (more chatting – great idea!). I suggested that we call it a pre-experiment potluck instead of a goodbye lunch. I like the positive approach to the idea. IBM’s been wonderful, and now I want to experiment with ways to build value. Consulting and coding are cool. What else is out there? Hence, experiment!

Anyway, I spent the rest of the afternoon on a bit of a sugar buzz. =)

Five days to go before I start the next chapter in my life. I’ve been braindumping Drupal development and theming tips on Regan Yuen, who’s taking over one of my projects (and maybe another). In the gaps between questions, I write stories I remember from work, post testimonials on LinkedIn, and tidy up whatever else I can before I leave.

It turns out that leaving isn’t actually that scary. =)

Bridging from intrapreneurship

One week to go before I leave IBM and experiment with building something on my own. I realize that I’m drawn to something familiar about this experiment. It’s not freelancing that interests me, although that seems to be a decent way to create value and make money. It’s entrepreneurship. Looking back, I can see how I’ve experimented with it before, and I want to see if I can make it work outside too.

I started with my blog posts, presentations, shared files, and wiki pages. I found out that if I invested a little time into sharing what I knew, people could learn on their own, even while I slept. For fun, I added metrics to my yearly business results: how many people had viewed my presentations, how many people had downloaded my files. On Slideshare, my presentations have been viewed more than 400,000 times. (Holy cow.) I did some back-of-the-envelope calculations of my ROI, considering the cost of my time and the probable value received by others, considering the thank-you notes and links I’d seen. The numbers were pretty good.

I like writing code and I hate doing repetitive tasks, so I wrote myself a few timesavers that turned out to be popular. As part of a consulting engagement, I needed to analyze the forum posts in a community, so I wrote a tool that extracted the information from the Lotus Connections ATOM feeds. This grew into the Community Toolkit, which eventually helped hundreds of community leaders create newsletters of updated content and export information from their communities.

I wanted to send personalized thank-you notes to people who participated in these community-based brainstorming sessions, so I wrote a mail merge script for Lotus Notes. I blogged about it, and it turned out to be really useful for other people too.

So I guess I’ve had some experience in creating value outside the direct equation of time = money. This experiment, then, is about figuring out if I can do that for non-IBMers, and if I can make a good living and a good life along the way.

Notes from my exit interview with IBM

I had my exit interview yesterday. It was more of a follow-up, as I had found a list of common exit interview questions, drafted a blog post with my answers, and sent it to Joyce Wan (my interviewer) to see if there was anything sensitive that I shouldn’t share. She was amazed by the feedback. After consulting with the HR partner, she told me that I could definitely share it with my manager, and it was up to my discretion whether I shared it on my blog.

The exit interview was straightforward. Joyce had mapped my e-mailed answers onto the standard questionnaire, so we spent the time on follow-up questions and other things I hadn’t covered. She thanked me for the honesty of my feedback and reassured me that whatever she would keep whatever I said confidential. I told her about what an awesome time I’ve had at IBM, and that it was okay to share my feedback.

There were a few questions about compensation. I told Joyce that I was happy with what I had earned at IBM, and the intangible value of working with the company was amazing. Besides, compared with the median salaries for people my age in Canada, in one of the toughest times in recent history… we did pretty darn well. We chatted about my plans, her own experience of leaving and returning to the company, and about the steps in separation.

Here are my answers to typical exit interview questions, fleshed out some more.

1. Why have you decided to leave the company?

(My “elevator summary” of why I want to leave: I want to experiment with entrepreneurship pre-kids rather than post-kids. At this, every person I talk to nods and tells me it’s an excellent idea.)

I want to experiment with business. I’ve read so much about entrepreneurship and freelancing. I’ve talked to so many people about their experiences. Over the past four years, I’ve applied many ideas I’ve learned inside the company. I’ve looked for internal ways to create scalable value, like the Community Toolkit. I’ve loved the rewards of thanks, recognition, ideas, and mentorship that I’ve received from people all over IBM. I want to see if I can create similar value outside.

2. Have you shared your concerns with anyone in the company prior to deciding to leave?

I love learning from people, and I’ve talked to many people both inside and outside the company. I was concerned about possibly reintegrating into IBM, but I talked to people who had joined or rejoined IBM after other jobs and even other careers, and they had good experiences to share. I was concerned about my ability to make it in the marketplace, but mentors and potential clients reassured me that my skills were much needed.

My main concern now is how to gracefully transition both my work responsibilities and all the wonderful things I’ve had the privilege of helping with at IBM – community toolkits and comics, analyses and initiatives.

3. Was a single event responsible for your decision to leave?

No. I’ve been interested in entrepreneurship and freelancing since I was in school. I also really loved the scale at which we get to work at IBM, and the wonderful learning opportunities it offers. The main reason I’m planning to experiment with entrepreneurship now instead of staying with IBM is that it’s easier to experiment with that before we have young children instead of after.

4. What does your new company offer that encouraged you to accept their offer and leave this company?

The chance to have my own company, to build things and fail and learn from them, and to do so with reasonable risks.

5. What do you value about the company?

I love what we work on at IBM and why we work on it. I’m constantly amazed at this living, breathing organization that works around the world to help our clients make their customers’ lives better. This is a company that helped put men on the moon. IBM invented so many things that transformed business.

I love the scale at which we work. I love the fact that I can help out with things that touch hundreds or thousands of people’s lives inside the company. I love the fact that we can work with all these big companies that touch millions of people.

I love the people we get to work with at IBM. I love the way you can find an expert on just about anything, and that you see people of so many walks of life and so many stages in their career. I love the gender balance and not feeling like I’m the only woman in the room. I love the way I’m surrounded by role models and inspiration, and that mentorship helps me reach for things beyond my grasp.

6. What did you dislike about the company?

I wish I could be in more than one place at the same time. There are lots of interesting opportunities, and I can’t help with all of them. But that’s not IBM, though, that’s me!

7. The quality of supervision is important to most people at work. Are you satisfied with the way you were supervised?

I have gotten along very well with both of my managers and with the rest of the management hierarchy. Both Robert Terpstra and Ted Tritchew have been great advocates, helping me navigate IBM and make the most of the opportunities here.

I have a deep respect for the managers, project managers, team leaders, and resource deployment managers with whom I’ve had the pleasure to work. They’ve helped keep a lot of potential headaches out of my way. They sometimes have to balance many conflicting demands, and I think they’ve done a good job at it.

8. Is there anything we can do to improve our management style and skill?

It would be fascinating to see how we can further streamline the miscellaneous work managers need to do. If we can pare the workload down to the essentials, then they’ll have more time for building relationships with both employees and clients. My managers have done a great job of this, but I hear that other people might not be as lucky.

9. What are your views about management and leadership, in general, in the company?

I’ve seen so many inspiring examples of leadership at all levels: the researcher who goes the extra mile to connect with students and industry colleagues, the consultant who shares his knowledge even without a billing code, the software developer who sees not just the widget she’s building but the reason why it matters. I like that about IBM.

Sometimes we trip. Like all companies, IBM is made up of humans. I believe most of our people want to do the best they can (or at least that’s true of everyone I’ve come across!). Sometimes it’s hard to do so under fear, uncertainty, doubt, or stress, but in general, they do. Sometimes short-term stresses make people forget to put in that extra effort to communicate their vision. It happens. As more people learn how to work with the structure and how to reshape it to make it better, I think IBM will do even better.

10. What did you like most about your job?

I loved working directly with clients, building systems that helped them save time and make a bigger difference. I also liked working with open source software and sharing as much as I could about what we were learning from these different projects.

11. What did you dislike about your job? What would you change about your job?

It’s a pity that I can’t easily experiment with entrepreneurship part-time, but I understand the reasons why the Business Conduct Guidelines avoid potential conflicts of interest. So I wouldn’t change that, although it would be interesting to find a structure that works. Maybe coming back in as a contractor for a few things? We’ll see!

12. Do you feel you had the resources and support necessary to accomplish your job? If not, what was missing?

Yup!

13. We try to be an employee-oriented company in which employees experience positive morale and motivation. What is your experience of employee morale and motivation in the company?

I think I’ve been the luckiest and the happiest IBMer I know, possibly even the happiest in the history of the company. Part of that comes from all the wonderful ways people reached out to me and helped me. Part of that comes from the things we get to work on and the difference we get to make. And yes, part of that comes from a conscious decision to remember that IBMers are human, so even if things get messed up or if things aren’t as well-communicated as they could be, I can still translate that into what people probably meant. (Handy skill. Everyone should learn it!)

14. Were your job responsibilities characterized correctly during the interview process and orientation?

Yes! Actually, since Robert Terpstra helped customize my first consulting position to fit my passions and interests, I think the interview job description was along the lines of “Be Sacha.” I’ve grown into even more capabilities, thanks to IBM.

15. Did you have clear goals and know what was expected of you in your job?

Absolutely.

16. Did you receive adequate feedback about your performance day-to-day and in the performance development planning process?

Yes! Both my managers can tell you that I talked to them about performance regularly, and planned my growth with a lot of help from them.

17. Did you clearly understand and feel a part of the accomplishment of the company mission and goals?

Totally. That’s because in addition to my GBS consulting work, I was connected with all these other groups and business units through my extracurricular interests. I felt part of Research’s explorations of social software and collaboration, part of SWG’s development of tools and business cases, part of CHQ’s campaigns and collaboration discussions, part of S&D’s strategy workshops. It was awesome.

18. Describe your experience of the company’s commitment to quality and customer service.

I’ve had the pleasure of working with people who helped delight clients. Sometimes we let internal considerations get in the way of really doing what’s best for our clients, but that’s part of the growing pains of any organization.

19. Did the management of the company care about and help you accomplish your personal and professional development and career goals?

Totally! I wish everyone had the kind of guidance and mentorship I enjoyed.

20. What would you recommend to help us create a better workplace?

I care about helping people share knowledge and collaborate more effectively. I’m looking forward to seeing how people take that further. I heard that our new CEO encouraged people to use Lotus Connections to share ideas on IBM’s strategies – exciting!

Out of self-interest, I’d love to see a more permeable interface, too. Make it easier for people to move in and out of IBM depending on what fits their life, or scale their work up and down as they want. Treat contractors and part-timers better. I hear sometimes it’s good, sometimes it’s a hassle, but I think we could be more consistently awesome for people to work with.

21. Do the policies and procedures of the company help to create a well-managed, consistent, and fair workplace in which expectations are clearly defined?

Yes, at least in my experience.

22. Describe the qualities and characteristics of the person who is most likely to succeed in this company.

In addition to all the usual stuff, like being passionate about client success, I’d suggest: Curiosity, compassion, deliberate optimism, and the ability to negotiate the system. That’s an interesting idea there, negotiating the system. Part of it means being able to navigate the system, but part of it also means tweaking the system.

23. What are the key qualities and skills we should seek in your replacement?

Many management books say that you should hire for passion and train for skills. Do that, and I’m sure you’ll find people who will be even better for IBM. I’d love to hear stories about their new adventures!

24. Do you have any recommendations regarding our compensation, benefits and other reward and recognition efforts?

Get better at showing more people how they’re part of the vision – or helping them make their own vision. Treat them better. It doesn’t have to involve money. Real appreciation, transparency, respect – that takes people far.

25. What would make you consider working for this company again in the future? Would you recommend the company as a good place to work to your friends and family?

I’ve loved working at IBM. I’d happily recommend it to other people for whom it would be a great fit. I’d be delighted to come back to IBM if it turns out that I want the scale and power of IBM to make the kind of difference I want to help make.

26. Can you offer any other comments that will enable us to understand why you are leaving, how we can improve, and what we can do to become a better company?

If I could be in two places at the same time, I’d continue working with IBM while experimenting with these ideas. But I want to do the right thing by IBM and our clients, and the right thing is to leave in order to do this experiment instead of trying to do it under the radar or letting it distract me from being fully committed. I think this will turn out wonderfully.

Squeezing another project in

Down to 11 business days before I leave IBM for my experiment in entrepreneurship. My manager wants to know if I can squeeze in working on a non-profit project and helping a developer learn Drupal skills on top of my current project, which is now in user acceptance testing. I say yes. There’s time to help people learn, and time to reduce the risk of future projects. My notes and braindumping and last-minute improvements to extracurricular interests can wait.

I needed to revise the documents of understanding. I had originally estimated and scoped the project assuming that it would be done by a developer with both experience in Drupal, familiarity with the particular nonprofit’s needs, and a thorough understanding of the codebase. This project involves making a site more configurable so that other organizations can deploy it easily. It will be used as a pattern for five or more sites, with the first ideally coming online this year.

To accommodate the risks, I simplified the tasks we planned to do, and reorganized the items in order to fit the timeline. As neat as it would be, we probably won’t need an installation profile or a distribution for five or so instances. I put the most complex tasks up first, before I leave, so that we can power through them with pair programming. With any luck, we’ll be able to complete the crucial parts of it before I go, and the remaining developer will be familiar enough with the key parts of the code to continue. She can turn to one of our coworkers for mentoring.

In the meantime, I’ve been checking tasks off my other project: mostly styling, with some minor content and functionality tweaks. The project manager is impressed because I get things back to her so quickly. I tell her I might work part-time on this and add another project over the next two weeks, which should be fine given the rate at which we find and fix the tasks for this one.

Looks like I might not be able to take that half-day of vacation after all. <laugh> No big deal – it’s all for an excellent cause, and maybe I can get the practice admin to have it paid out instead. Good to be making things happen!

Mapping out what I’ve learned at IBM

We’re in the user acceptance phase for the project I’m working on. There are a number of small things to fix, styling issues that we’d put off until the base functionality was in place. So I fix things and send them back, waiting for feedback.

In the meantime, there’s time to write, and to work on other things. There’s a nonprofit project that I want to do as much as I can on before I go, and I want to leave notes for the next developer. There’s the Community Toolkit that I’d like to add more to before I go.

I’m mapping things out, seeing what else I can share. The things I’ve learned about collaboration have become part of what IBM knows; BlueIQ and wikis and community managers doing awesome things have taken it much further. The Community Toolkit has what I understand about the Connections API, and there are enough people who have used it and even tinkered with it to keep the idea going. The Idea Lab processes and tools have been in other people’s keeping for a year, and they’re doing well. There are people who do Drupal and who do Rails, and my notes are on my blog. This is good.

So now, in the gaps between things to do, I write about the other things I’ve learned from IBM. There’s a lot to write about, and I’ll see how much of it I can put together in the next three weeks. =)

My CSS theming setup

“Why is your window transparent?” a coworker asked me when she noticed my screen. I told her about how I do my CSS theming, and she pulled another coworker over and made me repeat the explanation. Since that seems like something other people might find handy, here it is.

Sass: Syntactically Awesome Sytlesheets

I rarely do CSS/front-end theming work, but when I do, I try to make it as fun and easy as back-end development. I use Sass (Syntactically Awesome Stylesheets) so that I can use nested selectors, variables, and mixins. This makes my code cleaner and easier to write. You’ll need Ruby in order to install Sass, but the tool will give you CSS that you can use on any web platform.

Browser-based tools

I prefer doing the initial tweaking in Google Chrome, because I like the way that the developer tools make it easy to modify the stylesheet. The Chrome CSS Reloader extension is handy, too. Most of the time, I make my CSS changes in the text editor, then use the CSS Reloader to reload the stylesheet without refreshing the page. This makes it easy to manually toggle the display of some elements while allowing me to refresh style rules. If I want to figure out the values for a few simple changes, I’ll sometimes make the changes directly in Chrome (you can use arrow keys to adjust values), then copy the values to my Sass source file.

Colors, sizes, and spaces

A second monitor is totally awesome and well worth it.

Designs rarely specify all the colours, sizes, and spacing needed. To quickly get the color of a pixel, I use WhatColor. This shows the hex code for colors, and allows me to quickly copy the code with the F12 shortcut key. If you want to change the shortcut key, the source is available as an AutoHotkey script.

To make it easier to match sizes and spaces, I use WinWarden to make my browser window 20% translucent. Then I carefully position it over my design reference until the important features match. Magnifixer makes it easier to line things up because it can magnify a fixed portion of the screen. By focusing Magnifixer on the part I’m working on, I can tweak CSS without straining my eyes.

When I know I’m going to be making a lot of changes, I use AutoHotkey to map a shortcut so that I can refresh the CSS with one keystroke instead of several. When I happen to have my USB foot pedal handy, I rig it up to refresh my stylesheet.

Regression testing

Sometimes my CSS changes modify other rules. Instead of laboriously checking each page after changes, I’ve figured out how to use Selenium WebDriver to write a Java program that loads the pages in Mozilla Firefox and Internet Explorer, capturing screenshots and numbering them according to the pages in my design reference. This means that I can run the program in the background or start it before taking a break, and then flip through all the screenshots when I get back.

Cross-browser testing

What’s CSS theming without the requirement of browser compatibility? Someday, when I need to deal with more browsers, I might look into Selenium RC. In the meantime, I develop in Chrome, my Selenium-based program makes it easier to test in Firefox and IE, and it’s easy enough to try the URLs in Safari as well. Virtual machines handle the rest of the requirements. 

So that’s how I’ve been doing CSS theming on this project. What are your favourite tips?