What I’ve learned from failure

Why does failure matter?

It’s a funny thing. After almost twenty years of drawing a paycheck for creating software, people generally want to hire me because they want me to duplicate the successes I’ve had. The model seems to be “do the things you’ve done successfully before, and you’ll be successful now.”

My experience is that this has never worked on its own. Success in software development is at least as much about avoiding failure modes as it is about “best practices.” I conjecture it’s because software development on a commercial scale is so hard that almost any mistake will sink a project if left uncorrected or even worse, actively encouraged.

With that in mind, I’ve taken a little time to jot down some thoughts about situations where I’ve personally failed. I’m not going to tell you about some theoretical anti-pattern, or relate some broken thing I’ve fixed. I’m going to share things that caused me to leap from the deck of a burning boat to avoid drowning.

Some of them, in retrospect, would be comical if it wasn’t for the human misery, damaged careers, and money wasted on failed projects. Or worse, in my opinion, the opportunity cost of putting good people to work on things that never end up delighting the world. I weep for what might have been. Read the rest of this entry »

Transferring Data from One Table to Another

Every DBA needs to transfer data between tables. This is the kind of task that comes up all the time. Not only do DBAs need to know how to transfer data between two tables on the same server, but they will also need to know how to do it from one server to another. This blog entry will look at a number of different methods to transfer data from one table to another. Read the rest of this entry »

During the ’90’s it was forgotten

During the ’90’s it was forgotten that technology is a service industry where growth is linked to the economy; rather, tech stocks were treated as end products for which demand was unlimited.

The DO’s and DON’Ts of UI Design

Creating a user-friendly website can be a little bit like cooking chicken. If over-cooked, nobody really enjoys it — in fact they just look forward to clearing the palette with something else. If under-cooked, we end up in the hospital with salmonella. OK, perhaps our site won’t send anyone to the ER, but it could certainly make them leery about coming back for more! If cooked properly however, it will be a nice all-around experience for all, and our friends will be begging for the recipe.

So how do we cook the perfect web-site? Well, honestly, perfection is perhaps a little bit high of an expectation, but we can get nearly there if we follow some basic rules. Oops, I used the ‘r’ word (I see you all grimacing). Sorry, let’s change that to principles! Or maybe super-fun-happy-guidelines. Ahhh — much better. Read the rest of this entry »

My thoughts on Life, Death, Infinity and Delusional Ideation

On Infinity and Beliefs

In an infinite universe, with infinite space, attributes and possibilities, it is absurd to imagine that one may know anything at all, for to know something amounts to arriving at a finite conclusion,and this is infinitely impossible. Yet in an infinite universe embodying infinite possibilities, the act of knowing is also infinitely possible, or so the optimist will hasten to offer. But if it is both infinitely possible and infinitely impossible to know something, then how can either notion be a possibility? Read the rest of this entry »

Writing a Functional Specification

Every software application can conceptually be broken up into three layers: the front end, which consists of the user interface and application controls; the middle tier, which consists of the code; and the back end, which consists of the database, data structures and other assorted gremlins.

When building software, the trick is to design in such a way that when you place these layers one on top of the other, the parts fit exactly. This is far more complicated than it sounds, and fairly difficult to do at the best of times. But don’t let that discourage you - a number of tools are available to assist in this process…and one of the better ones is called a functional specification.

A functional specification can substantially simplify and streamline the process of application development. Intended to describe how a piece of software works, it provides a ready reference for software developers and aligns large and disparate development teams to a single goal. In the process, it provides technical clarity on how the different components of a particular applications are to be designed, implemented and integrated with each other, and (if used correctly) significantly reduces the time and cost component of any development exercise. Read the rest of this entry »

PHP and ASP.NET Go Head-to-Head

Balancing the pros and cons of the two most popular means of building web applications

When it comes to Web development these days, you have a lot of options. Many of these methods involve preprocessingóthat is, embedding code into HTML pages with special tags that signal to a preprocessor that they contain code, and that it should do something with it. Much like a CGI, this code is then run on the server, and it returns some content, which then assumes part of the shape of the resulting HTML page sent back to the browser. Both the open source scripting language PHP and languages within Microsoft’s ASP.NET framework fall into this category; JavaServer Pages (JSP) and Perl/Mason operate this way as well.

