Archive for the 'Product' Category

Book Report: The E-Myth

Sunday, May 4th, 2008

A colleague at work suggested I read The E-Myth . After picking it up Friday, I couldn’t stop thinking about it, and finished it Saturday. It’s on my top 5 for business, so far. Here is what I learned.
The E is for entrepreneur. The E myth, which Gerber goes on to dispel, says entrepreneurs are super-human. Only these heroes have the right to start businesses. Really what goes on in the rest of the book is a intro to business development. But that would have made a terribly boring title. What’s so exciting about business development? It’s the fact that you didn’t know you needed it.

Gerber first starts with a bit of psychology. Inside of everyone involved in business, there are three personalities:

  • Entrepreneur – This is the dreamer
  • Manager – Likes order and predictability
  • Technician – Likes the art of the craft, the end product.

According to Gerber, most folks start small businesses because they are a good technician. Technician meaning anything technical; baking pies, programming, styling hair etc. . They make a faulty assumption:

The Fatal Assumption is: if you understand the technical work of the business, you understand a business that does that technical work. pg 13

A clear difference from a bird’s eye view, but this misunderstanding is the most common reason small businesses fail. Each of these personalities has a vital role. For example, you inner technician should be the master of the product, documenting exactly how to reproduce it. You inner manager should implement that system, and be consistent. Your inner entrepreneur should always ask, “what would the customer want?”, and not be contented until they have it.

The enigma with a start up happens after your first couple of employees, when you hand off management by abdication, not delegation. For some reason, the widgets have scratches on them, or they come unglued all the time. In other words, your employees aren’t doing as good as you did when you wore every hat. It only gets worse as you get a larger workforce, until you get so stressed, that you throw your hands up and go back to a one man shop.

So why are the big guys big? The big guys had systems in place to control and reproduce everything worth doing right. Everything! They had a system to teach every employee that process. See, every time you are getting something done, you have to think how can this be reproduced exactly right, thousands more times. A franchise mentality! This is a major shift in thinking for a technician. Many folks start businesses because they don’t want their lame incompetent boss directing their life, and they can make widgets better anyways. The problem is technicians aren’t good at running businesses. Managers and Entrepreneurs are, so you must give them space to work.

My favorite idea found in the E-Myth is not to create a business to work at, but create a business that works. Every piece of your business should be well documented, and adhered too. It should provide a structure for employees to flourish, a “game” for them to play. They can flourish and earn rewards by following the rules. It’s a rule of thumb to document the position well enough for the lowest skilled employee can become great under it. Money saver!

There are more tasty morsels that I didn’t mention, and some good insight on what your system should look like. Worth a read if you ask me.

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.

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)

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!