Tuesday, April 21, 2009

Your Codes Shall Live After you...

Prior to now, I have never worked in an environment where I had to inherit a code base to work with (well except those times I have had to peek under the hood of some open source codes I needed to tweak) It is either I write the needed codes myself or I do.

But recently that I just got a job where I get paid to play around with computers, the internet and write codes, sooner or later I know I am going to be confronted with that situation; To build on codes whose original authors have long left the company and are nowhere to be found. It is not as if am that concerned about this happening, guess am more preoccupied with the thought of the quality of codes I will be giving up for inheritance when I finally take my leave from the company.

Am presently working on a project where I am building, more or less, from scratch and with every line of code I write, that thought keeps hunting me.

Guess the saying: the good evil deed men do shall leave after them, is also true for you as a developer. Your codes too shall leave after you. And I don’t think I would want to leave behind an arcane legacy :) so to prevent this from happening I went ahead and got myself a book on how to write quality and manageable codes. A pretty nice book on software development I’ll say.

But then again when it comes to coding style, it’s worth stressing that its sorta like Religion where you can’t claim that a particular method is the way: the most efficient. But the trick is to come up with a style based on some fundamental guidelines and adhere to it. It’s about maintaining consistency. Whichever style you decide to adopt the key is to stick to it and maintain it across board.

So guess am doing my bit in ensuring the quality of codes out there, I can only ask of you the same. Do find the following online articles on the topic helpful, like I did. They are PHP centric ;)

An article from devshed, tim kadlec on the 5s, and Reinhold Weber's tips

Wednesday, April 01, 2009

Sell Benefits Not Features…

The aim of any marketing efforts is to elicit an action and in most cases it’s to make potential customers make a buying decision. If people don’t take that action of buying then we can conclude that all our marketing hasn’t achieve its objectives.

When dealing with high tech products or services, similar goal is expected: make someone pay for your software or get someone to subscribe to use your web app. As a marketer, this involves coming up with ways to ensure that the marketing decision made by your potential customers favor your product or services.

Its all about coaxing or convincing and in high tech marketing it is not uncommon to see marketers listing features their software comes loaded with in other to coax customers to make a buying decision that will favors their offerings.

But going in the direction of features listing might not be quite a productive strategy, especially for services like software. Ideally the logic behind feature touting goes somewhat like this: “List the features, let the customers know all the cool features they will be buying so that they will know the benefits they will enjoy and how our software will help solve their problems”.

Well it so happens that things don’t normally play out that way. Customers might not necessary see the benefits, straightway from your litany of features. And this is why playing it strong on the feature listing side might not be that effective. Instead of feature touting, I will advocate Benefit touting .

In stead of strictly feature listing, enumerate the benefits offered by your software in explicit language.

Not that listing features is wrong in itself, but we have to keep in mind that our aim is to elicit an action: persuade potential customers to make a decision to buy, and this is easier done when your customers can grasp the relevance of your solution to their peculiar challenges.

The problem with feature listing is that it is not an effective means in communicating the benefits of your offering to customers.

Truth is, if you have features, you should have benefits but you have to take into consideration that half of the time, majority of your customer might not be that techie savvy, so they might not, at once connect the dots of your features to get the benefits. This is why it pays to sell to them by explicitly stating your benefits. This will make buying much easier.

One need to take into cognizance that decision making is powered by emotions, so it will make more sense Listing benefits not features since it will be a faster way to make customers easily identify what they will gain from your software, how it will make their work (or life) easier, thereby generating the necessary emotions that will propel them to sign that cheque.

Doing this makes buying easier like I said earlier on. Have you ever wondered why most people resist selling but enjoy buying? Why is this so? Its simple, buying becomes enjoyable when backed with the knowledge that the Good or Services being purchased is really the solution to a problem. List the benefits and people will find it easy to connect your solution to their problems, list the features, well….

So what is the lesson being learnt here?

“It is a better marketing strategy to design your marketing campaign around benefits listing than feature listing.”

Republished from 60mwtgeeks

Wednesday, March 25, 2009

100 Best Web Developers from Nigeria

In response to Loy’s list of 10 best Nigerian developers (the original post has since been modified), a list which I feel is inappropriate because it included names of people who are in no way involved in web development (or other form of software development for that matter)…I hereby provide my own list of developers (desktop,mobile,web…) and web designers who I feel know their onions enough to be referred to as part of Nigeria’s Best Developers…

And I feel this is necessary because as a comment to Loy’s post aptly put it:

