Archive for the ‘Do Something Now’ Category

Remove your assumptions

Friday, February 1st, 2008

Jens Alfke’s latest blog post rambles about a couple of things but finishes on something that I really empathised with:

Apple engineer: …and the layout needs to take into account ligatures and contextual forms, where adjacent letters change glyphs depending on neighboring characters, or even merge into a single glyph.

Sun engineer: C’mon, is this important? How many people need advanced typographic features like that, anyway?

Apple engineer: [after a pause] Well, there are over 900 million of them in India alone, and another 200 million or so in the Arabic world.

Sometimes it feels like I’ve been bashing my head off a brick wall for, well, years. Motivating people to not do ‘half-a-job’ is actually hard.

Yesterday I almost had a stand up argument with a guy in my team in $BIG_COMPANY on the definition of ‘complete documentation’. I want documentation that can be read and understood by novices and managers. He wants it to be opaque enough so that you require understanding in order to work with it. In the end we sat down and he demonstrated it to me and I tried it. Within about 5 minutes we hit the first stumbling block in his documentation. He asked if I had the database interfaces set up. I replied “The what, the who and the where?”. So we need to add a piece about database interfaces. Then we needed to add another piece about how to log into the server. Then how to run an update. Then how to publish the updates. Then how to check the updates have been completed. In all, the additional bits were more than twice the original document and spawned two more wiki pages. In the end he agreed with me, the documentation was half done but the journey was a lot harder than it should have been.

Writing technical documentation is not an art. Writing it for non-technical users in order to help them learn is not an art. It just requires removing assumptions.

When building my second office in Mac-Sys, we had a square room to modify and the original assumption was to put a single wall, parallel to one of the other walls, in. By questioning the assumptions (that a single wall, parallel to another wall was the only way to go) we put in a ’shaped’ wall which provided us with nearly 50% more wall space in a room where wall space was a premium (for shelving, storage, desks, etc).

If you’re in a job you don’t like and your choices are (or seem to be)
a. leave
b. suffer
Then you really should be looking for c.. I can’t tell you what c. is for you but when I was in Nortel it was as a simple as bringing in a laptop to work with me and increasing my productivity (and reducing my frustration with Windows NT). There may be ways you can change your work day in order to improve your work life. Would working part time from home make a difference? Would time-shifting your work day by an hour help? (I much prefer working from 07:30-16:00 as it removes a LOT of traffic from my commute).

Remove your assumptions and consider new ways.

There is always a c.

Small steps…

Friday, October 26th, 2007

[[NSFileManager defaultManager] createDirectoryAtPath:_attachmentStorageDirectory withIntermediateDirectories:YES attributes:nil error:nil];
NSLog(@"Directory created!");

Anyone who knows me, knows I’m not a programmer. I speak Hello World in about 8 languages. Not very impressive. I’ve been able to hack a little php and javascript in the past and played with perl and Java for nothing useful. I did fix a couple of C programs back in the day so, like music, I’m able to read it but not really write or play.

The code block above represents my first real line of production code and though it’s fair to say that my hand was guided at every step, I do see it as a way forward.

I’ve never really needed to be a coder which is apparently one of the main reasons I can’t code. It’s never been instrumental to my daily bread and so it wasn’t a skill I retained despite learning Modula 2, C, Java, Javascript, Perl…etc. The only “code” skill I developed in any meaningful way was shell scripting which was used infrequently enough to require relearning when I needed to modify my own code.

My background was in Networks and there’s little programming needed in desktop support and network support. My own shell scripts were developed to enhance my burgeoning laziness (it is my contention that the best IT person is a conscientiously lazy IT person - someone who will work a 36 hour shift in order to put something in place that will shave 5 minutes off his daily routine.) I was happy to script snmp commands so I didn’t have to type them in, I’d just cron them. I was happier still to script AV definition file distribution so I didn’t need to visit every desktop and laptop with a floppy disk.

But there’s a change afoot and I want to get more into the code. It’s not something I really relish because after being known for years as the local Mac Daddy I find myself now a complete noob and no-one likes to feel stupid. But it’s something I want to do and, to be honest, feel compelled by myself to manage.

Learning Objective-C with Cocoa is daunting, not only because the syntax is odd (though really I have little to compare it with) but because the libraries are so comprehensive. As I’m also trying to get to grips with Object Oriented Programming, I have a double-whammy of confusion.

Getting Creative

Thursday, October 25th, 2007

Steven Aitchison writes on his three pillars of creativity

  • Do it alone
  • Do it with available tools and material
  • Do it anytime, anywhere

Do it alone
This is more a criticism of committees. You can certainly brainstorm with a few people to be creative but using these as springboards for ideas and not as decision makers is important. Creativity requires vision and it takes a special sort of person to spread that vision to other people. I think small groups are best. With a small group (say, less than 4) you’ve got enough room to express yourself without feeling like you’re being talked over or interrupted too many times.

Do it with available tools and materials
I’m guilty of this but sometimes you do need the right tool for the job. While I enjoyed using it, blogging was a pain on my Nokia N800. It was never a good fit. In fact, any sort of data entry was just painful. I had to wait until I got a laptop again before I could feel productive again. Likewise, give me a camera and I’ll give you some shaky mis-aligned photographs. Give me a violin and you’ll give me a Noise Abatement Order.

Do it anywhere, anytime
At the most basic level, this means keeping a notebook and pen with you at all times. This also means getting yourself into the lifestyle where you can work when the inspiration strikes you. My after hours are flexible enough that I seldom need to pencil in time to do things, I use something called a “Nag” (which will feature in an upcoming Infurious product) to remind me to do things and along with my Do Something Now guidelines, I’m usually kept busy with the jobs I want to do when I want to do them.