missing out on the digital revolution

I took a peek at the top, right-hand corner of my computer screen. That’s where the clock is on a default installation of Ubuntu GNU/Linux, version 6.06, which I was using at the moment. 3.28pm. Barely two hours left to fix this mess I made.

This wasn’t the first time that I had got burnt attempting to do too many things at the same time. I was working on a website, www.primesoilnig.com, and I was on a tight schedule. I always was on a tight schedule. I never could convince clients to leave enough time between signing the cheques, and getting the goods delivered. I needed to upload the most recent changes made on my local copy of this website to the remote, Internet-accessible host whence the rest of the world could view it. I also needed to make corrections on the job-descriptions I had previously uploaded to my company website in a hurry, since the word was already out, and at any moment, thousands of job-seekers could be stuck wondering whether their computers were corrupt, or a brand that literally looked like it had no chink in its armour put some poorly formatted job descriptions up on its nifty website. I couldn’t take responsibility for that.

Good thing this GNOME desktop made it easy to multi-task. I hated that word, but hey, I was working here. Open Places, connect to server, ftp://layer3.cc. I’ll just set this primesoil upload running, then I can attend to the matter of the corrections.

"Make sure the printer’s powered on, and there’s paper in it!" I yelled, rather than said to a colleague who enquired why his print job wasn’t out of the printer yet.

A few seconds later, I’m uploading. "Internet access is so much better here in Abuja" I ponder, as a dialog pops up asking me to confirm overwrite of the previous index file. Strange. I don’t remember having an index file earlier. Oh well, maybe I’m just exhausted. "Overwrite without asking me again".

A new browser instance pops up. As I key http://layer3.cc, A stark realisation dawns on me. This is the same host I specified in the previous dialog! I switch windows quickly and find out that my company’s Index file on their main website has been overwritten by…

Back to the browser to verify that I wasn’t just dreaming, I key in the website address. I’m greeted with black text on a white background: "Internal Server Error…". I take a few deep breaths. This cannot be! Just yesterday, I botched a simple project, and the client canceled it. Granted, there was a little sympathy on my side, but to add this… Wait, count to ten. After the emotional battle that followed yesterday’s failure, I have to calmly think out a solution to this problem. I can write code after all. I should be able to resolve this.

Ok, first, call my boss.

That went better than I expected. I should be able to reconstruct the index page by looking at an old copy in the Google cache. Thank goodness there was a cache! As long as I could fix the issue in good time, the boss wouldn’t have my head.

That was a good first step. Next, find the fastest way to resolve this mess, even if it means reconstructing the index.

I fire up my editor, and check the Google cache. Satisfied with what I see, I put in the first few lines that normally go up a webpage. But wait, something doesn’t feel right. This is not a regular website, It is a content management system. Reconstructing the look and feel of the index page won’t guarantee that all the other components of the website will fall in place. This is a bigger mess than I think it is.

A few fruitless Google searches later, I’m convinced I need to talk to someone with more knowledge than I have. Now, where to find such a person. I’m easily the only webdeveloper on this 6-floor, 2-winged office complex. My company is the only company in this complex whose activities cut across web development. I could try my luck, but I don’t think those good-looking TV reporters down on the third floor will have a clue. Focus… this isn’t the time for jokes.

I have been hanging around #ubuntu (on irc.freenode.net) a lot lately recently. #ubuntu is an internet relay chat room where Ubuntu users, developers and lovers alike hang out, helping each other fix their computing woes. It crosses my mind that the content management system that powers my company’s website is Open Source, the same way Ubuntu is. Its quite likely that they have an internet relay chat room as well. I will almost certainly find someone to shed more light on my situation there. After a couple  of minutes, I end up in #joomla. A few minutes, and a few questions later, someone suggests I seek the same version of joomla that powers my company’s website, and replace my corrupt index file from that source.

Ten minutes later, I was breathing a lot more easily. I could have spent days chasing the wrong leads, if there was no Internet to connect me with far more experienced people.

fortune: Once upon this midnight incoherent, While you pondered sentient and crystalline, Over many a broken and subordinate Volume of gnarly lore, While I pestered, nearly singing, Sudddenly there came a hewing, As of someone profusely skulking, Skulking at my chamber door.

the eyes of the beholder

As some of you may know, I did my internship at layer3 from May 2007 to the first week of December of that year.

During this period, I got a clearer picture of how much I don’t know, and I also saw very clearly how little you need to know to get along in this Information Technology industry (at least in Nigeria). I by no means consider myself an expert in this field, but I came across people with far less knowledge than I consider myself to possess handling significant infrastructure– I even had to do some tedious explanation/lecturing on a number of occasions (being a Technical Support person where I was working).

All these experiences contributed a lot to my growing impression that you don’t really need to know that much after all (at least in Nigeria). I’m yet to decide whether or not this is a good thing, but this impression in itself goes a long in assisting me to more objectively evaluate projects which I handled, which can only be regarded as failed projects. This combined with the strong hint that skill isn’t the only, or even most important factor in successful project execution.


I make it a habit to make clear my opinion about any technical tasks I’m assigned: the level of difficulty I consider them to be at, and the likelihood of me coming up with a satisfactory solution. Usually, I get the impression that the client understands this, and is willing to take the plunge. I also explain carefully, how I expect the end-result to look like, and I usually get the approving nod.

However, from my experiences, I find that, the client usually expects that the solution will start out looking like you described the end-result to be, and then get more and more true to its specifications. This poses a problem when you present the first prototype. This problem stems from the fact that a work of, say web design is much like building a house. You may be shown a scale model, and you will understand what the end-result will be, but during construction, the house may not look anything like what you saw in the scale-model.

One of my projects collapsed at this point. After careful and detailed discussions with the client, I went to work, and presented a prototype with the general framework, and basic functionality. To my surprise, the clients voices went up a few octaves. "This looks nothing like what we discussed!", "Why didn’t you say you couldn’t do this?", "The logo is not the correct one!" … I hardly could explain that this was a work in progress, and that it takes time to achieve the finished product. Project was cancelled.

Another project failed because the client expected a true-to-specifications prototype (including appearance and navigation) e-commerce site to be built within a weekend. When this was not achieved, it signaled incompetence.

Perhaps these failures imply a certain insufficiency of technical ability, but I suspect more strongly that these failures resulted more from poor understanding of project life-cycle, or extremely poor communication of necessary information to the clients, or naivete in estimating the time and effort needed to implement a convincing prototype, or even incorrectly establishing which point in a project’s life it is ready to be presented to the client for evaluation.

What have these got to do with "not needing to know a lot"? I observe that the people being served by these supposedly under-skilled persons are quite satisfied with the work done.

Perhaps these people know things which I don’t know. And quite possibly, skill isn’t as important as I think it is.

[ps. my email signature (below) is a random quote supplied by the unix program ‘fortune’]

fortune: Never do today what you can put off until tomorrow.