
Photo © 2011 Dennis Skley CC BY-ND 2.0
Click here for the original photo.
I wasn’t intending to post anything today. As I promised yesterday, I wrote this morning until 9 AM, but not a post on this blog. (Instead, I made progress on a longer piece for my Ardor Point site.)
And then I caught up on a comment thread between Darryl (whom I don’t think I know) and David (whom I do know, in real life), comments on a post about what’s wrong with the software industry.
And I began writing a short follow-up to their comments. And I discovered that I had used up over an hour, and it was turning into a 500-word post of its own– I so miss writing! But I also am discovering that I still love software development, when it’s done right.
Ironically, I’ve been absent from this blog for the past few months because I’ve been working feverishly on a contract software project, with a long-time friend and colleague.
When I wrote that “what I hate about software development” post, I intended it as a criticism of the software industry—the way software development is typically practiced—not a criticism of software development itself. So, Darryl, David, I think I agree with both of you. I still love software development, but I’m not sure how to find the hope I’ve lost because of the way most companies do software development.
As some other commenters pointed out, these problems are endemic to many industries. So maybe this is actually a criticism of modern society, of the social structures we’ve built to meet our needs (because they’re not meeting our needs).
I’ve generally faced a simple choice: when the software-development process is broken, you can (1) bang your head against a wall repeatedly until you pass out or (2) stop caring and just do what you’re told. In ages past, I actually cared about the software-development process. Now, employers say they want developers who care. But really, most of them don’t want developers who choose option (1); they want you to do what you’re told and shut up. So when I stopped caring and just started doing it for the money, we were all happier.
Lately, however, I’ve wondered whether there might still be hope in software development. The project I’m working on right now— the way we’ve structured the project and marketed our services, it allows us to prioritize those characteristics of the process that are important to us, allows us to do software development the right way. Still some gotchas, but it’s not a non-starter, and I don’t find myself with the classic choice I’ve faced in the past. I have a third option: (3) fix the process and do software the right way.
Does this mean I’m no longer a writer? Well, for the past few months, I haven’t been. But that’s just a short-term thing, because of an acute need for my services on this software project. (As well as an acute need for me to earn enough money to pay for a new car. But that’s a different story.) And spending a few months away from writing has made me miss it desperately. So I’m not sure what the future holds for me.
For the time being, I still consider myself a writer who helps out with software, sporadically, as needed. But it’s nice to be faced with the choice between two passions, rather than between one thing I love and one I do just for the money.
-TimK
Hello Tim, nice to meet you!
Good to see you keep elaborating on this very interesting topic.
You are right; the problems we find in the Software Industry “are endemic to other industries,†which is why, in my opinion, choosing the right profession is so important. For the sake of staying focused though, let’s talk about fixing the process… It would certainly help, although… change within organizations usually happen from the top down and not the other way around.
David mentioned agile methodologies and the SCRUM process. It is a move in the right direction, but the end result depends on execution. Having a strong leadership team is a must. Software projects face many challenges: Legacy code, architecture, documentation, diversity of developer’s skills, release management, solid test plans, communications amongst team members, etc. The best of methodologies breaks down when a portion of a web app developed and tested on XP/IIS6 machines gets promoted directly into an IIS7 production environment with no rollback plan. My goal is not to sound negative but to emphasize that finding the right company can be challenging.
Also, for anyone who is thinking about starting a career in computer science, I recommend they read this article: “The IT Department is Dead, Author Arguesâ€
http://www.networkworld.com/news/2008/010708-carr-it-dead.html?page=2
And this book: “The Big Switch: Rewiring the World, from Edison to Google†http://www.amazon.com/exec/obidos/ASIN/0393062287/ref=nosim/fusion0e#_
Finally, for people like Tim, who are not only technical but are also good writers, there are lots of opportunities to make good money in writing articles for magazines, technical writing, books, etc. If you are persistent and creative, fiction may also be an option.