“Do your research before you post. I mean: the whole world is viewing your website. You could actually be limiting opportunities for REAL WEB DEVELOPERS by showcasing mediocre as Top Nigerian Web Developers...”


Am even more concerned about the inclusion of people who might not have written a single line of code in their lives!!!

Apparently, a lot of other people shared my opinion as is reflected in the ensuing comments to the post, with a lot of readers pointing out the erroneous nature of the list. Guess this fusillade of comments was what moved Loy to later put forward a clarification via a comment in which he said:

“there’ll be a real online competition that would be sponsored by companies who are interested.
That’s when we would have an online voting/ranking system built to sift the first 100 web developers that the community thinks are the best. Then, we’ll have them accessed by a panel of judges and eventually rewarded for their skills and contributions.”

That's more like it. But in the interim here is my own list of 10 Nigerian Best Developers who i feel will easily make the best 100 list. This is arranged in no particular order...

1.Dipo Fasoro
2.Ope Obembe
3.Temi Kolawole
4.Dipo Odumosu
5.Segun Okin
6.Tim Akinbo
7.Babatunde Adeyemi
8.Ayodeji Aladejebi
9.Toki Abodunrin
10.Seun Osewa

90% of the names listed here are, if not friends, acquaintances and hopefully in the nearest future I should have each of them over on this blog, for a chat.

Monday, March 16, 2009

Wrapping my head around logo designs

Still Graphics was my first love. Before I discovered the web, it was the singular thing that ignited my love for computers. That ability of being able to create such stunning and visual appealing designs was just too much temptation for my creative head. I couldn’t resist; and I had to succumb to its lure.

But in as much as I enjoyed creating still graphic designs, there was one part of it I usually find myself skipping over. And this is Logo Designing. The reason is not farfetched; its creation process is a tad engagingly than any other graphic designing process.

Logo’s are highly conceptual and the fact that you have to be able to understand the branding message intended by the logo and be able to compress this and express it conceptually into a design that won’t occupy more than a tiny portion of your screen makes it quite a task for me…

…Well until recently where I find myself spitting forth logo designs like the mint would spew out Naira notes…

Seems my brain morphed...

In the past couple of weeks I have come up with such a number of logo designs that it amazes me. Below are some samples of ideas I came up with for the AIESEC NIGERIA campaigns:



Guess I have finally wrapped my head around logo designing…cool :)

Wednesday, March 11, 2009

Do more, Click less

Good user interface design is not all about the fanciful Photoshop effects and graphical eye candies; it is about designing systems that enable users to easily achieve their aim of interacting with your application.

The true functionality of an application is tied to its user interface. If you like, you could pack a trailer load of functions into your app, but it comes down to naught if your user interface makes it so difficult that your users can’t find them, or makes it problematic using them.

And this is why User interface design is such a big deal and why it [should] occupy the front seat while planning out an application. There are a whole lot of considerations that go into the making of a good user interfaces but in this post, I’ll just talk about one: number of user’s mouse clicks.

As a rule of thumb, a good and well designed user interface should have as minimal clicks as possible leading to the consumption of functions in the application. Meaning that, you should always strive to cut down on the number of clicks a user makes in other to get things done in your application.

In application usage, one of the units for measuring user’s action is the number of clicks, and the more clicks a user has to go through the higher the probability that there would be a reduction in the usability of the application.

Throwing hurdles of mouse clicks at users was never a good idea.

For example an application that takes users 3 mouse clicks to sign up on is far more efficient and usable than a latter that requires 5 mouse clicks. The mantra should be “do more with fewer clicks”

Looking at the Wordpress 2.7.1 release, one would find that amongst the changes that have been made to the user interface is the reduction in the number of clicks needed to publish a post from signing in.

In version 2.5, in other to publish a new blog post, you have this:








Making a total of 3 mouse clicks

While in the version 2.7.1, to get your post published, you have this:






Capish!

Reducing the number of clicks down to two...Exactly what a good user interface strives to do.

As previously stated, a good user interface design should make interaction with the application as easy and smooth as possible, so when designing, do keep in mind that reducing the number of mouse clicks will go a long way in increasing the usability of your application.

Thursday, February 19, 2009

How To Manually Download and Install FireFox Extensions.

Never had the course to get Firefox extensions manually installed until yesterday when I had to get a PC that wasn’t connected to the internet up and running with my fave Firefox extensions. On a normal day the Add to Firefox button does the job:





