Tag: codingslave

Coding Slave

June 13, 2008

Everyone writes about codes. There are not much books on “Coders”. Ever since I heard about the book Coding Slave from a number of bloggers, I always wanted to read this book. But I was kinda scared that this one might be too venomous and negative, making everybody other than coders look like a villain. I finally grabbed the book and completed it after two nights of reading.

To summarize in short, it’s a story about an enterprise software development team within a typical corporate world of today. This book is about firing and hiring, off-shoring and consulting, project plans and deadlines, BA’s and QA’s all under managers trying to climb up the corporate ladders. If you have ever worked as a developer in a large financial institution working on huge ERP systems that never get completed, this book will resonate with you better.

If I consider this book as a piece of literature like any other books, I have to admit that this book is the worst I have ever read in terms of its presentation, quality of expression and character buildup. But I am assuming its from someone who knows a dirty side of the present IT industry too well, and he is not necessarily a good writer. There is an offensive amount of ’sex’ involved, strip clubs and cam girls, death and suicide. I am not exactly sure why the writer decided to stuff so much of unrealistic sex into the story, but I guess that writer is really clever in knowing who his reader is going to be; a slightly pervert and a geek that is.

IT industry esp. the IT departments within companies are usually under wrong hands. Its always ‘get the code out fast”, and make sure “it sort of works”. Its just about meeting deadline; its just about media coverage, shares and profits. Nobody really cares about customers of the software. A project manager never gets fired for a unrealistic deadline or a bad project plan or hiring a wrong person in a team. But a developer who has produced years of great code in the same team gets fired one day coz he couldn’t follow a bad project plan and meet the deadline. A BA seldom gets fired for misinterpreting a customer’s voice in the project requirements. But if a project fails to meet a deadline, everyone looks eyes crossed at the developer. BA’s come with last minute changes, saying that it’s a minor functionality change. But nobody really understands that what they think is a minor change needs a major code refactoring from the developer. Result? Another late night or a spoilt weekend! After all having worked so sincerely all the way through, you don’t want your manager to give you that shitty “Its all your fault” look at the 9:00 AM project status meeting every morning.

All in all, we are coding slaves. We work under some kind of dictatorship to build the software. We get victimized for everything that fails (be it our fault or not), and someone else gets the kudos and promotion for the success. This is the reality of majority of software development teams.

The author thinks we - coders ourselves are responsible for the mess. We let the people who know nothing about software run the show. No surprise that he doesn’t want you to do the unit tests, documentation or re-factoring, coz it all makes our lives easier and not his. We aren’t enslaved by the corporation or the system, but its our own attitude thats enslaving us. We are the only people who knows the software well, and who are passionate about it like a mother to a child. We care for its well-being and health. We care for its usability and quality, and have the right skills to nurture it. The author finally envisions a philosophy where the developers control and manage all this. We should be the masters of the software, not someone’s coding slaves!!

I think the open source community of today is kind of close to what the author has dreamt. Open source projects are driven by coders, driven by passion, driven by a reason, skill, knowledge and thats why they have been so successful. There isn’t a non technical boss (who knows nothing about software) telling the coders how they should build the software, what it should be like, and when it should be checked into the repository.

The industry is not short of places where good developers are forced to write dull and boring codes.