Thursday, August 25, 2005

Pragmatists and Academics

I am an oddity, I consider myself a pragmatic academic. In the world of software development, that is a rarity. Most software developers are pragmatists. They attack a problem as soon as they encounter it. They surf web pages to find code to cut and paste, then they hack away at the code until it appears to do the right thing. They never understand the code, they only look at its results. A problem, to a pragmatist, needs a solution. The solution is correct if it produces the desired results. The wheel is recreated over and over again because time is not invested in understanding the problem and other attempts that have been made to solve it. The other side of the spectrum is the academic. The academic doesn't really care for real life problems. They abhor messy details and like to live in a fantasy land of imaginary computers and perfectly formed input. An academic loves to analyze a "real-world" problem, but only to abstract out the most interesting part and solve it in a vacuum, often rendering the solution useless for the general case. Neither is a panacea, but both are valuable when used correctly.

I feel I offer a unique value to a company because I'm a hybrid. I begin by attempting to understand the problem. I want to create the academic model. I want to look at each part of the problem in an abstract manner. I want to create precise nomenclature and definitions. I want to avoid the nasty details and solve the problem in a pristine environment first. However, I'm also a pragmatist. I realize that the real world needs real solutions. I realize that good solutions require dealing with unseemly details, but I also realize that coding a good solution is more than hacking some internet code until it appears to work. As I've discussed before, software development is a craft, and we must take our craft seriously or no one else will. By understanding the craft and attempting to provide deeper insight into problems, I hope that I am showing that the craft can be done right, and helping to pave a road that will make other's travel less difficult.

No comments: