New Year's Resolutions
By Elden Nelson
I'd like to make a confession. This year, there've been times when I've been ... weak. I've taken the easy way out, instead of doing the right thing. I've ... I've ... I've developed a Web site using PHP and MySQL.
Why? Well, it was a freebie site, and I'd used PHP many times to do the kinds of things this guy wanted (ASP.NET hasn't been around forever, after all). So I just leveraged existing code and knocked the project out as fast as I could. No harm in that, right?
Well, I suppose not. But I've noticed that it's when doing "freebie" sites that I learn the most - because the client is in no position to complain and there are fewer specs and time constraints, I can experiment a little and learn a lot. By walking old paths with old technologies, though, I learn nothing.
So here's my resolution for this year: I'm going to do everything in ASP.NET, even the easy stuff I've done other ways for years. For me, at least, that's the best way to learn.
Of course, I'm not the only one making new year's resolutions. I recently asked a number of respected asp.netPRO developers and authors what they've done this year that they're going to change for next year. Here are a few of their responses.
What I did: I started what I thought was a small development project based on an idea I had. I threw together a database (tables, stored procs, etc.), some C# classes, and a few Web pages. As I finished one item on the project, I'd get excited and add a few more "features" into the product. I continued this process until I realized the project scope was much bigger than I originally estimated. I wasn't happy with the architecture, so I went back to fix some normalization issues in the database as a result of the project growth. This, of course, changed my data layer because the stored procs changed, which broke my business and presentation layers. Because of my poor planning in the initial stages, months have passed and I still haven't finished the project.
Why it's bad: Lack of planning, even on small development projects, can lead to a lot of wasted time as the project continues. Fortunately, this wasn't for a client (which is part of the reason I didn't spend the normal time planning the architecture), but the amount of time I've wasted is definitely not a good thing.
My resolution: No matter how small a project might seem, I'm going to take the time to plan the project's architecture in detail.
What I did: I assumed I knew enough about an install procedure for a server product to just wing it and not go through the install procedure checklist. The installation went great, and I was done in a flash.
What went wrong: I kept getting weird behaviors. After banging my head against the wall for a couple of days, I decided to admit that it was possible I had missed something in the install. I went back, reviewed the steps, and - d'oh! - there it was: SQL Server SP2 required. How could I have forgotten that? The same way I have forgotten similar install steps numerous times before.
My resolution: From now on, I'll "waste" the extra 15 minutes to follow through the install manual instead of guessing what the problem is downstream.
What I did: I once was working on a game aimed at the 3- to 8-year-old set. The game had a series of activities and a navigation screen that children would use to go to their favorite screen. We developers wanted an easy way for children to go from the current screen to the main screen. We chose the "obvious" answer: Press the space bar.
Why it's bad: Several of the younger children pressed the space bar accidentally. And repeatedly. You can just imagine their frustration when they were busy playing a game and it suddenly exited and brought them back to the introduction.
My resolution: I'll remember that users view our programs and designs through different eyes than we do. To build better programs, listen to your users. Carefully listen to your users. Even when you think you have listened to them repeatedly, listen more.
Any of these resolutions sound familiar? What's your development resolution for 2003? Let me know at [email protected].
Elden Nelson is editor-in-chief of asp.netPRO and its companion newsletter, asp.netNOW.
Tell us what you think! Please send any comments about this article to [email protected]. Please include the article title and author.