Computer Guy

Computer Guy
Sunset at DoubleM Systems (DBLM.com), Del Mar, California

Monday, April 28, 2008

How to write a computer program

A new acquaintance from Hong Kong asked an interesting question: "How do you write a computer program?" Here is my email reply: 

My first reaction was to simply Google the question: how to write a program. Nothing worthwhile came to the top of the list, which surprised me. Let me try to answer the question... 

First of all, I am not a very good programmer. Although I was taught the basics of programming in a short course while at IBM in the mid-sixties, and although I worked as a programmer in the Fortran IV language for a year in 68, and directed the work of COBOL and RPG II programmers for several years thereafter, and wrote the initial several years of the development of TeleMagic in the Dbase II, III, IV languages, and programmed other projects (PAL, etc), I really am humbled by those programmers who have much greater talent than I do. 

Some great bulk of the programming I have done was with the excuse that I could not afford to hire someone else to do the work, or sometimes because I could not communicate to other programmers what I needed without actually programming it myself. 

 It is not my preferred activity, although it is immensely gratifying when the program finally works properly. I much prefer to do the design and leave the coding to programmers. All that being said, here's my typical approach, the way I learned it, the hard way, without any real training on the process: (it is very similar to the Think*Plan*Do*Repeat process)  

1. Imagine (with the help of the users) the Outputs. What is the result you want to achieve. What does it look like. 

2. Imagine (with the help of the users) the Inputs. In order to get the Outputs above, what Inputs to the system are needed? 

3. Imagine (with the help of the users) the Process. What must be done to the Inputs to create the Outputs? 

4. Document all of the above, using ordinary English. This is really the "meta-language" from which the actual code is created. 

5. Get approval of the users of the document (the customer, the user who enters the Inputs, the user who gets the Outputs). 

6. Make changes suggested by the users and loop back to step 1 until there are no more changes. 

7. Give the whole mess over to the programmers, who will make it work on a computer. 

8. Get user approval of the finished product. 

9. Loop back to step 1 with the changes. Proceed with next step after approval. 

10. Begin a period of trial runs with limited data. 

11. Loop back to step 1 after learning how the system doesn't work the way it should. 

12. Begin a period of trial runs with production data. 

13. Loop back to step 1 with the changes.

14. Go live and hope for the best. It is often said that the worst flaws of a program are not discovered until about 6 months after going Live. So it is then back to step 1. 

It is often said that software is ALWAYS late, and over budget.

Additionally, the worst bugs are usually discovered at least 6 months after the program goes live.

Saturday, March 15, 2008

Problem Solving


The greatest challenge to any thinker is

stating the problem in a way that will allow a solution.


Bertrand Russell







Thursday, February 28, 2008

The Tyranny of the "Idea du jour"


As creative, hyperactive entrepreneurs
we will continually be attacked by brilliant ideas,
from our own heads, and from the heads of
our co-workers, customers, suppliers, etc.
In fact the quantity of these ideas
will almost certainly exceed our ability to execute them.

However, it will be extremely rare to have an idea that will
completely change your business model,
or will cause you to put it at the top of the list
of everything you need to do over
the next few days/weeks/months.

If we respond immediately to these ideas,
they will run us ragged...
Also, some of these ideas, brilliant as they are,
over some period of time,
will turn out to be not-so-brilliant, maybe even dumb,
when inspected more carefully in the light of
the overall plans and goals of the enterprise.

Such is the Tyranny of the Idea du jour.

The approach I have found to effectively
deal with these little gems
that assail us in the middle of the night,
or the middle of a meal, or whatever,
is to simply write it down immediately,
and then, later, to add it to the proper list
(website improvements, salesrep recruiting procedure,
marketing ideas, etc),
but be sure to assign a priority at a later time,
when it is the proper time to review priorities.
This may be once a month, or every 3 or 6 months.
It is essential to give our priorities enough time to be completed
so that we can learn from our experiences.

The review of such ideas and priority setting
would ideally be done in collaboration with others
who are involved in the overall planning.

So, when the next brilliant idea attacks,
take a deep breath, write it down,
and go on with your already existing plans.

Execution is king.
Follow through is essential.



Tuesday, December 11, 2007

Best Marketing Websites

From Larry Chase's Web Digest for Marketers lists 11 of the best websites for marketers. Check it out at http://wdfm.com/current.html



Friday, December 7, 2007

Quote of the day

If everything seems under control,
you're just not going fast enough.

Mario Andretti


Sunday, December 2, 2007

Venture Capital - Good, Bad, and Ugly

Check out this website: TheFunded.com

I've never taken any VC money, although I have talked to a few VCs about getting some investment capital. But the experience was so time consuming that it was just not worth the effort. My business was moving too fast to be slowed down by endless VC shenanigans. After all the work of dealing with VCs, I decided to go it alone, focus on profits to raise the money I needed to grow, and of course it worked. The best part is that I didn't "let the camel's nose into the tent", and would up owning the business 100%.

I figured my experience was unique; after all, there have been a LOT of companies where VCs have made a big contribution to startup success.

Today, I discovered the real truth: and it's not all you've been lead to believe. Now, with the "wisdom of crowds" approach that comes with the internet, you can check out real-world feedback from people just like you who have gone through the VC's fire-drills to get the money they need.

Read the full story in this Wired Magazine article.