Personal Philosophy

I cannot overstress one basic tenet of my personal philosophy and that is to deliver the best that I can. This is merely a part of my personality and must be accepted as such. Having said that, I can go on to areas of specific interest...

To me writing software is like a craft or an art. Sure you can hack together a bunch of canned modules and get a running program. But I see that as being similar to nailing together a bunch of 2x4s and calling it a house. It may work, but will people want to use it and will it stand the test of time? If you take the basics and artfully craft them into the final product, you will more likely get a product that people will like to use. If done with due diligence, the product will also be able to grow and continue to meet the continually evolving needs of the customer. For me programming is more than just an income. It is a creative medium that, if worked correctly, will produce a piece of art.

I am an avid believer in documentation. Of course any programmer worth his salt will provide meaningful comments. But I'm also speaking of user documentation. Currently there is a lot of emphasis on 'on-line' documentation. But I see two drawbacks to this. Most often it is hurriedly put together and as a result is almost useless to the user. Also, it's difficult to read when you're not at the computer. If you are at your computer, sometimes it's best if the documentation is lying flat on the table rather than cluttering up the virtual desktop. Having worked with various formats over the years and the problems of conversion from one proprietary format to another, I am also an avid fan of following open standards. My current pursuits include the OpenDoc effort. There are many options here and I'm willing to let my client's specific requirements provide some direction.

I am a strong proponent of the Open Source model and, unless otherwise agreed upon, I will follow the GNU licensing model. This can be summarized as stating that all source code that I write will be provided to my clients. I am not interested in job security, but in ensuring that my clients have all the resources needed to meet their needs. I, as author of the work, retain copyright of the material, but my clients are free to publish and/or distribute the work as they see fit. If in the course of my work, I make changes to source code that is published under the GNU or Open Source license, I will make those changes available to the originating author(s) or group(s). This is merely adhering to the original intent of the appropriate license.

Because of the fact that it is available under the Open Source license, I am also a strong supporter of Linux. It provides an effective mechanism to deliver the needed capabilities efficiently. Although I will not limit myself to systems employing Linux, it will always be a consideration.

As is suggested by the Pitchfork Story, I strongly believe that judicious use of multiprocessing can provide a cost effective solution to many problems. Central control has its place, but there are many times when autonomous behavior can provide a more effective solution. The industry has gone from a (very) thin client of timesharing a mainframe to the fully distributed environment of independent PCs. Now, we are on the path towards the (not so thin) client of a PC providing graphics services. All of this has been pretty much aimed at serving the user. A project that I did in the 2000-2001 time frame demonstrated the feasibility of a bunch of "clients" servicing a process. With the progress in electronics and microprocessors of the last few years and the availability of uCLinux, this is even more practical today than it was then. When we can harness a group of networked systems, we can start to get work done!

Last updated: April 29, 2002

© 2002 Pitchfork Solutions, LLC