Saturday, July 11, 2009

How To Recognize "Software Development" Is Step One

We're all "making software," but what's that mean? There is no shortage of resources on writing code. Debates rage on about this library and that, emacs versus vi, or nix versus windows versus osx. How much of it matters? We're arguing what car dealership gives us the best deal, automatic versus manual transmissions, and shades of colors to promote the best feelings when you see that shiny new car. Great, you've got the nice car (we all do), now you've got to drive the damn thing and keep it maintained for its lifetime. Who is paying attention here?

We spend thousands of hours discussion how to write software and millions of dollars helping us do it, but most of us have no clue how to keep that code around and get it in the hands of users. I won't make this a post about "The Cloud", but I will say its largely successful, because it solves a problem most developers either ignore or are never properly exposed to.

I won't blame PHP, but it fits to the bill to describe what is either a symptom or a cause of the problem: dump it and forget it deployment, while useful, has made a generation of developers unaware of what may well be the majority of work in their chosen line of profession, if you look at it right. How many people deploy their site by copying some files via FTP, even today? A frighteningly larger number than you might think! How do you think those same individuals debug? Do they even know what the word means?

The problems here stem beyond simply the code slingers, but to the cash slingers as well. Have you ever tried to convince a client that the time spent building deployment, logging, and diagnostics facilities upfront really isn't just a way to bloat your invoices?

I want to take a time out here to admit I'm not really sure where I'm trying to go with this...

Let's have fun and be completely arbitrary in the comments: What percentage of the job do you expect to be writing code when you start and what is the reality?

3 comments:

Patricio said...

If you are getting at something having to do with good project config, I think that this sort of thing is still up to the developer or managing developer to set up with the least possible overhead based on previous experience. You should generally not experiement with new development, bug reporting, and release practices when starting a new contract, and if this overhead is as critical todevelop
ent as you say it is (I
and if it's done correctly then I agree with you) the costs of this overhead should be included in up-front "development costs" and is not critical to be mentioned to the client.

Sometimes when you get into the nitpicky argument or discussions that you are mentioning it's because you aren't explaining it well enough and/or are pushing a technology that you aren't as familiar with a you think. This is a dance that I think occurs in these situations no matter what field you are in.

SwitchBL8 said...

What the hell is wrong with xcopy-deployment? It's simple, so it sucks? And for the same matter, the people that are in an environment that has the luxury of xcopy-deployment are the same people that don't debug?

Dude, you're assuming to much. You know what "I assume" means, don't you?

And the comparison with cars? Ridiculous. Ever seen the maintenance statistics of Mercedes lately? It's supposed to mean something, that star on the hood, but it doesn't. Not anymore.

And to be arbitrary: writing code includes debugging, testing and writing deployment scripts/plans. So the percentage? I'd say more than 80.

Calvin Spealman said...

SwitchBL8: Don't take it so personal. If you are able to spend the time to put the infrastructure in place and you dont need to badger the money men to budget for testing and performance analysis, you're in the right camp and don't apply to what I'm talking about. You're disgruntled attitude about what I wrote is akin to being upset that I say people who talk in movies suck, because you don't talk in movies.

I write here about programming, how to program better, things I think are neat and are related to programming. I might write other things at my personal website.

I am happily employed by the excellent Caktus Group, located in beautiful and friendly Carrboro, NC, where I work with Python, Django, and Javascript.

Blog Archive