In this weeks weblog post I’ll focus on PHP, the technology Oracle has chosen to incorporate into its products, and ASP.NET. I’ll overview the various strengths and weaknesses of each, discussing in particular those areas that will help you make your decision on which to go with for your development project. There are a lot of factors to consider, and different projects may appeal to a different technology. In conclusion you’ll find a point-by-point comparison in terms of price, speed and efficiency, security, cross-platform support, and the advantages of an open source solution. Read the rest of this entry »

What makes a great Web site?

Functionality

Above all, a website has to function correctly. The HTML, graphics, JavaScript, CGI, forms, etc. must be seamlessly integrated and display properly on a wide range of computer systems and browser software.

Designing for the web requires expert knowledge of several programming languages and an ongoing commitment to education in order to stay current in this exploding field.

True interactivity requires both client-side and server-side technology. All forms, search functions, e-commerce services, etc. must be backed up by extensive CGI scripting and database integration. Read the rest of this entry »

My Design philosophy

Successful design complements content and reveals its inherent value. The needs of your target audience determine the content and design of your message whether it’s presented on the Internet or in print-based materials.

Logo design has come a very long way from the IBM, UPS, Levis and FedEx logos of the 60’s, 70’s, and 80’s.

Great logo design is still based on fundamental design principles—type, shape, color, graphic content, tone and balance—but today, our society is a very visual one. Contemporary identity design needs to be much more dynamic and punchy to have any lasting impact.

In general, a great logo must say something about the company it represents, even in a simple type design approach. All elements should be clean, easily read, and very appropriate for the given market and audience.

A great logo delivers a clear, well defined message of uniqueness and individuality. Many times, logos are the first and only impression consumers encounter when they are shopping for a particular product or service.

A great logo must say something about the company it represents. Distilling a client’s persona, mission, or marketing approach into a single gesture or emotion that can be conveyed by a strong stand-alone image is the heart and soul of the logo design process.

Brand Identity

Identity branding is the new paradigm in strategic business marketing. What is your unique selling position and are you branding your product to maximize that advantage?

I have developed and managed successful identity brand and image projects within the government and corporate sectors. The design of a consistent business wide brand image, cements your profile and increases recognition when media campaigns are aimed to increase your reach.

Cardio Kickboxing. A new religion

In the fall of 2003, my wife became interested in kickboxing at a local private instructor facility in town. Having lost my strong physique over several years of comfortable married home life I decided to attend a class with her to see what this was all about.

One night we stopped by and watched a class. It was not your typical cardio kick boxing class. There was the regular workout but also an added flair of martial arts and inner peace with ones body. I thought it would be fun but I was feeling as though I had gone to far down the road to recover from the land of the couch potato. My wife encouraged me to try, and I was pleasantly surprised by how well I could do it. The first few visits took a toll on me, but shortly I began to feel the muscle strengthen all over once again.

Me boxing

Soon I was addicted. I started attending 3 nights a week, and began a self-evaluation of all the junk I was eating. I changed that too. I went cold turkey. I decided if it was prepackaged, wrapped in sugar, or just taste good it was bad for me on the inside. I started a strict diet of only eating organically grown foods - meaning “real food”, no meat, only fish and chicken and loads of tasteless fiber. No more soda, sweet drinks, pizza, and the mother of all bad foods packaged microwave treats. Oh, one simple trick I learned, never eat a meal larger than your fist, but if you must, don’t clean the plate. Leave something for the fat rats at the local dump.

I definitely feel younger now and know that I’m in much better shape than I’ve ever been in years. I am now more confident, full of energy and stronger.

I’ve been attending as a religion for 4 years now (as of this writing) and during that time I have lost 35-lbs of fat and went from a tight 34-inch waist to a loose 31-inch waist.

It’s a nice feeling knowing you can finally fit into all those jeans in the back of the closet once again.