ColdFusion Muse

Progressive Enhancement Vs. Graceful Degradation

I was in a fascinating seminar by Barney Boisvert about programming with "progressive enhancement". It's something I've thought about on the edges of my mind, but Barney (who is funny and really tall) put it so clearly that I could not help but blog about it. To get us in the right frame of mind, let's check in on project launch meeting at CF Webtools. Our new client, Joe Dreamer, has brought his latest idea to the table. He wants to build a special "Barbie's Facebook" - a social networking site where young girls can register their Barbie dolls and flesh out their lives in the virtual world. NOTE: This funny example came out of the Muse' head. I know of no such project (but now that I think about it....). Anyway, let's check in on our project launch meeting.


The Inquisitive Mind

A misconception about technical folks is that they are fully left-brained and incapable of true creativity. Anyone on the inner circle of geekdome knows this is not the case, but folks on the outside looking in often only see the engineering skills - attention to detail and minutia, obsession with systems and process, and a penchant for pocket protectors. Of course in the last 10 years you can add flip flops, body piercings and a sort of pigeon English consisting of acronyms, techno-babble and quips from Monty Python and the Princess Bride. That should tell you something in itself. There's more to IT folks than numbers and obscure discussions about the best Star Trek Movie (Khaaaan!!!!). That got me thinking.


What is a "Mentoring" Company

Anyone who has worked as a web developer knows how difficult it is to describe what you do to a novice. My wife, who actually handles benefits and management tasks for CF Webtools, still can't really come up with an adequate description. It's not enough to say that we "build web sites". That is certainly true, but it lumps us in with pure design shops and marketing companies. We are certainly not a marketing company, and although design is part of what we do, it is only the tip of the iceberg. I sometimes say that we are a "software company" that specializes in "web based" or "browser based" applications. That kind of sums up what we do but it doesn't say much about the kind of company we are.

I like to describe CF Webtools as a "mentoring company". By that I mean that we focus on mentoring our developers to enhance their growth and potential. Of late I have begin to try and qualify this statement and boil it down to some principles that thrive in our workplace. Please note - I am quite serious about the thoughts I am sharing here, but this post could be concieved of as a commercial of sorts - so read on at your peril. Here's what I have come up with so far.


Working With "Big Idea" People

CF Webtools still does quite bit of work for small to medium size businesses. Unlike large companies where the point of contact is usually a CTO or a project manager, you often talk to the owner or main stakeholder in a small company. These owners are often visionary entrepreneurs with a knack for marketing. That seems to be what it takes to build a company - especially one that is based on a product for sale. Now let me say at the outset that I greatly admire these risk taking geniuses. Such men and women often go through 3 or 4 business failures before they succeed. I call them "Big Idea" people and their confidence and self-assurance are remarkable. They can see past the details and envision the final chapter in the long road to business success. Working with such folks can be frustrating however.


Taking Over Third Party Code

It happens to us all the time - perhaps every few weeks. A new customer comes knocking and they have an existing application that needs help or support. Sometimes the system has simply outgrown the current developer or the skill set of a contractor and it needs a team. Other times the application has evolved over time and has reached it's peak for performance and is beginning to degrade. Sometimes a rift has developed between the site owner and the previous developer or company. Whatever the reason, taking over third party code can be a daunting task. I have a few tips on how to make the transition more smooth.


Thinking Inside the Box

Every parent has had an experience like the following. When my daughter was two and a half I bought her a toy for Christmas. I don't even remember the toy - but it was a brainy toy designed to stimulate her growing little mind. Since our child was brilliant (see for proof) we knew she would take to it right away. It was expensive, but we only wanted the best for our daughter. The Toy was big. I'm not sure how big. I only know the box was big enough for her to fit inside. Christmas morning Finally arrived....

Listen Here


Vendor Lock and the Devil

Reoccurring Revenue is the Holy Grail of development. Every development shop wants to find those customers who produce work for them (and hence revenue) time and again. These so called "maintenance" customers or "ongoing development" customers go by another less flattering name - the "cash cow". You can look a bit further into the future if you have customers who will regularly provide you with projects or maintenance level work. Developing a pool of these customers is an excellent way to grow your business. In fact, some applications that you build for customers are so complex they engender a form of vendor lock.

