one of the major reasons that I code, is… well, I kinda really like it. Have done since I was a kid, that feeling of having the biggest, most complicated, coolest and regularly broken lego set ever… master of your own universe! Its almost relaxing to me, to have my brain working at that sort of level.
Then you get to enterprise computing, and at least a part of that enjoyment gets stomped out of you in the mud-filled trenches of big business and government, as you step on the littered corpses of dead frameworks, listening day after day to the staccato sound of budget overruns and the groaning of dying projects as the project managers exhort “one more boys, one more charge and that’ll finish it!”.
Sorry, waxing poetical. Enterprise computing certainly isn’t first world war type stuff (well, not always, see my previous post!), particularly because you meet a lot of fascinating people. However, its not an ideal environment to be passionate about the project you’re building. So you start your own projects that you can pour some passion into…. and you spend nights and weekends doing that…
… And you work out that its not the coding that you are really interested in. Sure, its like a big set of cool lego, but… its the thing youre building thats interesting, not the process itself. And then you finish your project, and you think its cool, but you work out that its not the thing you’re building thats cool, but its the people who will use it at the end of the day.
understanding and involving people is the key behind software development. Coding is ‘easy’. By easy, I mean very difficult. but good developers can do anything (they’re kind of like women in that sense!) with thought and time. But involving people, invoking passion in people, is the key behind software development. This is what agile is about (but often gets lost in the technical discussion of how, pair programming and other irrelevancies). Software = people
Everyone, even the leviathan that is enterprise computing needs to understand this. Especially that leviathan, because in EC, software shouldnt start without people.