Software Exorcism
Mark Burroughs writes "Leave it to a SubGenius preacher to take normally mundane subjects, like software maintenance, and expose the unholy conspiracy behind them. I think the following quote from the introduction sums up the tone of the book nicely: 'Rather than shield your eyes from the sordid realities of the software industry, I am going to dust off my old 8mm films and let you take a good look at the uncensored truth for yourself. You may want to keep a paper bag handy in case you get sick.'" You know you want to read on for the rest of Burrough's review.
Software Exorcism
author
Right Reverend Bill Blunden
pages
351
publisher
Apress
rating
two thumbs up
reviewer
Mark Burroughs
ISBN
1590592344
summary
Tactics for Maintaining Legacy Code
Reverend Blunden's sermons focus on things that the college professors, in their tweedy jackets, will never talk about. As such, this book should be required reading by computer science majors, who often have a number of misconceptions concerning the industry that they are about to enter.
I doubt very highly that your instructors will tell you how to handle all the nasty little things that can occur when humans work in groups: backstabbing, stonewalling, sabotage, etc. The sad truth is that the people who do actually learn about these tactics (under the guise of "organizational behavior") are MBAs, the people who end up being managers. Folks, the deck has been stacked: The MBAs have been given whips, and the CS majors have all been given saddles. It's called animal husbandry; ... now go look up the word "cull."
Glancing at the back cover of the book, Reverend Blunden looks like the type of subversive individual that the ATF would like to have a chat with. As such, he is not one to let the reader leave without a few useful weapons (some of which may be questionable from a legal standpoint ... but hey, business is war). For example, the book tells you construct a paper trail so that even the shiftiest weasel cannot switch sides if it's suddenly convenient. Reverend Blunden even goes so far to refer the reader to a vault purveyor in New York so that evidence can be stored securely at home (hint: it's sure as hell not safe at the office). Don't kid yourself; a solid paper trail can save you during a witch-hunt.
The book also looks at how to deal with legacy code in situations where internal competition has encouraged people to hoard information, or to escape responsibility via promotion (i.e. VPs have been known to develop amnesia about the code they worked on). It explains the forces that cause these shenanigans to occur and then describes how to flush the guilty party out into the open, where their slimy tactics won't work. As before, generating a trail of evidence and possessing a degree of intellectual humility go a long way.
Then there is privacy, an issue that employers will definitely try to skirt. Management types tend to be keen on metrics to measure productivity. In addition, software engineers typically have access to code, or algorithms, that may be considered proprietary secrets. This has led many companies to monitor their engineers in some way or another (i.e. key loggers, remote desktops, sniffers, TEMPEST, etc.). Reverend Blunden provides a couple of easy, but extremely effective, counter tactics that the reader can use to foil this kind of Big Brother antics.
At the end of the day, Reverend Blunden tells it like it is. He hasn't been bought off and he doesn't have an agenda. His only goal is to warn new hires about the various landmines that exist, buried under the polite exterior of the corporate landscape. You may not like what he has to say, but no one ever said that software engineering was a pretty job. If they did, they were telling you a lie. Praise Bob.
Reverend Blunden's sermons focus on things that the college professors, in their tweedy jackets, will never talk about. As such, this book should be required reading by computer science majors, who often have a number of misconceptions concerning the industry that they are about to enter.
I doubt very highly that your instructors will tell you how to handle all the nasty little things that can occur when humans work in groups: backstabbing, stonewalling, sabotage, etc. The sad truth is that the people who do actually learn about these tactics (under the guise of "organizational behavior") are MBAs, the people who end up being managers. Folks, the deck has been stacked: The MBAs have been given whips, and the CS majors have all been given saddles. It's called animal husbandry; ... now go look up the word "cull."
Glancing at the back cover of the book, Reverend Blunden looks like the type of subversive individual that the ATF would like to have a chat with. As such, he is not one to let the reader leave without a few useful weapons (some of which may be questionable from a legal standpoint ... but hey, business is war). For example, the book tells you construct a paper trail so that even the shiftiest weasel cannot switch sides if it's suddenly convenient. Reverend Blunden even goes so far to refer the reader to a vault purveyor in New York so that evidence can be stored securely at home (hint: it's sure as hell not safe at the office). Don't kid yourself; a solid paper trail can save you during a witch-hunt.
The book also looks at how to deal with legacy code in situations where internal competition has encouraged people to hoard information, or to escape responsibility via promotion (i.e. VPs have been known to develop amnesia about the code they worked on). It explains the forces that cause these shenanigans to occur and then describes how to flush the guilty party out into the open, where their slimy tactics won't work. As before, generating a trail of evidence and possessing a degree of intellectual humility go a long way.
Then there is privacy, an issue that employers will definitely try to skirt. Management types tend to be keen on metrics to measure productivity. In addition, software engineers typically have access to code, or algorithms, that may be considered proprietary secrets. This has led many companies to monitor their engineers in some way or another (i.e. key loggers, remote desktops, sniffers, TEMPEST, etc.). Reverend Blunden provides a couple of easy, but extremely effective, counter tactics that the reader can use to foil this kind of Big Brother antics.
At the end of the day, Reverend Blunden tells it like it is. He hasn't been bought off and he doesn't have an agenda. His only goal is to warn new hires about the various landmines that exist, buried under the polite exterior of the corporate landscape. You may not like what he has to say, but no one ever said that software engineering was a pretty job. If they did, they were telling you a lie. Praise Bob.
You can purchase Software Exorcism from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
I doubt very highly that your instructors will tell you how to handle all the nasty little things that can occur when humans work in groups: backstabbing, stonewalling, sabotage, etc.
Self-employment worked for me. The boss is still a jerk, but he's my kind of jerk.
He hasn't been bought off and he doesn't have an agenda. His only goal is to warn new hires about the various landmines that exist, buried under the polite exterior of the corporate landscape. You may not like what he has to say, but no one ever said that software engineering was a pretty job. If they did, they were telling you a lie.
Ahhh, yes. Another treatise on how The Man is tapdancing on our heads.
Alternatively, we could read books on how to help create environments that are mutually advantageous, supportive positive experiences rather than focusing on heading off to another dreary color washed existence where we hate our bosses and hate our jobs.
Visit Jonesblog and say hello.
So ... the book deals with the "seedier" side of computer science (things like privacy ... gasp!), and is required reading for people entering the field ...
/. !!! Same stuff, only it's free, has stories that are continuously duplic^H^H^H^H^H^Hupdated, and a lively and informative userbase ... why go for a book instead?
Hell, just have them read
topreacher@signature.slashdot.org 1% rm -rf sig
I thought the owner was insane, so I just ignored it. It would never surprise me now if I learned that she had spied on me. Of course, maybe that was brought on by the paranoia of reading something that, like this book, promotes paranoia.
Can I bum a sig?
I need an old programmer and a young programmer.
The power of Christ compels you...to compile!
Sometimes I doubt your commitment to Sparkle Motion.
1. Tell the truth. 2. Stay out of other people's business. 3. Do the right thing.
Yes, there are some things that can't be avoided. If you are under attack by someone trying to get ahead or find a scapegoat, you have to defend yourself. But, even in these situations, there are choices.
I always save my last mod point to mod up a good troll. You people are too serious.
Is it something like this?
Batlock...
This review makes it sound like "Tin Foil Hats for Dummies". Yes, I am a conspiracy theorist. Yes, HR has to reply to me via email, perticularly how they can justify working salaried employees past 40 hours a week while paying them less than $27/hour in direct violation of the FSLA. Yes I move all of my personal/HR emails offsite. Yes, I encrypt when necessary... but TEMPEST?
Cmon, TEMPEST shielding is like putting up a grounded copper cage around my cube. I don't necessarily trust my management to make sound IS/IT decisions, but some common sense will go a long way in covering your ass. No, I'm not new here, but I must have missed the memo that said Tues/Thurs is Feed The Trolls day ( TIFTD ?)
-B
Is this really the "corporate landscape" for many software engineers? A job so bad where you feel compelled to check for keyloggers, keep paper trails locked in a home safe, etc.?
Granted, I've not been out of school that long, but every job I've had was in a friendly, cooperative environment w/ good people who wanted to write good software. We don't assign blame, we don't sabotage people's code -- we fix problems we find and give each other help when its needed. But then, I've always worked in scientific computing, so maybe I'm not in the "corporate landscape" as such.
So am I wearing rose-colored glasses and blinding myself to the cut-throat world of commercial software development, or is the author of this book simply over-reacting?
Also, if I were to find myself in a job where I felt a need to take the precautions suggested in this book, I'd be looking for a new job. I can't believe that any company could maintain such a draconian work environment and keep employees.
I now sit back and await all the posts telling me how naive I am. :-)
Maybe not, but having taken a couple of grad courses in Comp-Sci, I can say that the day we all switch from PCs to 5-tuple one-tape Turing Machines I will so be set.
Joking asside, Universities aren't about practical education (barring Medicine and Law...and to some extent Engineering). You don't go to university to learn how to be Bill Gates (god forbid). You go there to learn how things really ought to be. Then again, despite how ideal Universities try to be, research ends up having its fair share of backstabbing and intellectual thievery.
Before the morons start quoting prices from B&N vs. Amazon, let's remember there are more than those two online. Try shopping at AddAll. It's a shopping bot for books. Prices: Overstock: $21.99, BooksAMillion: $27.44, Amazon: $27.93. Switching to BestBookBuys we get BookPool at $22.50, along with (click for the results, see Amazon in 5th place!: results. And finally, we go to BookPool with a price of $22.50. Now, can we quit using B&N and Amazon ONLY? Jeez. http://www.bestwebbuys.com/books/search?isrc=b-hom e-search&q=1590592344&t=ISBN&x=16&y=13
If the subject of the book is similar to the review, then I agree completely with the author. Computer Science in the corporate world is nothing like it is in the academic world. Something that is accurate and efficient in college is often not something that is done in a company.
The concept of politics is something that changes the meaning of the work you do at a company. In college, you are given an assignment to do. You do it, you are graded on it and you move on. At a company, you are asked what the customer wants in their software, and are not given specs. You are supposed to guess what they want. You are also never given a realistic timetable in which to do the project.
Some of those hindrences to doing a project are caused by outside forces, but most are caused by inside forces. Someone is trying to impress someone else in the company by promising something before it can be done. Or they may have their team develop a project and then release it to upper management only to find its not wanted.
Politics plays a huge role in what happens to the programmers at the bottom as well. Utimately everything that occurs to the programmer can be a result of politics. If someone cancels a project, it may be that they simply didn't like the person doing it.
At my company, we are in limbo over whether we will continue to develop a program to do something that we currently license software to do. To replace the functionality of the software will take a couple months and is nothing more than a couple of webpages and a database. We pay $250,000/yr for the outside software and can save all of that by doing it in house. The reason we are having trouble is politics. Certain people dont want the software inhouse.
Is it in the best interest of the company? No. But it's in the best interest of someone at the company. Thats a danger inside such large corporations, but it is how business gets done.
http://github.com/gbook/nidb
Given the sordid aspects of working in an IT department, you'd think that this would make for a great cheesy, soap-opraesque TV show a la Melrose Place. Backstabbing, surreptitious monitoring, random sexual encounters...uh, was that mentioned in the book?
"I doubt very highly that your instructors will tell you how to handle all the nasty little things that can occur when humans work in groups..."
/., dilbert and userfriendly to get the same instructions, but usually we start reading these only after we've learned about this stuff the hard way.
That's the problem right there. Every student getting a degree in computers should take a mandatory class covering office politics, hiring legals, and how to deal with various peers, managers and devil^H^H^H^H^Hmarketing people.
Sure, we can read
they pretend to pay us so we pretend to work. In the UK, developers salaries are cheaper than some hourly rates offered in India with outsouring companies ... but moving along ... it comes down to the fact that good programmers are rarely good at getting on with people.
If you can do your technical stuff well and be a nice person (even better a popular preson), a company will value you and you can rise above office political bullshit.
The books author sounds embittered by the fact that joining the software industry at the height of the tech boom didn't make them as rich as (Kill) Bill. Get over it and get along with people.
"It's not your information. It's information about you" - John Ford, Vice President, Equifax
Does he address how to surf Slashdot during business hours without being caught?
So far my best reaction is to begin shrieking like a schoolgirl and I don't think that's going to work out long-term.
People go out and learn martial arts to protect themselves just incase. (Well... most of them do) They don't just go out and learn it to take down the next person they meet on the street.
Just because this information is laid out as it is, doesn't mean you should use it just because and cause such a malicious environment.
Remember, it takes everyone to create that happy environment.. but just one person to create that malicious environment. This is for that time when that one guy (or guys if you are really unlucky) is on you and you need to protect yourself.
My preferred guide to software development is the corporate environment presented in a fine piece of cinema. You may have seen it. It is called "Office Space." So far the only thing I've found lacking in reality is Milton.
====
Crudely Drawn Games
The Man will still be using your taint for a ball rest.
Ref: Amazon has this book for $3.50 cheaper than bn
And soon, Amazon will have a patent on "$3.50 less" too.
Opinions on the Twiddler2 hand-held keyboard?
I used to work in the backstabbing corporate machine. The place was real hell. I had a program pulled out from under me on the day before our populated circuit boards arrived. The Principal Engineer called a meeting with the CEO, the COO, head of sales, etc. and said "I don't know what they're doing, but I'd do it this other way." To call it a hatchet-job would be overly polite.
We produced meeting logs and design review documentation that was signed by the backstabbing PE, etc. It didn't help much, as the PE was the CEO's butt-boy.
Folks used to think we were overly paranoid because we made the managers physically sign all of our documentation. After "Black Thursday," folks had a different attitide.
I'm sure there are places to work where the office politics are pretty benign. Unfortunately, there are a lot of weasels out there, and they thrive on "improving" situations that already run well. Enjoy it while it lasts.
Here's a short version of what you need to know when you're working for someone.
Do you know the difference between a cost center and a profit center?
A cost center's something the business needs to do but doesn't make any money. Think accounting, or maintaining print servers -- the goal is to make its function as cheap as possible. One attractive way is to offshore it, provided things work out as cheaply as possible.
A profit center makes the business money. Like software development, or whatever it is that the business does: doing a good job will make the company money.
It's always better to work for the profit center.
I'm sure it is an entertaining read with perhaps some salient points with regards to the IT industry. But, does this describe anything truly different or more dystopian that what an average non-IT worker puts up with in his own non-IT world with non-IT managers? I think we tend to make more of our own situations than is justified; work environments are similarly screwed up regardless of the industry.
i dont want to leave college...
Good. Don't. We don't want you out here anyway.
Having mentioned this many times and been modded down into the netherworld, I'll mention it again in hopes that someone will catch on.
This book is all about one thing: negotiating. It's a skill that is seldom taught formally, and yet is used every day of your life. Even when you were a wee babe trying to figure out how to get a cookie from mommy, you were learning to negotiate.
Unfortunately techs are usually poorly equipped to negotiate skillfully, a fact I learned personally when my scum-of-a-boss-who-I-thought-was-a-friend ripped me off for thousands because I didn't know how to negotiate properly. For years I was bitter, until I started checking out books and audio tapes on how to negotiate effectively. Bottom line: it was my fault I got ripped off.
You've only got three resources: time, energy and money. When you work for an employer, it's a give and take of how much of those three resources you're willing to exchange. The best teacher of negotiating I've heard so far is a guy named Roger Dawson (I won't post the link, just Google his name or go to your local library).
So now you MBA's out there who know what I'm talking about can mod me down now.
Ruby on Rails Screencast
You're exactly right - and that's the crux of the problem. You can't expect to get a business environment to change unless the change is bought into from the top level, down.
I used to work for a place that had a very dysfunctional corporate environment. (Basically, their various locations around the country were structured in such a way where it promoted competition between them. This meant that if one plant figured out a more efficient and money-saving process - they'd keep it to themselves and actively try to prevent employees of other plants from figuring out how it worked. Nonetheless, maximizing their profit as a whole was what the company really needed - since they didn't exist as independent businesses.)
Management paid lip service to the idea that changes were needed, and spent considerable money on training materials and an in-house instructor to help improve things. Unfortunately, the policies put in place that caused these problems to begin with were never modified. (Managers were still paid bonuses based on their productivity relative to the other locations' productivity, for example. Documents that should have been openly accessible to all employees were locked down with security permissions based on a plant's physical location. The list goes on, but you get the idea.)
Ultimately, I came to realize that the owners of the business and upper-level managers they appointed really didn't want to change. Sure, they wanted to see improvement - but only within the existing structure, which was flawed.
This is a little bit on the extremist side. I took a few org behavior classes on my way to dropping out of an MBA program. The classes I took were exactly 180 out from how the above characterizes them. As future company members (employees) we were encouraged to think about how to listen to your teammates, to think about how the heirarchical models of employee, manager, and worker were not optimal for good business, rather teams where job title have nothing to do with role could vastly improve the nature of the working environment and the bottom line. This is regarded as "hooey" by the status quo, but embraced by techies everywhere (sorry for the sweeping generalization of my own). I agree that the software industry needs to change, but B-Schools (at least some of them) also recognize this about many industries, and are actively teaching MBAs to be less egotistical and heirarchy minded, and better listeners and facilitators (which all of my good bosses were).
Techies need to be trained in this as well, so that everyone coming in to the working environment understands what collaboration and teamwork mean, and how to contribute effectively in that environment.
Please ignore any grammar and spelling errors, and let me know what you think.
Don't kid yourself; a solid paper trail can save you during a witch-hunt.
How cute. The naivete boggles the mind. Now, grow up and realize that there is nothing that can save you during a witch hunt. Even if you document your way out of the frontal attack, you will be noted as a troublemaker (for defending yourself) and be eliminated on the next pretext that they come up with.
When faces with a purge, the best course is to resign yourself to your fate, and take as many others down with you as you can manage.
I've worked for good managers and bad, and for the most part (aside from having one's department deliberately nuked by an idiot top-management team I eventually outlasted - true joy!) I've never had to put up with much in the way of dirty politics. Most of my colleagues have been and are good folks, the rest don't last. That said, I think the following rules will serve you well:
* Document your work and accomplishments and keep hard copies.
* Act so you need not fear your chickens coming home to roost (great stress-reliever, that).
* Be straightforward and honest, even when dealing with fools and slimeballs.
* If you feel the need to keep a few hidden surprises in reserve, make sure it's not inappropriate to keep'em hidden. Then spring'em with a smile.
If all that fails and political crap befalls you, you don't really wanna work there anyway.
"My strength is as the strength of ten men, for I am wired to the eyeballs on espresso."
Office politics is when:
- The new and impressive system that you've been coding (with love and tenderness) for the last 3 months gets shelved just before regression test phase is over because some middle manager changed his mind.
A crappy manager can easily undo the work of a thousand first rate coders.
If you stick to coding and don't look around (like an oostrich with it's head on the sand), you will constantly be hit by surprises at work (a lot of them not nice).
Pop your head once in awhile and smell the air - you might just see that out of control freight train coming your way in time to dodge it.
Probably not. But Half Life 2 is by now. :)
Example 1: A bank. Phone conversations were recorded (but it was denied if you asked). Email and web access was monitored. If you were overheard talking about leaving your job, you were escorted to the door. If you browsed monster.com, you were escorted to the door. I was hired to make web pages with Visual Interdev, but that was not on the approved software list. So when it was time to renew my contract, I was dismissed because a software audit showed that I had unapproved software on my computer: Visual Studio.
Example 2: A software development company in the health care industry. There was a rather complicated workflow process and one of the managers did not like doing one step because it was inconvenient. During a very nasty meeting (the sort you walk into knowing that someone is getting fired), I demonstrated on the blackboard how the data moved thru the system and where it stopped. I was able to show via the data and paper trails where the data went and who dropped the ball. Until that point, all the eyes were on me and my department was about to get tossed out the door. When I showed the part she dropped the ball on, and several other samples of the same failure, those eyes shifted to her. Because of her relationship with the CEO (not that kind you dirty pervert, they were long time close friends), she was unfireable. When the CEO was later booted by the board of directors, she was given 2 weeks pay instead of notice and walked out the door. Because of her (illegal) immigration status, anyone with an axe to grind could have called up INS and gotten her deported.
Example 3: a small business. Because the person running the business was the vindictive sort (some ex-employees were seached by the police theft of property), as I started to look for alternate employment, I built up a "cya" file at home of things that would get the owner arrested for some serious federal time if they fell into the police's hands (they would only find it if they busted into my house, although a second copy of the file was kept in my parent's garage). I kept that file for about 2 years afterwards, then discarded it.
Example 4: a large corporation. It was known that several hundred people were getting laid off towards the end of the year (about 10% reduction in staff). Some not-so-competant people who were afraid of losing their positions yielded to temptation to sabotage other's software. Your project is constantly buggy, late and over budget? Pack your things. When the sabotage was uncovered, they were laid off too, but the victims were not rehired.
You see, part of the problem is that in the USA we are brought up to believe that we live in a meritocracy. That the better mouse trap will get the market share. That if that mousetrap fails to survive in the market, it was the fault of the makers, not the fault of the others' producers who buy off congress to make the better one illegal. That the better person will get the job. And when we don't get that job, and the person who did get it was not qualified, then we must have done something wrong. Not until we start realizing that the other person got the job because of reasons that had nothing to do with how smart or qualified or better looking or educated, that you will understand that the publically stated things are not the real things. What is said has very little to do with what is going on. Instead, it has become a place where luck is more important than skill, and watching your back and covering your butt is how you make your own luck. Blaming the victim is our national pasttime.
Your naivite is a result of luck and innocence. There will come a day when you are burned badly, and if you are honest with yourself, will dig into and analyse the root causes of that incident. Honestly, I hope you can live your whole life in innocence. The job market is tight enought that people can get away with treating skilled, technical wor
Praise Bob!
V
This book reminds me of Disciplined Minds, a book about the subjugation of personal political and ideological beliefs to the need to 'get on'. In a nutshell, we may all think we're nice people, and we may all believe that it's right to help others, to 'do good' and so on, but when it comes to the modern workplace, particularly the corporate workplace, these ideas are pushed aside. In fact in the modern corporation internal competition is encouraged: i.e. don't see your team mates as your friends, colleagues, etc. See them rather as competitors on the promotion ladder.
When I step back and think about it, I'm amazed that we put up with it. For example, annual appraisals are the norm. Some people will tell you that these are a necessary part of any modern business, and that they benefit the appraised as well as the company. Fine, but never forget who's in the driving seat and has all the power at these things. Who appraises who, and why should the world be like that? We should look at these power structures and challenge them for their legitimacy: what exactly is it that gives *your manager* - who is, after all, another flawed human being, not unlike yourself or anyone else you might meet - the right to actually pass judgement on you and give you a rating? Why do we as a society let this happen? It's not the way normal 'more voluntary', natural human relationships work.
What gives managers that power right now, is their ability to climb the greasy pole quicker than you. And it goes right up the chain, to the top few (in relative terms, absolutely minute) people at the very top of the chain - the people with all the wealth/capital (== power).
The nature of corporations as "systems" is to maximise profit, market share, and so on. That's what they do. If they don't, they cease to exist, because some other bigger corporations either wipes them out or gobbles them up. But this motivation to maximise profit in these huge, powerful corporations does not always, in fact many would argue, does not typically sit well with what we should do as a human society. So we eat up the planet's oil resources and worry about tomorrow tomorrow, we ignore global warming, and occasionally (as was recently shown), we go to war and kill people.
Corporations, the biggest of which are now larger than many countries, and which hold huge political sway in supposedly democratic countries, are 'tyrannical' in nature. Internally they are extremely hierarchichal, with the power flowing from the top downwards. We wax lyrical about how great democracy is and so on, but the vast majority of people spend a huge amount of their lives in a workplace with zero democracy (ever been asked to vote for your manager?). They're pretty much told what to do, and they do it to get on. Or they're weeded out.
Anyway, I've kind of strayed from my main point, which is that the modern world requires "professionals" to behave a certain way - in fact when people say 'be professional' they mean control your natural reactions and behave in a way that the surrounding entity dictates. Anyone who doesn't conform to this either (1) doesn't get on, or (2) is weeded out of the system.
Please excuse the excess verbiage.