I was all set to write an informative post about HashSets today, but I'm not going to.  Instead, I'm going to finally start what will be a new on-going series here on this blog.  The series will cover the things you *shouldn't* do if you hold some sort of managerial stake in a software project.  Sadly these tales will be from my own personal experience working for companies that have drifted into disarray.  These examples will be embellished  somewhat to drive the points home, but by and large, everything you will read in these posts will be true. 

Before I begin, I want to be sure I explain why I'm doing this.  It isn't because I'm bitter about what's happened (well, maybe I am just a tiny-bit bitter), it's because I hear tales like these all the time, and hopefully the stories here will help save future generations of developers from the same pain and torment that I and my co-workers have had to endure.

With that out of the way, let's begin with our first recommendation for running a software development company (into the ground)!

Show no respect at all for your developers

Your developers are lazy.  They don't have the same passion or drive that you do.  They don't care about the bottom line!  In fact, they spend most of the day playing solitaire or something!  Developers LOVE solitaire!  No, they're lazy, dispassionate, and they don't even know what they're doing!  Sure, most of them probably have been writing code for much of their lives.  Many probably went to college and received degrees from respectable universities, but they practically give those diplomas out these days!  Little Jimmie down the road can make a web page in Microsoft Word, and he's only 12, so there's really nothing special about the developers.

"Alright!" you're probably saying to yourself.  "What can I do to show my developers that I don't respect them?"  That's a great question!  First, when you give them a task, and they come back after "looking at it" for a week and say it isn't feasible, or that it will take more than a couple of days to do, tell them that they're crazy!  Explain to them how because it sounds simple when you say it out loud that it must be simple to code.  They may counter at this point with some mumbo jumbo technical crap about how there are technical or legal barriers that you're not considering, but that just means that they're not as passionate as you are.  Even if they do a mathematical proof showing you what it isn't possible, you can just ignore them.  Math isn't important.  If they were passionate, they'd find a way to bend the laws of physics and time to get it done!

Another great way to show your developers how much you hate them is to constantly bash them behind their backs.  Talk trash about the development team to everyone else in the company.  Devalue every little thing they do.  When they do accidentally get something working right, be sure not to thank them.  If they start to feel appreciated, they'll just go back to playing solitaire.  When the developers ask you for feedback so they can try to better themselves, don't give them anything useful.  Even better, don't talk to them at all!  Why are they bothering you instead of working, anyway? 

"Ok, those sound like good starts, but I still feel like my developers think they're normal people or something.  What else can I do?"  Try this: don't give them anything they say they need, especially not computer hardware.  A modern $399 Dell desktop should last for at least three decades and has all the features needed to do software development.  Don't buy them licenses to software either, at least not without making them set themselves on fire or something equally painful first.  And definitely, DEFINITELY, don't listen to them if they want additional resources for maintaining production systems.  Those systems are in production!  They're finished!  You don't need to spend any money or time on them.  Servers can support an infinite number of users and an exponentially increasing workload.  That's why they call them servers!

Remember, at the end of the day, even though your background is in raising cattle and you have trouble checking your E-mail, you actually know more about software development than your development team.  They're an expendable asset; developers practically grow on trees!  Show no respect for your developers!  If you follow this simple advice, you will be rolling in money in no time!