Listen Here


Choosing a Good Domain Name and Avoiding Cyber Embarrasment

I am often tasked with helping a customer decide on the domain name for a brand new site. This is a daunting task because people have very specific ideas it - even if they are not enthused about anything else regarding the site. The choice is an important one. Your domain name is sort of like the headline on a newspaper article. It should reflect something regarding the content and nature of your site. Here are my tips for choosing a domain name.


OPUB Syndrome - Why Sales Staff Over Promise and Under Bid

Have you ever been given a project with an estimate that was wildly low for the work involved? Have you ever finished a project that looked remarkably unlike the original requirements document? Have you ever been driven to finish a project 2 months before it was going to be ready?

In my second podcast I discuss the OPUB syndrome - why sales and management often over promise on features and time and under bid on the cost.

Listen Here

3 Constraints of Project Management

This is my first podcast. The topic is the 3 corners of project managment.

  • Time
  • Money
  • Features
I will welcome any feedback on what I should be doing differently with my podcast. If you have experience please enlighten me. What format should I be using? What's the "standard" for size and quality etc. Thanks!

Developer Stew - Being More Productive

If you are like me you only have about 6 or 7 hours of really decent programming in you per day. Actually that is probably optimistic. If you are like me you probably have about 4 good hours and 2 or 3 mediocre hours. In fact, for a programmer, productivity might be best defined as a curve with diminishing returns as the day wears on. My best hours for programming are between 7:30 am and around 2:00. After that I'm usually playing catch up with email and other tasks.


Pastrami and the Pain of Change

My dad used to always say "....the right tool for the right job". Actually that was my brother. I think it was my dad who always said "you are such a tool... why don't you get a job!" Anyway, sometimes we find ourselves building applications that are the "wrong tool." We often get customers who ask us to build things for them that sound neat, but are not really going to save them time or money. We usually try to steer them right, but sometimes we end up building the widget anyway. To be honest I'm often humbled to find out that I don't know everything - especially about someone else's business. The Customer often knows exactly what will work and just needs someone to build it.


Bob Followup - Recommended Reading

Eric Sink wrote that "...a developer is a "programmer" who contributes in non-coding ways. That is so succinct I almost wet my pants. That's exactly the sort of person I'm looking for when I hire someone. Thanks to Zwetan (sorry I don't have a full name or web address) for recommending this excellent blog post titled No Great Hackers by Eric Sink of SourceGear. It's a review of Paul Grahams great hackers essay. It has both some parallels and some counterpoints to my Bob Post.

Speaking of this morning's post I received some excellent comments. Obviously some of you very talented and productive people are afraid I'm referring to you. I'm reasonably sure that no Bob would ever read my blog - so you are quite safe. Let me just take the time to say that I deeply appreciate anyone who would take the time to contribute to any post of mine. The comments are virtually always helpful and instructive.

New Studies Show Bob is Not All That

They call him the fireman. Oh sure, he probably has a title like "system's administrator" or "lead technician" or even lead developer, but his real job is putting out fires. Let's call him Bob. There's "Networking Bob" and "SysAdmin Bob" and "Developer Bob" etc. When the server goes down, call Networking Bob. The server needs an upgrade - "SysAdmin Bob's the guy. If a backup needs restoring, code needs tweaking, some work-around needs to be worked around, some proprietary Application is failing.... there's a Bob that can handle it. He'll come in with fire hose blazing and takes care of business. If a vendor needs placating.... ok... so call Sally, Bob's abrasive - but he does get the job done. The CIO thinks he worth 3 regular employees. Shouldn't everybody have a Bob? Well...


Ideal Characteristics for an IT Company

One of my developers (Mike Klostermeyer) recommended an article on tech MSN titled 7 things to expect from your IT partner by Microsoft Business Consultant Jeff Wuorio. I found it to be an excellent rundown of some of the things we preach around here at CF Webtools every day.


More Entries

Blog provided and hosted by CF Webtools. Blog Sofware by Ray Camden.