4733 comments
2141 subscribers
on Twitter
Subscribe! Feed reader E-mail

On this page:

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!

Short URL: http://sachachua.com/blog/p/23140

Thinking about how to experiment with business and what I might want to do

“So, what are you going to do?” That’s always what people ask after I tell them that I’m leaving IBM in order to experiment with entrepreneurship.

“I don’t know yet,” I say. I explain that I haven’t yet experimented with anything that could be seen as competing with IBM, following our Business Conduct Guidelines – and that covers so much ground. I’m leaving without a solid business plan or a proven opportunity, just itch and curiosity and the sneaky suspicion that there’s probably at least one business that I can build considering how others have succeeded.

The first thing I’m going to do after I leave is to create a structure for experimenting. Despite the associated costs and paperwork, incorporation makes sense to me. Limiting the downside – building that part of the safety net – makes it easier to experiment.

How can I go about testing possible business ideas? There are some conventional things I’d like to try.

Writing: I love reading and writing. If I can combine that with drawing and design, maybe I can create engaging e-books that will help people save time and be inspired. People have earned money from information products, so this has worked for other people before. Some have even succeeded without sleazy marketing tactics and without preying on people’s greed, which is encouraging! =)

I can test this by researching topics I’m interested in, writing blog posts and chapters, and eventually building up to e-books for things that people might buy. I’ll be writing notes anyway, so I may as well invest time into making them more usable for others.

Coaching: I’ve gotten so much value from writing, presenting, and experimenting with life. People find these things intimidating. Maybe I can help build scaffolds so that people can gradually try things out, succeed, and then gain enough confidence to do things on their own. (And I can write about what we learn along the way!)

Self-tracking: I like the results I’ve been getting from tracking my life, and I’m curious about building and tailoring tools for other people’s lives. Can I turn that into a recurring source of income? We’ll see.

Sales and customer relationship management for development: Quite a few developers have told me that they don’t particularly enjoy this part of freelancing, and it’s one of the parts I’m actually the most curious about. Maybe I can get started by helping my friends take better care of their clients and leads, and then see if the arrangement works out well.

Community analysis tools: Considering the success of the Lotus Connections toolkit within IBM, it might be interesting to make it more available to other companies. Right now, some of the functionality is available externally in a plugin for Lotus Notes, but things are still difficult to adopt. If I write a new implementation from scratch and I build the tool based only on externally-accessible information, that might be okay. It’s been quite a useful service within IBM, and it would be great to share it with more companies.

Testing ideas: How meta is that? If I’m going to be testing lots of business ideas and possibly working with other people to help them test their business ideas, then it would be great to gradually build processes and infrastructure for doing so.

Freelance consulting and development: I want to focus on the other initiatives first before I get into freelancing. I’m reasonably confident that I can figure out freelancing (especially with a little help from my friends). The kinds of work I’m considering (consulting, web development, technical writing, data migration) are similar to my work at IBM, so there’s less uncertainty to resolve. Custom work often means fewer opportunities to build compounding value, and I’d like to see if I can build a business that can scale up beyond my time.

I’m looking for things in the sweet spot: the intersection between what people need, what I’m good at, and what I love to do. If you’ve been reading my blog for a while, you’ve probably picked up a good sense of what I’m interested in and how I might help you (and lots of people like you!). Is this list missing something that would help you even rock more?

Short URL: http://sachachua.com/blog/p/23139

Notes from the Ontario Science Centre field trip

W- and I volunteered for the school’s field trip to the Ontario Science Centre.

On the bus ride there, I saw this curious case of two kids wedged into one seat. There was an empty seat across the aisle.

One muttered, “I sat here first.”

“No, I got here first.”

“No, I was first.”

“No, I was here first.”

This fruitless exchange lasted three minutes with little variation. Both were aware of the empty seat, which stayed unoccupied even as the bus filled. Both argued over this one seat anyway, and about being right.

Eventually the girl stood. She dried her tears behind her papers and looked glum the rest of the ride.

Isn’t it odd how we get drawn into wanting to be right instead of wanting to be better?

—-

The special exhibition focused on models of Leonardo da Vinci’s inventions. The teachers asked the students to sketch at least two of the models in the provided journals, and to complete questionnaires. The students had one hour to do their the assignment. There were four groups, one for each parent volunteer.

As the doors opened, the students spread throughout the area. Some sat before the scale models of various inventions: an air screw, a wire-controlled bird, a lion designed to dispense lilies from its mouth. Others were fascinated by the interactive displays on the Mona Lisa, the Last Supper, and other creations.

I quickly gave up on trying to keep track of the students in my group. Instead, I browsed the exhibits, occasionally nudging students who had gotten distracted and hadn’t started on their work. It was interesting to see the differences: the students who had come with pencils and sharpeners, the students who scrambled to borrow; the students who completed their work, the students who pursued other interests even outside the questionnaire.

—-

After the Leonardo da Vinci exhibition and a quick head-count, we gathered for lunch. W-, J-, and I tucked into the sandwiches we made with bread I baked this weekend. Mmm.

—-

The students had an hour to explore other exhibits after lunch. It was impossible to keep everyone together, but fortunately they were old enough to be responsible for reassembling near the lockers at 1:45 PM. There were a few primary school field trips on at the same time, and coordinating those must have been much more of a challenge.