But since this particular desktop pc wasn’t hooked up to the net, I needed a way to get the extension files off the net and then manually Add [it] on to Firefox. So how do you go about doing this? How do you manually download and install Firefox add ons?
Simple.

Browse to the Firefox add on pages, instead of left clicking on the Add Firefox button, right click on it and click on save link…






file extension should be ".xpi"
Once the file is saved, to do a manual install of the extension, Start Firefox and drag the downloaded file unto it. Capish! You will then be prompted to continue or cancel the installation. That’s all.

Another alternative to getting the extension files off the net is to browse to the Firefox add on pages using a browser other than Firefox.



This will automatically turn the add to Firefox button you normally get into a download button. You can thus easily download the extension files.

Tuesday, February 10, 2009

Web Marketing; Two rules not to break

Ever since the web evolved into a trusted platform wherein commercial activities can take place, there has been that need to get involved in marketing activities; activities that seek to persuade users to take particular actions that are in line with the sites objectives; be it signing up for a service, adding a product to the cart, or filling out a survey form etc.

But to embark on these marketing activities on the web, and be successful at it, an understanding of the web as a platform is required. Not only this, a good understanding of how users interact with the platform is also vital. A lack of an understanding of users behavioral pattern as they interact with the web and what they expect will always lead to methods that cause more damage than good. Examples of such methods, which come readily to mind, include spams and pop-ups, which, most time, end up annoying users instead of persuading them.

A couple of weeks back, while out, trying to find an appropriate provider for a service I thought I will need for a project, I experienced, firsthand the effect of a marketing (or persuasive) strategy that got the whole web thingy wrapped. They were persuasive strategies that were futile because instead of trying to convince me, they did quite the opposite, sending me off, quick, to reload my Google page, with a little annoyance to go with it.

There were 2 fundamental principles that these initiatives got all wrong that were responsible in making their marketing strategy abortive, or more appropriately, less effective. The two principles which I consider basic due to the fact that it hinges on the unique nature of the web include:

Principle 1: Do not Horde information on your site.
It is so annoying to land on a site only to find out that the detailed information you need to make your purchasing decision is nowhere to be found on the site. But will only be made available to you after you have sent a mail to the contact us email address provided on the site. That sucks! This defeats the very essence of the having a website. A website should be as exhaustive as possible.

The web is majorly a pull medium and users are used to this. users are oriented towards playing an active part in retrieving information they need. And as such, a website designed to horde information; that adds to the hurdles users need to cross in other to get information needed is automatically broken.

So while looking for this service, I found out two website that offer what I was looking for, but the sites lacked the critical information I needed to make a purchasing decision. All they had was just marketing tirade on how their services is the best I can ever find. But the information I need; like cost details, details of the API, and implementation information were nowhere to be found unless I send an email to their sales department.

Principle 2: Don’t be quick at getting too personal.
Avoid initiating gestures of personal contact too early in the persuasive chain. Or better still do not be the one to initiate personal contact, let the user do that. Just make yourself available to receive such gestures if the user does make them.

So to continue with my story, as if making their website not exhaustive was not enough, after sending emails, requesting for more details to the two sites I found, one replied that for me to get the information I needed I should meet him on Skype or yahoo messenger at a set time.

Horrible!!!

I don’t know you from Adam and you expect I would just want to chat? When you could have easily put all the information I need for my finding on your site!

At that instant I immediately removed that particular provider from the list of potential providers I will be considering. There were just too many things needed to be done before I get the information I want. And for crying out loud, inviting me to a chat was just an inappropriate gesture. That was just too early and uncalled for.

Not saying instant messaging is not a viable tool for marketing, but the approach was wrong. Like I said, let your users be the one to make such gestures, just be there whenever they do. It’s a different thing entirely if the site was as exhaustive as possible and then a link to initiate a chat is provided for me if I needed clarification.

On the other hand there was a third provider I found out along with the previous two. Apart from talking about their services on their site, this third provider went ahead to enumerate the different options I have when implementing their services, detailing the respective cost implications, and the technical details of their API. A trial access to the API was even provided. And I got all the information I needed to make a decision there and there on the site. This was a company that understood how to play on the web. And if I had gone ahead with the project, it was most certain that I would have done business with this third provider.

True, the web has come a long way, and to do successful marketing on the web, there is need for that nature which this evolved platform has taken on be understood; including the ways its users interact with it.
This, I hope to enumerate more on, in upcoming posts.
 
Afrigator