My Ego is Bigger than your Ego

There’s no doubt that ego plays a part in software development.  We’re all in competition with each other.  Not just for work, but in terms of “geek points”.  I am unashamedly egotistical when it comes to software development.  I love to point out how clever I am and tell people about this crappy wonderful little class I just wrote, or how I found a bug in so-and-so’s code that made a really big issue go away.  I can say this safe in the knowledge that I probably cause as many problems as I fix.  I know that never a day goes by when one of my colleagues in either this or a past life comes across some code I wrote and sighs quietly to themselves before taking a sip of a caffeine-infused drink and “refactoring” it.

Much as I’d like to be, I’m not the world’s greatest software developer.

I am, however, a geek.  This is where the competition and virtual chest thumping really comes from.

There are loads of ways to earn geek points.  Having a blog is one way but a bit obvious.  Better is to use Twitter or FriendFeed.  How about an account on StackOverflow.com?  You might have an iPhone* or contribute to an open source project.  Hell, you might even have a “There’s no place like 127.0.0.1” t-shirt in a different colour for each day of the week.  You should also use the word grok a lot.

An ego in software development, like competition in any other area, is a good and healthy thing.  It’s what drives us to create something better, cooler, faster, more reliable than our peers.  Developers love nothing more than to write software for developers.  I believe this is both because we are writing it for ourselves, but also because we know that other developers are the only people who will really grok (+1 point) what we’ve done, and appreciate what it took to get there.  Other developers are the ones that will spot the bits where the mouse pointer didn’t turn to a wait cursor.  They’ll notice if your app becomes unresponsive and suggest clever things like multithreading and BackgroundWorkers.  You respond by saying “yeah, this is just the first version – that’s all part of the plan”.  We want our peers to say things like “Dude, that is so cool”.

This attitude isn’t necessarily what our employers are looking for, however.  There are those out there that can afford to let developers experiment, of course (Google is probably the best known for this), but most companies need to earn money.  They’re not interested in your implementation of Castle Windsor or ASP.NET MVC, and will struggle to be sympathetic with your reasoning.  “Because it’s so cool” doesn’t cut it.

Also, when you have multiple egos in a team, it can be mildly unproductive.  Software developers are intelligent people for the most part but that in itself can be the problem.  Put some together in a room and most will have their own variation on the solution.  At some point someone needs to step up and say “Okay, that’s all great stuff, and we’re going to do it like this…”.  Bear in mind that this doesn’t have to be the right solution.  Software and opinions can be changed.  You just need an agreed spokesperson or lead to make the decision so you can break the tie and each get back on with developing.  Of course, secretly knowing you had the best idea all along…

* And for bonus points you should have a 2G *and* a 3G version.

I want on the netbook bandwagon!

I really want a netbook.  I think I first heard about them on Dave Winer’s site, scripting.com, but dismissed them at first.  However, having seen them “in the flesh” in the shops, I’ve totally fallen in love.  They perfectly fill the gap between what I can accomplish on my phone (I don’t have a fancy smartphone) and what I need to be in front of a PC for. 

  1. Great battery life.  I’ve heard of getting over 5 hours on one charge.  That’s great!  I don’t know if those figures are for HDD/SSD and whether they include wi-fi usage, but they’re still impressive.
  2. Size and weight.  These things are seriously small.  I’m a fully-paid up member of the man-bag club.  I tend to have my rucksack with me most of the time because I carry a camera, moleskine and diary most places.  A netbook would fit perfectly in a man-bag (or handbag, of course), just waiting for those visits to the local Starbucks for a coffee and a bit of blogging.
  3. Usable keyboard.  Phone keyboards are crap.  Palm top keyboards are crap.  I’ve not used it but the lack of tactile feedback means the laser projection keyboard is probably crap, too.  There just aren’t any solutions for mobile keyboards, but while the netbooks are small, they seem to have usable keyboards.  You’re not going to get the same words-per-minute rate as on a full-size keyboard, but it won’t be too bad once you’ve had a practice.
  4. Wi-fi.  How cool to go shopping, see stuff you like, and go online to check the prices on Amazon?  Check your email while you drink your coffee, Sir?
  5. Fast boot time.  I don’t know how this is achieved.  Even if they’re cheating and using some sort of hibernate functionality I don’t care.  These things need to go on and off really, really quickly.  You want to sit down, take it out, open it, use it, shut the lid and put it away again.  You want 95% of that time to be using it, not waiting for it to boot.  It needs to be as close to opening/closing a browser on your PC as possible.
  6. Price.  Cheap, cheap, cheap.  Well, reasonable.  For “cheap” you can get a netbook, but don’t expect XP, SSD or a big screen (for small values of big).  For around £300 you can get a decent spec device.  To be fair, the Linux-based ones look okay.  They seem to come with OpenOffice and FireFox.  I only want more because I’m a Windows guy and software developer.  I will want to see what I can get it to do for me.

So, I’m saving up for one.  It’s my birthday in March so I’ll be saving any pennies I get towards a netbook.  I just hope it’s not a case of “never meet your heroes”…

GTD – Outliners for thoughts

I think in trees.  I relate almost everything in one way or another in terms of some sort of hierarchy.  Trees and hierarchies feel elegant to me, and it shows in the way I make notes.  It’s really a more orderly way of displaying a mind-map.

I’ve always made my notes in a standard A4 notebook.  Meeting notes for me look something like this:

Outline Notes

Outline Notes

The trouble is written notes is that they aren’t typically very editable.

It occurred to me that computers are pretty good at this sort of thing, so I looked for a software outliner.  I tried a few desktop software options including Dave Winer’s opml Editor, and the supremely awful free version of NoteCase. but quickly decided that the web was the way to go.

I’ve used Evernote, but it was actually too complex for my needs.  It focusses on each note being like a rich text document.  I want the tree structure to *be* the notes, just like in my A4 book.  It does have tagging though which would be nice in the future when I have many notes.

I’ve tried various mind-mapping options, but the outliner tree style is much easier for me than a sprawling spiders web with the ideas on.  They’re really the same thing, just laid out differently.

Todoist was good, and one of my final two choices.  They have the indenting support, but in the end it was keyboard navigation that let it down.  You *can* move things around with the keyboard, but it wasn’t quite as slick as my final choice: Checkvist.

Despite a few teethinc troubles (a friend of mine lost a document because of a bug) it is very, *very* fast to add, edit and manouvre items around the tree.  The keyboard support is excellent, and there are very few actual features to bog it down.  It’s a simple, clean interface that feels and works like an editable notepad.  I might actually break my habit of “no laptops in meetings” to take electronic meeting notes…