Commentary
Like many companies every year Digital Cheetah holds a Holiday Party. We have two events that make our Holiday Party special to us: I perform a magic show and we have a spirited gift exchange. Along with music, food, and drink the evening is always very well received and it is talked about long after the event.
It takes a lot of planning and effort to pull this event off each year, but it is always worth it as the party brings us closer together as a company and gives our employees something to look forward to. When you think about your own Holiday Party think about going the extra mile, you'll enjoy it more and your employees will too. And in the end that is really what counts.
Here is where I attempt to cut the head off of Digital Cheetah's President: Aj Tidwell. Enjoy!
Fifteen years ago I built my first web development platform or framework called SAGE that was used by garden.com to go public. Nine years ago I built a new platform called The Universal Web Engine (UWE) that we have used at Digital Cheetah since its inception. About three years ago I mapped out a new system that was going to replace the UWE. I actually began to implement it in 2008, but was forced to shelve it's development due to the economy. This month I began looking at starting this new platform in earnest.
My plan was to use Python as the primary development language and I was going to take all of the ideas from the last fifteen years and develop the "perfect" system for the creation of 1000's of custom websites. Luckily before I had really started I rediscovered Django.
Django, named after the legendary guitarist Django Reinhardt, appears to be the perfect place to start to develop a new framework. It doesn't do everything the way I had planned, but it does so much more and is flexible enough to allow me to augment it with at least a few of my own ideas.
To the many happy developers and designers already using Django this is probably no big surprise. But for someone who has been used to developing his own frameworks from scratch this is a huge departure. I for one am really excited that I can start building at a much higher level.
I believe using Cloud Computing and Django I will truly be able to deliver a platform that will allow Digital Cheetah to continue to provide world class custom solutions for the next ten years and beyond. And just maybe we'll be able to build a new website for ourselves too, instead of the eight year old one we currently have!
The software vendors push the idea that better tools, languages, frameworks, and programming systems will make better programmers. This is simply not the case.
It is certainly true that most programmers can produce better code with the right tools. However, the second you want to do something new that is not covered by the tool or framework you are using you are now left to your own innate abilities. If you aren't a good coder you will likely produce a bad solution, no matter how good your tools are. Stick within the framework and you'll be laughing and people will think you are hot stuff.
In fact if you stay within the framework you might even produce better code than a more talented developer without the tools - kind of depends on the tool. However, don't stray too far from your tools if you want to continue to impress your boss.
I read this article recently and agree 100% with these words by Matt Marshall:
One of the biggest challenges is getting an ace developer. The difference between a great developer and a mediocre one is huge. A great developer can push your business forward 10 or 20 times faster than a mediocre or average developer.
However, it only goes so far. In the first two years of a company great developers are what give you a shot, however to be really successful in the long term you have to have equally as good if not better marketing and entrepreneurial vision.
I think this is where a lot of great developers fall down - they think they can do it all by sheer technical virtuosity. This view typically leads to disillusionment. You need both sides of the coin to be successful in the long run, and sadly (for the developer) after the first two years much of the success of a company is driven by the entrepreneur and not the developer.
I have been collecting and performing magic since I was nine years old. However, when it comes to software my best advice is to avoid as much magic as you can. It is easy to think writing software that does all sorts of magic is a good thing. But after years of being burnt by such software I have come to the earth shattering conclusion that there is no place for magic in software.
The worst kind of software is code with multiple side-effects - it is a nightmare to maintain and never does quite enough magic to make it worthwhile. It doesn't mean you can't write useful scripts and routines that perform multiple tasks, but each task in the script needs to be spelled out rather than things happening "as if by magic."
This revelation might seem obvious to many but for me it has really only been in the last five years that the truth has become crystal clear. These days I aim for simple and explicit code and although I like to think what I write is still cool, it is no longer magical.