Archive for March, 2008

Programmer’s that don’t abstract don’t work

Sunday, March 30th, 2008

Grady Booch, a brainbreacher in the software architecture world, put such importance on a programmer’s ability to abstract properly. You can listen to the wonderful podcast by following the link at the end of this article. Booch describes how all complex systems are broken down to become simple through abstraction. Think of abstraction as organizing information. As wikipedia puts it:

Abstraction is the process or result of generalization by reducing the information content of a concept or an observable phenomenon, typically in order to retain only information which is relevant for a particular purpose.

Have you ever soldered a circuit board? You wouldn’t be thinking of capacitors, resistors and ferrets when you are trying to enter a certain time into the microwave, even though they are involved. If you do, it might hinder your ability to judge the right time. McConnell (book) says maintaining different levels of abstraction and allowing modules only to only communicate to other modules in their strata is called Stratification in software engineering. Perfectly termed! Think of the strata of the sky with it’s troposphere, mesosphere .etc.

Now the ability to abstract, and the importance of recognizing when to abstract is critical for programmers. If your engineer can’t create software with clean and well thought out stratification, you will soon find a mess on your hands when your skilled engineers give you a piece of the their mind. This doesn’t mean if a fellow can abstract any way he will can be a good engineer; I have seen folks that can abstract up well, or down well, and not the other way. This creates problems. If your engineer can’t abstract up in the hierarchy of information, conversations can be very awkward, and design lacking. If they can’t abstract down to the complex, they will never get anything done.

One way to test this is good long technical conversations durring the initial interview. If they can make your nontechnical colleague understand how their system works, we might have some abstraction problems.

Links
Gary Booch podcast
Gary’s Blog
Code Complete 2

Choosing a name

Sunday, March 23rd, 2008

Naming a piece of software in a very busy name space (the web), isn’t an easy task. If I was naming a pizza parlor in Fresno California, my home town, I could easily come up with 100 names that wouldn’t step on any toes. Easy! Try such names on the www, and you hit a wall: you are forced to create a great name, or a super lousy one! My current task is to find an appropriate name for SpiceRack .

Difficulties naming on the web

  • Instantly can cause problem with other large companies
  • Has to be search-able – try and name your product “Audience”
  • Needs appropriate domain availability

General Naming guidlines

  • Sizzle factor / likability
  • Positive image association
  • Protect-ability
  • International considerations – bad example

Naming Guidelines specific to my software

  • Must be Gender neutral
  • Should have link to product category

SpiceRack, as a name for desktop slide presentation software isn’t terrible. Among others, one problem lies in that it doesn’t have any association to the product category. This wouldn’t be a problem if I was creating the software for Mac, to be packaged with a well known software suite. Keynote is packaged with iWork. Keynote is a great name in fact, but I don’t (yet) have a multi-billion dollar vehicle to transport such abstract a brand as SpiceRack. Look at the abundance of abstract or arbitrary names found in the dead pool . It certainly can work, but I am playing it as smart as my little brain will allow me. This is a brainbreaching exercise!

After many hours of the naming game and input from my wise mentor, we are left with a couple of nice names: ScreenBird, SlideQ and ScreenDuo. In that order. It’s a close race between SlideQ and ScreenBird for me, but ScreenBird is so brandable, and has such positive image association: flying, soaring, elegance. Slide is a bit more sleek and technical. Check out the logo contest going on for ScreenBird
In addition, all those domains were available for me to purchase. “Let your presentation soar” would be a great slogan, if folks actually cared about those. This is a strong start, and more to come on the subject.

If you should find yourself in this worriment, check these out:
NameBoy
Bustaname
MetaGlossory

InstallJammer Review

Thursday, March 13th, 2008

Cross platform, open source, modified GNU, decent layout, this project has my attention. After my two day honey-moon phase with it, I have formed a strong opinion.

What InstallerJammer is: an excellent program for run-of-the-mill, cross platform installs.

What InstallJammer isn’t: visually custimizable.

Well, technically it is highly theme-able, but requires an extensive knowledge of tcl, tk, and a tun of global data defined in a few different places. Not exactly point and click. I am not complaining, because this program is given to use freely as a gift by Dameon. An installer should be two clicks tops, more for the advanced options area. This would be VERY difficult to come buy unless it was scripted for me by Dameon himself. It’s sadly this way with most installers.

InstallerJammer is heavily programmed in tcl, 23,000 lines of it, with the help of c, and no object orientation. I am betting we won’t see any substantial releases from now on. Since programming productivity goes substantially down after routines hit 200 lines, and bugs and improvement time goes way up, it’s a safe bet.

You must think I am crazy having such high standards for a simple installer, but that’s the beginning of the user experience for SpiceRack . Why spend years in development, and plenty of cash, and let the customer experience a 10 click, drab install?

Sadly, I shall return to Advanced Installer , after having already tried NSIS and a few other lesser known packages. I will try Installsheild in the future, but products with 30 different pricing structures and hard to use websites generally aren’t well designed.

Update, Jun 08:
Well Damon was sensitive enough to the word on the street, and sent me an email asking for suggestions. That shows desire. He posted a response on his forums

Since this time, I have had considerable brain hemorrhages trying to use Advanced installer. Bleh. I had to switch, so I went back to Innosettup, ISTool. I am not able to theme or simplify it as much as I would like, but considering the the alternatives, it’s the best for me now.

Success commandment: Stay close to thy customer

Thursday, March 13th, 2008

Ray Kroc, founder of McDonald’s as we know it today, worked 30 years in restaurant supply sales before making his big move. He knew what worked with customers, and was known to give his clients such advice. Such valuable insights he gained from knowing his costumers over so many years. Along came an opportunity to make a restaurant his way, and out comes McDonald’s.

Charles Merrill had a bottom up philosophy, responding to the public’s lack of education about stock ownership, gave them free education through his advertising. Listening to his customers more deeply than anyone else in his market guided the sale of his service.

Cyrus McCormick, inventor of reaper, would tweak, change, and overhaul his product based on product exhibitions and feedback. 70% of America’s workforce was in farming before the reaper.

Maintaining a tight feedback loop allows the product to meet those needs which you can easily miss.

Notice the commandment doesn’t read “Your customer knows best”. They don’t always. Your customer knows best their problems. It’s your job to translate their problems into your product. If folks new what they wanted, they would be buying Ruben Studdard’s cd’s by now. America voted, right?

Too many times do we see business of high status distance themselves from their customer. Consider this: You have a killer idea for your LG phone. An idea that probably hasn’t been thought of, that would add value and simplicity. How many people would it have to go through before it ever reached the product manager’s desk, and in what condition?

Jun 08 Update :  Closely related to this article is the entry onVOC

Also, Cheers to Ohmar Amad of Commapping.com.  He stay’s tight to his customer base, and that’s rare.

Brand Romance

Monday, March 10th, 2008

Without fail you will be faithful to whomever you are romantic with. Romance isn’t something cheap or quickly reached. It comes from seeing your loved one’s true colors, and sharing special experiences together. Product experiences, although less meaningful, share some of the same qualities.

In the branding pyramid below, notice the order. The lower form the foundation, and the means to the upper. My product must first have good core functionality. This means solid features such as the ability to undo, arrange, save, to have stability. Only then can we move to a killer experience. This takes style, and the discipline not to show off all your teams programming talent just because you can. What is my target customer reaction? “Woh, nice”.

Upon this foundation can we start to coax feeling of loyalty, sometimes irrational preference, and strong attachment. Romance! (Cheesy, I know)

Success commandment : Immerse Thyself

Sunday, March 9th, 2008

Our unconscious self determines more about our success than researchers once thought. In this study researchers tested two groups of people. One group were fed success oriented words, while the other were fed neutral words before the task. One group did better.

These results… reveal an unconscious process that has both an advantage over conscious processing and an ability to serve a person’s current goals. Such unconscious processes may be responsible for far more of human ability than is yet recognized. Physorg

So I hereby declare a success commandment: Immerse Thyself into one’s dream. Think it, study it, play with it, be passionate about it.

The most mundane, the most forgotten

Friday, March 7th, 2008

The shower knobs I should most like to use are simple. One knob for pressure, another for temperature. Now my preferred temperature knob wouldn’t mirror what I have currently in my shower, which only has very small area on it which I consider comfortable. 80% of the knob should give a human comfortable temperature. How quickly you could find your temperature and pressure!

This represents a problem that’s indicitive of old large companies.  Many times they have lost a meaningful connection to their customers.  Sure there is someone in the company reading feedback cards, but it takes a bit more love than that!