Starbucks-fueled Developer

Wednesday, July 05, 2006

Hurry Up!!...Wait...

I was reading a post by Michael today and thought I'd express my thoughts given its relevance to my job - at least as of today. Tomorrow may be something completely different...

Personally, I hate the "Fast Today" mentality...The "RAD" mentality..."Mort" should you dare go there these days. I've been there, done that. Yeah, sometimes it's fun and exhilarating. But when the dust settles and you clear the air, what do you have in the end? Mud. At least, here in Central PA, that's what we have (it's ironic, now thinking about it, how the recent weather has coincided with how I, personally, feel my professional work has been going).

I'm not out to bash products, companies, or teams; they have worked hard, long hours and have significant sweat equity in their work, so this is as far as I am going down that road: sadly, I cannot say that I have enjoyed the new tools that are "features" in Visual Studio 2005. I don't know if it's because of mixing it with the Web Application Project add-in or what, but things like (shudder) the TableAdapter and DataSet designers just don't seem to like to work with web.configs and the personal web developer server in VS05 (which, I must say, I love the fact that I do not have to run as an Admin to develop a web application. Big win there!!! YAY!!!). At least not reliably and consistently anyway...</rant>

My manager says that the work I was doing for the past month was just "filler" stuff; "we've just gotta get this done and behind us so we can focus on the more important projects". You know, I don't have a bit of a problem with that mindset. In fact, it's wonderful to have a prioritized list of projects grouped and arranged by importance, visibility, customer influence, etc. Some tools/apps may just be needed to get you by or up to a certain point, allowing customers to rejoice in their new toys and IT groups/teams to focus on the other "important" stuff.

But I completely have discontent when the "just get it done" initiative vetoes the "done, safely, soundly, and 'right'" approach. What do I mean by that? A "RAD" application can't be done right? Sadly, I have to say no. When I cannot reliably know where my connection string is coming from, RAD doesn't win. When I spend half-a-day (and then some) trying to determine why my ObjectDataSource isn't updating the database when it's all "wired-up correctly", RAD doesn't win. Granted, there is a learning curve here; I am a very strong ASP.Net 1.1 and I haven't had as much opportunity to familiarize myself with all the new 2.0 stuff. But the end result is that I still feel more comfortable writing my own code that's backed by unit tests and has thought behind it as opposed to just flinging widgets here and there with little to no care.

I will be the first to admit that I am no Agile/TDD guru. But I started one project two days after I began my new position and felt pretty comfortable with all the TDD and thought that I had placed in the code that I wrote. Now, I will readily and openly admit that a major fault of mine currently is that I become too preoccupied in the architecture of an application. A simple app only needs a simple architecture - no argument. I need to learn to slice vertically instead of horizontally....Given this, three or so weeks into it, my code was scrapped to be replaced by flinging widgets and thoughtless antics. My intent here is not to be harsh on anyone or anything; but my point is that I firmly believe that the project was/is still a success because, while the development style changed, all the analysis had already been done. Potholes? Found. Recon? Gathered. From a "thought" perspective, the application had obtained 1 of 3 "done"s. The final two were achieved via demonstrations.

Thought preceded the antics. And, personally, the thought was much more fun and much more rewarding. And, given this retrospective, I can confidently say that I learned more from my stumbles in over-architecting than I did from flinging widgets.


Post a Comment

Links to this post:

Create a Link

<< Home