The students moved through the exhibits in a loose crowd. People left and rejoined the groups. They chatted with their friends and played with exhibits, mostly ignoring their questionnaires. At the end of the day, many of them said they enjoyed the trip very much. By this time, even the girl who had lost out in the seat battle had cheered up.

—-

I was tired after a full day surrounded by the tumult of teenagers, and it looked like all three of us needed introvert recharging time. J- tried to work on her history assignment after coming home, and she was totally out of it. W- encouraged her to take a break, and she headed into the living room.

I took my own introvert break by working on my computer and enjoying some tea. After my cup, I poked my head into the living room and found W- sharing some tips so that J- can handle her energy better. He told J- that instead of playing with her Nintendo DS when she felt her brain was tired, she should try resting her eyes and brain instead: napping, perhaps, or doing something like tidying up. Games can be distracting and overstimulating. They often leave you more tired than when you started.

W- shared ideas from The Hacker Ethic on how people do things for survival, social connection, or entertainment. We’d like to help J- raise the level of the things she does: to not do them just for survival (good grades), but to motivate herself by tapping social connections or perhaps even to find entertainment and fulfillment in doing the work.

It made me think about play as escape and play as reward. W- and I don’t use games to escape. We occasionally play, but more as a reward for ourselves after chores and duties are done, and because we’re curious about the cleverness designed into the games. Our vacations go even further – not escapes from daily responsibilities, but investments into relationships and routines. This is something that would be interesting for J- to learn how to do.

This is a long post today, but there was much to think about, and more still to digest and understand.

Short URL: http://sachachua.com/blog/p/23138

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. =)

Short URL: http://sachachua.com/blog/p/23137

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?

Short URL: http://sachachua.com/blog/p/23136

Weekly review: Week ending January 27, 2012

I talked to my second-line manager (the manager of my manager) this week. It looks like all systems are go. Heading into my last three weeks at IBM! By golly.

This weekend was a busy one. I did a cooking sprint: beef stew, a stirfry with beef and cabbage, lots of cookies, two loaves of bread, and a pot of oatmeal. That should make our routines smoother for the rest of the week, giving us time to help J- with her homework.

I also worked on the bugs people have started identifying in Quantified Awesome. =) Sometimes the bugs are embarrassing, but I decided to squish my excuses and let people try things anyway. It’s fun tailoring systems to people again. I remember maintaining Planner Mode for a lively community of Emacs geeks, and I loved making all these little tweaks to help them live and work more awesomely. That was fun. It would be great to do something like that again.

From last week’s plans

  • Work
    • [X] Set up external environment for project C
    • [X] Finish styling project C
    • [X] Talk to second-line manager and other coworkers regarding plans
    • [X] Talk to lots of people about transition
  • Relationships
    • [X] Get together with Gabriel and other friends
  • Life
    • [-] E-mail potential users about time tracking analysis
    • [-] Apply things learned from Quantified Self Toronto: Epic Quest of Awesome, time analysis
    • [X] Research tips for starting a business in Toronto
    • Researched incorporation options in Ontario
    • Fixed more Quantified Awesome bugs
      • Monthly view of time summary should now be displayed whenever you try to summarize a range longer than a few weeks (fixed missing file)
      • People should now be able to create accounts through Google (fixed user creation issue)
      • Clothing logs and analyses can now be viewed (fixed permission issue)
      • Added end timestamp and manual timestamp field to time records
    • Read lots of information about starting a small business

Plans for next week

  • Work
    • [ ] Discuss project T transition
    • [ ] Work on project C styling
    • [ ] Plan farewell lunch
  • Relationships
    • [X] Visit the Villanuevas
    • [ ] Help with J’s homework
  • Life
    • [ ] Look into switching to WIND and porting my number in order to take advantage of their data plan
    • [ ] Collect referrals for accountants who focus on small businesses
    • [ ] Figure out way to track and highlight exceptions thrown by Quantified Awesome

Short URL: http://sachachua.com/blog/p/23135

High school application season

J- is working on her application for Western Tech’s CyberArts specialized high school program. She’s been organizing her portfolio and revising her application answers. It’s fun watching her application take shape. We help out from time to time with editing tips. At the end of the day, though, it has to be her words, her passion, and and her commitment.

In the beginning, she seemed frustrated. It can be difficult to explain why you want to learn something or what qualities you bring to a program. The first draft took a while. Then she filled it in with more detail, becoming more specific about her reasons. As she put her application together, you could almost see her becoming more and more confident. We helped her remember some of her other accomplishments, and she worked those into her application. She put her portfolio items together, and it was easy to see how far she’d come.

W- has been stellar. He’s been helping her sort through the sometimes intimidating array of requirements and possibilities. My contributions: In addition to the occasional nudge to replace commas with periods and to tweak wording slightly, I also enjoy reading her answers out to her. IA voice-over of sorts, so that she can hear it with confidence. “It sounds so good,” she says, and she knows it’s her words.

We remind her that it’s perfectly okay to not go for this program, and that it may involve a lot of work down the line. That said – drawing, photography, modeling, animation… It fits her interests well.

I think she’s close to the finishing line, past the humps of “Am I good enough for this?” and “Is this the right fit for me?” It will be interesting to see what happens next.

Short URL: http://sachachua.com/blog/p/23133