The Bosses Do Everything Better (or So They Think)
theodp writes "Some people, writes Dave Winer, make the mistake of thinking that if the result of someone's work is easy to use, the work itself must be easy. Like the boss — or boss's boss's boss — who asks for your code so he can show you how to implement the features he wants instead of having to bother to explain things. Give the code to him, advises Winer. If he pulls it off, even poorly, at least you'll know what he was asking for. And if he fails, well, he might be more patient about explaining what exactly he wants, and perhaps even appreciate how hard your work is. Or — more likely — you may simply never hear from him again. Win-win-win. So, how do you handle an anything-you-can-do-I-can-do-better boss?"
Programmers themselves really often make the mistake of thinking that everyone else's job is simple and easy and doesn't require much knowledge, or that companies should be spending more resources on programmers and IT than other departments. Best example is sales and marketing people. Programmers think it is completely unnecessary, but quite frankly, they would perform really poorly trying to do that kind of work. And I say this is a programmer-since-I-was-a-kid, but only picked up some sales and marketing skills after becoming an adult (I run my own business).
I think I also know why programmers suck at sales and marketing people. Programmers, and geeks, quite often lack the social skills and knowledge of human psychology to succeed in it. I know I used to, and many slashdotters say they'd rather be left alone to work on code. Frankly, these are important skills. Programmers have the ability to read code, error messages and everything else that is presented to them as facts and clearly. They have the mindset of a computer, "do x, get y". What they lack is reading people and other things when it isn't presented to them in a straight, clear form. Programmers fail to see subtle hints and expressions. They need it in clear. Maybe it's a difference in brain or something. It's also why so many people with Asperger syndrome are overly fascinated by computers. They also cannot read subtly things, they need it in clear. Code, compiler messages and computers provide that.
Which is also why I don't understand why programmers and IT usually put down other departments like sales and marketing. Maybe because they don't understand that it is actually hard work, and requires learning just like you do with programming books. Yes, some people will be good at it naturally, but majority aren't. It's the same with programmers and pretty much anything. The fact is, sales and marketing is hard work. It's especially hard to do it correctly, as it's usually the sales and marketing people that are responsible for the product gaining any users.
You can have everything right in your product but if no one knows about it and if there's no one telling you what would your product improve on the persons work or life, then your product is almost useless. This same trend can be seen with Linux and to an extend with some Google (and other geeky companies) products. Just throwing something at wall to see if it sticks doesn't work. You need to do your research, you need to interact with your customers and most importantly, you need to provide them with something that actually fixes a need they have. "But GPL is free, and leads to code liberation" frankly doesn't cut it. Most people care about their own needs, and that does nothing about them. Sales and marketing people are good at researching, reading and telling people, from the customer point of view, that what would it fix in their lives, and it is an essential skill.
I started my own company.
Giving (access to) the code to your boss is probably a very bad idea, unless you know he's a talented programmer of course.
The problem is that once is done with his (probably poorly written) code, he will consider the task as done. But by the time this code will need tweaking of fixing, he probably won't have the time or will to do it himself and it will be YOUR job to dive into this mess and sort things out.
If you're lucky enough that it's actually _your_ boss who is question, the you should really fight for better communication and for him letting you do the job correctly, explaining to him that its not as easy to write _good_ code as he thinks, etc. This, of course, might not be an easy task depending of how stubborn he is.
If on the other hand the request comes from a customer as it often happens to me, then you're probably screwed and will have to accept his code and live with it.
... I'd opened quite a few Wordpress scripts before I did anything beyond modifying lines in header.php, footer.php, index.php.
> Give the code to him, advises Winer.
I recall a more general advice from the series: don't upset people serving your food.
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
As a Human Resource Manager I will tell you that this whole article merely displays the anti-authority attitude that many people in the IT field have. The author self-validates his own beliefs and cognitive biases by not only ignoring and fighting against his superiors, but by setting them up to fail. If the code (referred to in the article) were well written and commented, then the executive who took a programming course should have had no problem completing the task. Well written and structured code should be easy to modify and improve.
I personally always find resistance from IT people when trying to get them to do something. Usually they are just too lazy and stubborn to complete tasks in a time efficient manner. When I remotely monitor their computer screens, for example, I often see 1 or 2 minutes at a time when code is not being typed into the terminal. There is no excuse for such laziness. And many of them want to be paid for "over-time" when they don't complete their tasks in a time-efficient manner. But I tell you, if they don't bother to finish their tasks in the scheduled time then they shouldn't expect to get free money by working over time.
Many programmers in fact are socialists. I've noticed that many of them are against businesses and capitalism, as can be seen by their anti-SOPA, and pro-copyright-theft ideologies. If programmers would be smart enough then they wouldn't be programmers, they would be a boss like me telling them what to do. It's obvious that the people complaining about their superiors are just jealous.
I guess since this is Slashdot I can expect to be moderated down because people just can't handle the truth.
You can have everything right in your product but if no one knows about it and if there's no one telling you what would your product improve on the persons work or life, then your product is almost useless. This same trend can be seen with Linux and to an extend with some Google (and other geeky companies) products
Chrome has issue 44106, which despite countless requests for an implementation, was labeled "Won't Fix".
One developer says:
"Commenting on this bug has absolutely no effect at all on the likelihood that we are going to reconsider."
Then goes further to say:
"We made the decision not to make this configurable long, long ago, even before we WontFixed this bug in comment 59 (over a year ago itself). Accordingly the bug is closed because that reflects not only our current stance but the position we've had for a very long time."
So thus "bug" sounds like a feature! Now, talk of listening to customers.
Be like a swan paddling upstream. Graceful on the surface, but working like crazy underneath. I don't buy into the idea of embarrassing your boss by making him look stupid. Who is that going to help? Certainly not the person who made him look a fool. When it comes to promotion/pay raise time, who is going to get the bacon? The complainer who makes his superiority known, or the guy who shuts up and gets the job done without fuss?
Chrome was designed a certain way, if you don't like the design, then don't use it. What next, you are going to file bug reports with Ford because you want only 2 wheels on your car and four is a bug?
Why can't I file a bug with MS for making windows have the close button on the top right where I don't want it and no way to change it?
A bug is something where something does not work as intended.
When something is working as intended but you want it to work a different way, that is called a feature request. And yours was turned down. Google, MS and nobody else owes it to you to implement YOUR feature requests in THEIR product. If you want to dictate how a program should be designed, pay its development.
But of course that won't wash with your sort, everyone should do everything exactly as you want it for no pay.
Easy bet that you yourself have never done anything for anyone else ever in your entire life.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
It's me you're talking about, right?
When I remotely monitor their computer screens, for example, I often see 1 or 2 minutes at a time when code is not being typed into the terminal. There is no excuse for such laziness.
So you'd rather have a programmer write junk so that the terminal appears busy? Let me inform you that I can write a script to populate my terminal regularly, so that people like you get satisfied, while I continue to do what I want.
Remember that a big portion of getting good code written takes place in the head, not at the point of typing.
I remember times I had to think and obtain a particular solution while driving home, then get it implemented the moment I am at work. So as I am refreshing my mental faculties, people like you think I am wasting time! Coding is not that simple. Trust me. Why do you think there are bugs in software that are decades old? Is it because programmers are "lazy?"
Salespeople think that techies are ten a penny and they prattle on about social skills, as though having a conversation is some sort of talent.
I would argue, at considerable length and with many resources to back me up, that knowing how to code properly and deliver working software applications is a significantly harder skill to master than reading through what competitors have to offer and simply know what else is available in the same field. The programmers generally know all this stuff too, it is after all their job to produce it, they just don't want to tell people about it because if you are looking to buy something... and this is the clincher... why don't you already know about these things yourself?
I am amazed that people actually listen to sales people. When I want something, I research it, find the best price and buy it from the best looking combination of reputable dealer / lowest price. Very simple. If all people did this then there would be no need for sales at all. As is fairly obvious, I am a programmer, but I also run my own company. My sales team is constantly changing because they keep failing to meet the sales numbers that I used to get when I was starting up. Even with a start up I could out sell these "veteran salesmen". When people used to call me and ask the same questions over and over about my software, I used to just send them the catalog and tell them what else was available. It is very simple. Do it with a smile, give a cup of coffee when they come in, take them to the nice room in the office with the potted plant and the meaningless nonsense on the walls and hey presto! An idiot bought something that they already wanted and, for some reason trusted someone, who is making money off of them only when they buy from him, to tell them what is the best option.
Therefore, sales people exist because most people are stupid. It is no wonder that the sales staff hate the programmers. They generally incapable of doing the programmers job though lower IQ and capabilities (you know it's true). They also realize but openly deny that most programmers simply refuse to speak to customers because customers ask the stupidest questions that don't warrant a reply, instead insisting that all techies are autistic troglodytes. Sales also have to deal with idiots asking the same questions day in, day out. Knowing all this, and dealing with all that they deal with, it is no wonder they get pissed off at the people who are capable of actually creating something useful, who get to sit away from the idiocy of the consumer, in their own little world where they actually get some level of job satisfaction.
I imagine the pay difference also adds a little salt to these wounds.
Sales sucks. It is the refuge of people who think that being able to get people to buy something they already want is a skill.
Thank god for that, I've always hated those moveable bars, they always get messed up. I wish someone would choose the best place for them and keep them like that. So I agree with the design choice of the Chrome team.
The worst possible design is where you make it configurable, then people mess it up, so you create an option to make it lockable. a-la Windows start bar.
Good for them
Did it ever occurr to the guy that he was being conned? I mean: he gave marketable software code to a board member he never heard from again?! I wonder how much he made selling the code to the competition...
I had a boss that thought he could configure a Cisco switches for an after hours rollout. He bragged about how he had budgeted 3 days to do the configs but finished them in 4 hours and spent the rest of the time watching anime. We get them installed and he had done the DHCP config wrong. Meanwhile 3 of us are waiting for him. This goes on for a few hours then he decides to use Windows 2K3 for the DHCP. He wouldn't even let anyone else look at the configs. I was a contractor but the other 2 guys were salary. They were pissed at having to wait around from 7PM to 11PM after a full work day (no O/T, no comp time). I was the hourly contractor on the team that was getting overtime so I was happy. I seem to run across the know-it-all bosses quite frequently at small companies. I think at larger companies management is more specialized so you have a business admin type vs. the promoted sys-admin or network-admin at smaller companies.
They assume anything they don't know how to do must be easy. Programmers are just as vulnerable to it, perhaps even more so. Many programmers suffer what what I call Smartest Motherfucker in the Universe Syndrome. They seem to feel that they are way smarter then everyone else, way better at what they do, and as such could do anything better.
You can see it all the time on Slashdot when you see people whine about why a company won't just magically make everything secure or bug free. These people falsely assume it is easy to do and that if they were the ones in charge they could do it easily. They either falsely believe their own code to be completely bug free or more often believe that what they do is really hard, but what the other guy does is easy.
It just seems to be a human condition for many people. When someone else is responsible, they figure it is easy to do and cannot understand why that person won't just do it.
So that bosses have it too is unsurprising, but let's not pretend like it is just a management problem. Heck, you can see the problem manifested in the attitudes many people have towards management. They think it is easy and/or useless and they could do it better. Actually being a good manager is quite difficult and hence there are plenty of bad ones, particularly since it is a different skill from being a good worker. You can promote a good worker in to management and find them a bad manager because it is a different skill, one they aren't good at.
Give the code to him, advises Winer.
Or, 4) he cannot understand the code, blames the code and, by extension, you, and you life gets more difficult. Personally I agree to give the code - who knows what their hidden competencies are, but option 4 is possible. Them's the chances you take...
Your boss gets to define what 'better' is, so it's a battle you can never win.
Last project I had, I wrote 80% of my teams code, was involved in all aspects of the design and the end product was a big success as a result. What do you imagine would happen for the next version?
a) I am empowered.
b) I am dis-empowered.
Yep, b), excluded from design meetings, told my input isn't wanted, and that I was exaggerating my contribution. I decided the best thing to do at that point was to leave. I could see some of the choices they'd made were train wrecks. Although I offered them alternatives that would deliver the same feature in a way that wouldn't break the product, they weren't even discussed. The meeting had already taken place, the people 'in-the-know' had made their choices and entrenched their positions.
What did I know, only all the algorithms they would break by their bad choices. If only the people making the decisions had been the type than can understand algos, I, or one of the other programmers could explain it to them, but they weren't and we couldn't.
I hear I am to blame for the current mess in the project. Bosses are always right, and just re-write history if needed.
'better' is defined by you boss right up until his project is cancelled.
Not really.
Sales/marketing is about finding out what a customer WANTS ... and then convincing the customer that he (she) NEEDS your product to be able to get whatever they want.
http://www.theaxeeffect.com/
You've probably seen the ads if you're in the USofA.
More likely they are trying to sell the product based upon the product's capabilities.
Not by claiming that it will provide (for example) the ability to "radiate rockstar vibes all day long".
Not really. But it gets back to the "rockstar vibes" and the radiating of such for the duration of a day. The programmer is selling a product that he (she) has a concrete understanding of. Does the customer NEED the features in the program?
Meanwhile, the salesguy is selling the image of being a rockstar in industry X and how such a rockstar would need this program to achieve that. Whether it will actually accomplish anything like that or not.
Again, that is easy to do for the programmer.
But that is not how marketing/sales works. See the above Axe example.
Which is why the golf course is so often featured in the sales/marketing plan.
The way I see it, the human race evolved with certain abilities - but not everyone has all those abilities and inclinations to equal degrees. Thus, we have the familiar broad categories of extrovert and introvert, for instance. Everyone has seen extreme cases. Like the extrovert who can't be happy unless surrounded by people, talking, winding each other up, having relationships... always something happening. Or the introvert who hates social occasions because it's so hard to get a word in edgeways, and even then the wrong words somehow seem to pop out of your mouth so your clever pick-up line comes out as an offensive slur, or your clever joke falls flat because the timing is off. Much easier and better to stay alone reading, coding, watching moves, and maybe drop someone an email from time to time.
Guess what? Sales and marketing people tend to be extroverts, and programmers tend to be introverts. It's not a perfect correlation, of course - there are outstanding exceptions, and some perfectly bloody people seem to be good-looking, sociable, popular, good at sports, clever, and able to accomplish huge amounts working either alone or in a team. But it seems to me that sales and marketing are merely extensions of a natural human ability that most of us have to varying degrees: the ability to persuade, to manipulate people, to make oneself liked. Most really good salespeople know the important rule that the first thing you must sell is yourself; once clients like you, they want to help you and do what you suggest, and half the battle is won. (Incidentally, politicians tend to be consummate salespeople, which is why so few of them are introverts - and those few who are don't usually get very far).
Meanwhile, a lot of introverts end up studying and working a lot - because they don't have the urge to be partying and socialising - and become experts in relatively solitary subjects such as science, math, and programming. In the process, they learn the central importance of intellectual integrity - in other words, respect for objective truth. To an engineer building a ship or a bridge, or a programmer developing a suite of code, the facts are mostly clear, solid, and not up for debate. This is the core running gag in Dilbert: the engineers share a vast body of scientific facts and figures, which is their common heritage. In contrast, the PHB is a quintessential salesperson/manipulator. To him, it's hardly important if something is true or false; all he cares about is whether it will get him what he wants.
Our future - if we have one - depends on developing our ability to think scientifically. That means logically, honestly, objectively, and with intellectual integrity. Everything you think you know should be open for discussion, and when someone else demonstrates that one of your opinions is wrong, you should be pleased because now you know more and you have shed a false belief. Unfortunately, clear honest objective thinking is as alien to human nature as breathing air is to the average fish. Long ago, as we know, some primitive fish scrambled out of the water and gradually gained the ability to breathe air and stay on land for longer and longer periods - and from them sprang the whole immense diversity of air-breathing life we see around us today. But even air-breathing land-living mammals still enjoy a refreshing swim (providing there aren't any man-eating sharks around). Just so, even when people have learned to think regularly, clearly, and honestly, that doesn't mean they will lose their emotions and the ability to "groom" one another and enjoy socializing. But it does mean we'll get our priorities right, and decide important issues by scientific thinking, not by crocodile-brain manipulation of other people's emotions.
I am sure that there are many other solipsists out there.
I think Winer's story extends out to a myriad of professions (mainly technical ones, but plenty of others). If an observer doesn't understand the work you do, they think it can't be too hard. Most folks overestimate their own abilities. I run a small IT company - we've got a few employees of varying skill sets but all pretty good at solving network issues. But I still regularly see clients complain about how long a task takes, or how a five-minute fix couldn't have been that hard. Car repairmen still get bitched at by people about a $200 bill to replace a tiny part.
There are good programmers, there are great programmers, and there are assuredly mediocre programmers. But that's what they do - and they are guaranteed to know more about it than virtually any layperson. Just because your car runs does not mean you know how to build a car. If your lawyer gets you off the hook for a crime you didn't commit, does that mean you could be a lawyer?
It takes very little skill to stock shelves in a grocery store. But a person who is doing that for a living definitely is better at that task than we are. More people need to understand this basic fact.
Of course, then people would be convinced that they were better at understanding facts.
-- Josh Turiel
"2. Do not eat iPod Shuffle."
There's a whole angle you guys haven't covered yet.
There's tons of companies with aging products, but there isn't a next-generation replacement for them yet. So then really funny things happen in reverse. The sales side knows their product has horrible flaws and tries to weave smoke and mirrors to sell it anyway. Then they yell at the software team "why isn't that bug from last year fixed already?"
I'm not even talking about cool features of the week. A certain enterprise accounting package I use at work had a bug so bad that if you chose the wrong report menu option it crashed the entire program including the paid license allocator. It didn't get fixed for six months because the vendor only issued two update releases a year.
Less party-story side, that same package has a creaking 20 year old code base that they are desperately trying to overhaul while they (vendor) tries to put silk togas over the front of the pig hoping that it might still be Some Pig. The Vista switch nearly drilled them.
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
My boss is not interessted in code. Just if there exists enough/sufficient tests. He assumes that the code fulfills all requirements (e.g. maintainabilty). Why should he read through it?
This solution works for me too. Hand the code over. If it's clear you know what you're doing and have covered all the angles, I'll leave you alone. But even if you do know what you're doing it often helps to get perspective from someone who isn't so close to the work. And sometimes the boss has seen a lot of stuff you haven't and can open up new approaches for the experienced coder, too, because most people only learn what they have to know to get the job done and move on, so it's possible the boss has seen things that have been outside your critical path.
However, there are also a great many coders out there who honestly don't know their ass from their elbows and program by rote. This phenomenon has grown exponentially since the tech industry decided to outsource all work to India and China and insource H1-B's from India and China. So having a boss closely manage code development is often the only thing standing between endless spec minutiae and getting something to market.
Your mileage may vary.
Do what you can, with what you have, where you are.
> Give the code to him, advises Winer.
I did that. Gave my sweet PHP code to him.
What I got back was a rewrite in JSP... :(
"Or — more likely — you may simply never hear from him again. Win-win-win."
Only on Slashdot would a breakdown in communication be described as a best-possible outcome. Making nice things requires talking, usually.
Programming, by far. Any fucking FOOL can be a sales/marketing stooge. I've done the business education and comp. sci. education and the latter is far more difficult. By far. The truly "hardest part" of sales/marketing's this: Dealing with people! However, that's easy with 1 single principle - give them what they want (and yes, they want it, they'll pay for it). A truly good product also doesn't really need "advertising", it sells by itself, and usually via word-of-mouth. People DO talk to one another you know. You're doing it now in fact (new news right?). In fact, to be very forthright and rather blunt about it?? Most of the stupidest undereducated fools I've ever met in this life ended up in sales/marketing jobs (where crooks abound beyond belief as well - which makes it doubly sad that yes, they make the most in any company and usually rise to CEO titles, because of the power of money & their "innate ability" to make "cliques" to crush opposition whether its correct or not (politics are for weasels people, face it)). Yes, I was an extremely successful salesperson in my day selling very high price/ticket items in fact, but it demanded dishonesty (which I was not comfortable with at all) and I also knew it was selling myself short. I wasn't living up to my full potential doing it. I had to change careers and always respected computer geeks. Sales didn't take intelligence. It required more guile and 1/2 truths at times than intelligence and education. I'm now and have been for the past almost 18 yrs. now a successful many time internationally published software engineer. I've been on both sides of the fence here, and I know what group has more intelligent, better educated, and BETTER PEOPLE OVERALL in it, and it's not marketer/sales types!
My problem isn't that my boss asks for my code, wanting to implement features themselves. My problem is that my boss doesn't know what code is, nor do they care to know. They regard what I do as deeply mysterious, dark magic, and are just glad it works. This might sound like heaven, but it's really kind of a PITA when I need them to go to bat for me with another department and they don't understand the issues involved.
"He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
It's a difficult balance. I used to be them a few years ago before I was promoted and they're doing some of the same work I used to do (sysadmin rather than coding). Thus I have the technical skills to know exactly what they're doing and how they're implementing it. I always have to remind myself when they go a different course that it's no longer me that has to implement and maintain, so they can do it however they want as long as the project gets completed.
Always call the boss' bluff about knowing stuff. If they know, then now you know. If not, then they will learn not to keep doing that. If they don't learn not to keep doing that, then you'll either get to be the boss or you'll eventually get a better job somewhere else.
Challenge the fat fuck to a game of squash.
I wrote my first program at the age of six, and I still can't work out how this website works.
Everyone works in Silos and only wants to trouble themselves with what is required to complete the "task" at hand and be done. Few, if any, reach out to understand the details. Bosses in my opinion are required to do this, but they don't. Everyone is supposed to reach up to their bosses to explain what they are doing, and most of us don't. So there is a constant disconnect and with that comes issues between the levels. Nevertheless, your bosses job is also hard. He/She is probably not going into the details of the real reason why they are making up these tasks, which does not make much sense to you. At some level up there, someone is directing this show. If the top most guy is smart then things always trickle down well - if not, they just don't. If you want buy the stock for a company, one quick way to determine if this company is in fact worth your investment, call their customer service or sales department. Ask them meaningless questions and see how well they respond. A good company will have employees who are patient and have great morale. This is a reflection of exactly what the top has and you can be fairly certain there is clear communication, feedback, ethics, etc. Coming back to the topic at hand, if you do your part to communicate up, then it is mostly appreciated and you are mostly covered. It is hard to change the world around you into a well oiled machine, but you do this at your level by setting your targets right and shooting straight. Don't get pressured, don't get sloppy, don't lose quality - we do this all in the name of "My task was unreasonable to begin with". Or the familiar excuse is "My Boss does not understand". Sure he/she does not. May never will. But who cares as along as you tried. Return negative sentiments with positive logic. Return unreasonable requests with more logic - be it work life balance, or just work - work balance ( as in dealing with customers, colleagues, vendors, etc). Management will take heed and leave you alone, so you can go back to doing the hard work you just explained to your boss.
If he can't explain the required changes to you, then no way is he able to explain them to some Indiot who needs spoonfeeding and can't write "Hello World" without asking on the web in SMS-speak and marking it "***URGANT!!!!".
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Bosses become bosses when they fail with technical stuff. They fail and they are transferred to production because they have "people skills".
Most bosses who can't hack code, or whose development environment has become obsolete, know they can't really cut it. They would talk as though they are better hackers, just for the effect. If you really try to give them code, they won't take it. Or implement a version that works on one particular use case using hardwired codes and logic, throw it back at you and say, "do the rest and handle other use cases". And they will open every meeting with, "I have already implemented a prototype X days/weeks/months ago. My resources are working on tying the loose ends".
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Well, so for me - and this is an SME - I employed people when I found myself stretched. "I can delegate", I said. I delegated. Now there are ten people doing what I used to do on my own. The company has grown, as it was the skills supply that was at shortage, not the demand.
Most of those who have been employed were graduates trained by me, or by others in the team. Not all - certain aspects of the job grew beyond my expertise. Those aspects, I would never consider myself to be better than the experts that are hired. I know my limits.
But maybe 80% of the workflow I can do better, faster, if I had the time. The point is that I value my team completely - they do their best, and they know that I know that. When one of them gets out of their depth in an area of my expertise (software development), I show them a few solutions. They go away - hopefully more skilled. Doing the work for them completely misses the point. They are hired in order to take the work from me. Sometimes they think that I am way too conservative. I am, sometimes, conservative.
It's not because I am the boss, or get more money. I hired people to take on the skills that I am good in, or who can extend those skills.
This comment was written with the intention to opt out of advertising.
at being incompetent and being rewarding for it.
Since the moment I recognized I can write much better code then any of my programmers, I fired all of them!
There you are, staring at me again.
You give the code to the boss and, because he can't do anything with it, gets another coder to implement his fix (it would be embarrassing to him to ask you for help).
Now the boss is indebted to another coder and has your code. Hmmmm, what will happen?
Nothing good comes from sharing your code with the boss. NOTHING/ Keep it to yourself and insist the boss use his communication skills to tell you. If he can't or won't it's no skin off your back.
The notion of my boss coding, much less a senior manager coding, is ridiculous. It would be like asking a walrus to ride a bicycle. In fact, I've never known any manager of our department in history to ever even read a piece of code. What planet are you working on?
If weren't aware that "squash" is a game similar to handball that required a great deal of cardiovascular fitness, I would suggest that a game named "squash" is exactly the game a skinny guy does NOT want to challenge a fat guy to play.
Is it just my observation, or are there way too many stupid people in the world?
and stuck in a cubicle smaller than a prison cell, I had a boss who always knew more than anyone else in the room about whatever topic was being discussed. And he was an expert on all things operatic. And classical music, and art, and mountain biking, and skiing, and etc. This guy knew all there was to know about every worthwhile human endeavor and was an expert at every sport imaginable. Let's not forget that he was also a gourmet cook and an oeneologist!
He was a short little guy, with a big belly and a bacchanalian beard- a jolly looking elf! He had a couple personal habits that drove others around him nuts. First there was the snorting. All day, every day at 30 second intervals he would snort like he was getting ready to hock up a big loogie, then swallow. Then there was his flatulence. Each and every time that clown came into my cubicle to point out where I had made some spelling error on a data sheet or application note he had to fart. I quickly learned to subconsciously keep track of his location by the sound of his snorting so that when I detected he was heading in my direction I would stand up in the narrow entrance to my cubicle and prevent his entering.
The wine crap used to bug me more than anything else. I recall a few occasions when my coworkers and I would go out for a pint after work and end up having dinner at some grubby place. We'd order our burgers for $5 each and this ass-hat would insist on ordering a bottle of wine to "match the food and the spirit of the occasion". Food bill for 5: $30 or 40. One bottle of wine: $90.
We had department meetings on Monday mornings. It quickly became apparent to all who attended these meetings that anything brought up in a meeting would ultimately be done his way because it was always better to do things that way. After a while people stopped saying anything in the meetings. The rest of the department would go out to lunch on Mondays (making sure he was left out of the loop) and hold the real department meeting where things were decided without him. We used to toss around ideas about what to do to get rid of him and someone eventually came up with an idea to get him promoted (out of the department).
We spent the next 6 months doing everything we could to make him look great to his boss. In the end he was promoted to a position as an "individual contributor".
Right about that time I took a much better job at Fujitsu for about 50% more pay.
...and you do what he asks. He pays you to do what he tells you to do, so I don't understand why everyone is so against these sorts of things. Just make sure to cover your ass and document that you did exactly what he said so he can't throw you under the bus for anything, and then collect your paycheck.
What if the boss looks at your work, doesn't understand or like how it was done, and then asserts that your work is shit and that you should be fired?
We deal with exactly this type of boss where I work. He often flies into a rage when we update him on progress on the website. He seems to think that everything we do can be done in a few days no matter how complicated or how many times he changes his mind on something. It got to the point where the webmaster/programmer started saying "Show me how. I'm willing to learn." The boss didn't have an answer for that and now the webmaster doesn't get invited to meetings on the website anymore.
--Erik
And then you see bugs like "It doesn't work" or "I get an error", without even the faintest clue included as to what doesn't work, what were they trying to do, how to reproduce whatever unspecified error was popped up at them, and so on. And then it turns out that -- I kid you not, true case -- the user had read some blog about hackers and installed some firewall on her workstation, effectively forbidding the client program from talking to the server.
Or then there was the case of my friend who wrote a database application for some small company which shall remain unnamed to protect the idio... err... innocent. He gets a call to the effect of "this crap stopped working completely", goes there, checks the ini files, then finally has the insight to look for the database tablespace files. Missing. He asks those guys. Their answer: "Oh, that huge file? We deleted it 'cause it was taking up all the space on the machine."
Or in the spirit of TFA, the boss who thinks he knows everything better than you anyway. So a long time ago, in a galaxy far away... err.. just a long time ago, I make a program for some guys, and let's just say that one part involved uncompressing some data using a sliding buffer. At the start, the buffer was initialized with all zeroes, and the algorithm actually depended on that. So at some point I get a phone call passed to me from their PHB, who's pretty much foaming at the mouth about how the crap just stopped working, and he's going to sue us for millions of dollars, and so on. Turned out he decided to look through the sources (which he had received as per the contract) and "optimize" it himself by removing that buffer initialization. And that was C, not Java, so no zeroing happening automatically either. When the program promptly started producing crap, instead of coming to the idea that maybe his changes made it stop working, he decided that obviously the program had been defective all along. So he calls and threatens to sue.
Or then there's stuff like change requests disguised as bug reports, apparently as someone's idea of being "smart" and trying to not pay for the changes. Or the guy who, when asked why he did a certain thing in a certain way (which incidentally was very very stupid), breaks up into a whole rant about our stuff lacking documentation and how much it sucks that he has to do that by trial and error and generally poor little him and evil us for not giving him documentation... except actually there was ample documentation, including the very specific case of what he was trying to do, and he had been given it too. Or as a more extreme example of that, the PHB who it turned out, didn't read more than the first paragraph, because more than once he did the exact opposite of what told to do or not to do in the second paragraph of an email. And then it turned out he genuinely had no idea of anything that was in the rest of the text.
Etc, etc, etc.
Yes, we make bugs, yes most of us start from the assumption "what did I miss?" but a LOT of times it turns out that the user actually IS retarded. And don't get me wrong, I don't expect the user to be a Linux kernel programmer or anything. But when you hear someone ranting about how much it sucks that action X does nothing whatsoever... when he hits "Cancel" on the second page of the nicely designed GUI wizard for action X, instead of actually continuing... but it's still somehow the program's fault... well, you just have to wonder how few neurons someone can have and still not stop breathing.
A polar bear is a cartesian bear after a coordinate transform.
Why on Earth WOUNLD'T you give your code to your boss if he/she asked for it, no matter how offensively?
It's a copy, for Pete's sake. What are you afraid of, that they'll print it out and scribble on it? (Well, mine might.)
I had a boss right out of college who didn't want to use local variables or parameters. He explained to me that this was how it was done in the mainframe days.
Oddly enough, my aunt was a computer programmer, starting in the mid 60's. She was working when IBM came out with a computer that had the same assembly language as the previous one. (Progress!)
Anyway, she confirmed my suspicions that my boss didn't know what he was talking about.
It's one thing to work for a boss who has to have every idea be his own. It's quite another when that is combined with someone is flawed technically.
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
Anecdote:
..
I used to work as a qualified data entry guy that had to collect all the household analyzed rating data and parse it into some excel sheets. After lots of graphs resulting from the data filtered by several customers targets, the result was one +200 hundred pages printed book personalized for each customer. Totaling near a thousand books every month.
The number of different results was so high that the algorithms should be heavily watched constantly. And I was never as sure as to not expect to find any possible mistake in any output. But from outside, my boss would only see a funny guy that was mostly always sitting down and doing nothing.
The idea that such a heavy and responsible job would look as doing nothing made me laugh a lot.
So much so, that I created a very nice button at the starting page of the Excel sheet that would do all the job without any hesitation. Without human checking any results before hand! But it was so tempting! It was my boss's point of view of my job...
As I expected, later I got fired. But then, I found out that that nice button caused them the lost of a lot of customers, until they decided to start doing all my work again from scratch...
And finally new that mine was really a busy job...
Rwe obliged 2 save our future by choosing:O3 hole-greenhouse effect instead of accepting everydays gossip-nonsense chat?
There are arrogant programmers to be sure, but my observation is that programmers either don't believe they can do the other jobs or don't care about them. I find the "skilled" workers (programmers and designers) usually don't step on other people's toes. Programmers usually feel that they can't or certainly wouldn't want to talk to customers. When they argue over features, it usually is the situation in the article (the request is too vague to translated to code) or one where the programmer is worried about unintended consequences.
Now there is actual research to prove that the bosses are arrogant. When I've talked to managers kind of jokingly, "You should be a programmer and I'll talk to the client for you." What I realized is they really thought they can do my job. When I mentioned that you need to know a lot to do what I do, it was clear that she honestly didn't believe it.
My experience is that the tech vs. non-tech feud boils down to the non-techs thinking that knowing the system is an unfair trick and thinking that the techies are lying when they disagree. The non-managers are jealous of the techie pay, and the managers just plain think they are better than the techies. I often think the problem is techies being low key and NOT showing off their knowledge to others.
Democracy Now! - your daily, uncensored, corporate-free
Because even though I am sometimes the Boss, I am also in charge of code quality, integration with other units and long term support. I'm also a full-time coder so I fully believe in "more eyes on the code begets better code." Secondly, us programmers have a propensity to procrastinate and generally get hung up on the interesting bits, ignoring the boring bits. Having someone that can understand exactly what you're stuck on is always "a good thing." Lastly, there's immediate backup if Timmy gets hit by a bus. Sorry, but it does happen.
It's really difficult to get developers to open up and share code... you have the "hero" guys and you also get the "afraid to be embarrassed" types as well. The faster you can get those types sharing the better your code quality will be - at least that's my experience. A code review with lunch can be a fun experience to kick that off. Giving the programmers some latitude to have their own 30 minute code review sessions with minimum management is good stuff too.
I said no... but I missed and it came out yes.
Because even though I am sometimes the Boss, I am also in charge of code quality, integration with other units and long term support. I'm also a full-time coder so I fully believe in "more eyes on the code begets better code." Secondly, us programmers have a propensity to procrastinate and generally get hung up on the interesting bits, ignoring the boring bits. Having someone that can understand exactly what you're stuck on is always "a good thing." Lastly, there's immediate backup if Timmy gets hit by a bus. Sorry, but it does happen.
It's really difficult to get developers to open up and share code... you have the "hero" guys and you also get the "afraid to be embarrassed" types as well. The faster you can get those types sharing the better your code quality will be - at least that's my experience. A code review with lunch can be a fun experience to kick that off. Giving the programmers some latitude to have their own 30 minute code review sessions with minimum management is good stuff too.
I said no... but I missed and it came out yes.
Sounds like the boss may like to code, or may find it easier to express design in implementation than words.
Hook him up with a rapid prototyping language like VB. (specifically even if you don't use VB) The point is that it takes a handful of minutes to flesh out a gui in the VB IDE. And that's probably the point he's trying to get across to you. It doesn't have to be functional, there doesn't have to be even a line of actual code behind any of the events or button clicks. Just the physical layout and control behavior may be what he's trying to get across to you.
You may also want to consider him to have the viewpoint of closer to a "real user". As a coder I can state from experience that it's easy to get tunnel vision as to "how it's supposed to work" and lose some sight of "how the user wants it to work". At the end of the day your job isn't to solve any stated problem, but to give the user what they need. Not what they want. Not what they asked for. Not what you think they need. The most valuable tool for that is watching a user interact with your code. Treat the boss's request like user feedback. You almost certainly will learn something from the experience that can be applied to improving the performance of the product.
Some of the most important changes I make to my code involve changing behavior based on watching a user deal with a problem they simply have no idea that is changeable or that any alternative exists. I've lost count of the number of conversations along the lines of "this looks like it's getting the job done but wouldn't it be easier if it xxx?" "Well ya, I suppose so.... actually that'd be great if it worked that way. You can DO that?" The boss presenting you with some ideas in gui form may work like that but in reverse, showing you some insight you never even considered. Those are gold.
(once you've become used to a complex process it no longer stands out as something that could use improvement, this applies to both coders and users, and is most quickly identified by someone with fresh insight)
I work for the Department of Redundancy Department.
seriously, if the boss doesn't know where the repo is or how to access it then point him at the correct documentation. remind him unit tests are required and tell him to come ask questions if "he can't figure something out"
4) The boss (barely) manages to crank out some working code. Which she/he will check through subsequent revisions of the product. Just to make sure its still there. And you'll have to maintain around it for the rest of your life.
There's a story that went around Redmond for some time: DOS/Windows sucked because there were a few snippets of code originally written by Gates that no one dared touch until after he retired.
Have gnu, will travel.
If Sales and Marketing staff was all commission based then they'd actually do a lick of work to keep themselves relevant. At one IT company I worked at we'd replace our Sales/Marketing guy at least once per year (the latter part of the title gave him a decent salary and the former gives him commissions on top of a decent salary). They were tasked with selling our product as well as finding needs for customers so we could augment our product or build new for those with need. Lets just say we never found someone who was actually good at doing either, but they had a nice base salary while they were at it.
A buddy of mine was also a salesman in the health care field for years. He'd negotiate a nice living salary with commissions, work about 10 hours a week, and change jobs every 6 months because... well... each company has a level of tolerance for lack of sales somewhere between 3-12 months. He brings in his regular set of customers initially and when new sales quotas don't quite make it (primarily because of his work habits) he'd just move on and someone else was more than happy to make it.
I'm talking 6 figure pay in both cases, yes I was jealous, but I have higher ethics than allows me to take a job like that.
The first step to getting us all more respect would be for you IT technicians to take offense and EXPRESS that offense whenever someone refers to you as "computer guy".
I know most of you lack the spine, but you won't get under appreciated or disrespected again the first time you take someone else's profession and simplify it down to a "guy".
It works with all sorts of prestigious professions: Law Guy, Medical Guy, Money Guy (I recently asked a CPA if he would like to be called that, and he actually told me "his title is a little more important than someone that just knows computers". I walked off the job site), Phone Girl (for receptionists).
You'll find one of two things in every case: 1. They realize that day that they should show you the respect you deserve and from then on appreciate IT workers. 2. They come right out and admit they don't respect your job and actually consider it no more difficult than a postal carrier's job [see "mail man"]).
I once had a manager ask me about a systems outage. I responded in general terms about the event. The manager wasn't satisfied with my responses and wanted further details.
I provided said manager with all the gory details, down to bits/bytes/control block overlay information, with a detailed action plan involving lists of PTF's to be applied, modules being effected, and so on.
Said manager walked away with a stunned look on his face. Never asked me again.
The [person who fails will find a way to mae it your fault. It won't even be malice,. It's just human natutre, and not a low of people train them selves to rise above their nature.
IT will be because:
1) You use too much OO code
2) You sue to little OO code
3) You're 'style' is wrong
4) It's too waterfall
5) It's not waterfall enough.
It's not different then when someone thinks the are 'haunted' and you explain, no, that sound came from a beer can in your vent the contractor left there*, they will find another excuse to confirm their belief.
If you have a boss that tries this, and fails and then says "Hmm, I guess It's harder then I think'. Keep that boss.
Is point about when something is easy for the user, people think it was easy to do is correct. The programmers best defense is documentation. If you have a lot of people treating you like all your work is is, it typing. Take the time to write copious documentation that you include in every release. Details and referenced to Computer engineering terminology is a must. Be sure to refer to sorting algorithms, normalization, and best practices. Don't lie, just be detailed.
*true story
The Kruger Dunning explains most post on
Marketing is far more than people sitting around designing posters or television adverts. Doesn't anyone here actually work with a Product Manager?
You know, those people that own the product, build the roadmaps, speak to clients and internal departments to get their requirements, prioritise those requirements and flesh them out into something a little more useful that can be fed into the technical teams for them to produce low level documentation (as well, as be used for feedback on edge cases and ambiguity).
Or do you think that the business requirements and direction for a product just get made up by someone in the technical team with no consideration to anyone or anything else?
Avantslash - View Slashdot cleanly on your mobile phone.
Really? Really? Does anyone think if you give your boss the code for your project to modify himself he's actually going to modify it himself? Not likely. More likely is that he or she will go shopping for a new brown-noser who they think will be more compliant with their "vision" of the project. Usually they will think they've found someone who can do the job because the boss isnt very good at explaining specific requirements or you wouldn't be in the situation in the first place.
If you ever give the project source to the project manager be prepared to meet you new team member soon.
They'll pass the chore off to someone else. Their basement-child, gardner, janitor, etc. Who, possibly, might even do something practical - which the said boss will duly thrash and trash. Somehow. You do not understand the misery the multidimensional orbits of this pale near-defenceless orb are dipping it in. Savour the moment. What's left of it. And be optimistic. Its a bigger world, out there.
I managed to be the lucky one to acquire a boss written system. I ran grep across the 200k lines of spaghetti php code, the word function did not appear once. Needless to say he got it back rather quickly as I departed. I am sure to this day he still considers himself a master at application development.
Got Code?
Actually, I've always felt like when doing corporate I.T., it's really a big part of my job to ensure everyone ELSE is able to do their respective jobs with a minimal amount of hassle or interruption due to computer-related problems. They all need computers these days, to varying extents, so I'm here to make sure those computers work as more of a benefit than a detriment during their workday.
Granted, I'm not a software developer ... I'm doing systems administration and PC support roles. But software devs should really approach it from the same angle. The company hired them for the same reasons. They're just taking care of the "other half" of the computing problem (software vs. hardware).
I've always understood that a company's sales or marketing staff is critically important to the functioning of the business. I mean, if we can't get our products sold, how is anyone going to pay MY paycheck? So in that sense, no, I don't think less of those people.
The reason I think you see people (myself included) poking fun at sales/marketing staff on sites like /. regularly has more to do with the polar opposite natures. Our sales staff where I work now, for example, consists of a bunch of guys who basically just want to come in to work each day, have some fun goofing around and laughing at each other's stories or jokes, and have a primary motivation of money and bonuses. The single ones often have goals of owning specific things -- new cars, boats, a bigger house, vacation trips, clothes, or money to spend on girls they want to impress.... whatever. The older ones with families are just motivated by having the money to pursue whatever their weekend interests are (such as hunting or fishing) while keeping all the bills paid ... putting a kid through college or what-not. They view their job as a means to an end, but they don't have any particular love of their work, itself. They don't like change very much in the workplace, and they're very much in the "now", in the sense of "What is customer X going to buy from me TODAY?"
I.T. and software devs are quite a bit different. Sure, many of us have goals of buying material things of interest too -- but most of us actually "live" this stuff outside of work. We own nice computer systems at home and spend a lot of time on the net outside of the workplace. Software guys tend to feel a sense of ownership of the code they're paid to work on. There's a sense of pride, similar to the contractor who can drive by a house and say, "I put the roof on that one." or "We installed that driveway." years after the fact. Network admins have a similar sense of pride in a network environment that runs well.
That creates sort of a personality clash, when sales people call demanding a problem be solved NOW and everything's critical to them because "I'm losing orders over here!" Meanwhile, I.T. or software guys can easily see that many times, these situations could have been avoided if they bothered to notify them of warning signs of the impending problem that they just blew off for days before. They often ask for seemingly simple things that computer people think "they should know by now", while they simply don't want to spend the effort to learn all that "techie stuff" that's not their thing.
Points I've learned from observing both sides of the programmer/boss coin:
1) The skill sets required are as different as those required for chefs and mechanics. A person may have both, but they are very rare.
2) A good programmer should recognize when a task is beyond their skill set (usually some form of high-level communication) and involve their boss.
3) A good boss should recognize when a task is beyond their skill set (coding) and leave that to the programmer.
4) A good boss knows programmers like to be left alone, and should enable that, taking care of as much of the communication as possible.
5) A good boss has done at least some programming before so that he isn't oblivious, but is humble enough to know that his programmers are better at it than he is.
I had the best performance reviews for the past several years. So I was promoted. No choice. Here is your (small) raise. Here's your (slightly)big(ger) office. These (former work buddies) are you direct reports. Have at it. BTW, the dress code is suit and tie. Having two kids and a mortgage, in this economy, of course I took it.
The worst part? My former work buddies... some of them were not great coders, and I had to fix their shit. A lot.
I am back in engineering, but I had to threaten to quit to get back.
I had a pilot once who demanded to know EXACTLY what was wrong with his aircraft.
So, I told him.
After that, whenever something went wrong, he'd stay in the pilot lounge until I told him it was safe to come out.
Regards;
A friend of mine once worked for a very insecure boss who never wanted to take on projects he himself could not do. The end result was that the department never produced anything significant. The entire staff moved to other departments and the boss was left with one pre-degree intern. Needless to say, the department died.
Related to the boss-is-best attitude is the idea that skilled professionals should train cheaper people to do their jobs as a prelude to cost-reduction layoffs. The son of a friend of ours was in a company that produced and provided service for a highly-respected software package. A company from another country bought out his company and immediately wanted him to start training people in the other country to do his job. He went straight to a phone and called a friend in another company. By that afternoon he had a better-paying job and resigned. He started the new job the next morning.
The bottom line is, good people are hard to find and harder to keep. Such people need the confidence to move on when a situation begins to deteriorate or their present company does not offer further career advancement (however one defines that for one's self). This is especially the case when it is clear that a layoff is coming.
I deal with an anything-you-can-do-I-can-do-better boss by saying I have a wicked case of the flu and call in sick for 3 days straight. Granted, I come back to work and everything's a mess...but it puts 'em in his place.
Making the complicated simple is one of the hallmarks of genius. A lot of morons don't get that.
Then they yell at the software team "why isn't that bug from last year fixed already?"
And the software team answers back, "It's because we spent all our time trying to cover for your worthless ass cause you kept promising shit without actually consulting with us first."
I've never been more micro managed than my current job... the guy freaks out over every little thing... i dont even know why he hires skilled engineers when he wont let them do the work..
-whatever.
code in assembly language. And remember the rule: NO COMMENTS. Comments are for sissies.
> "So, how do you handle an anything-you-can-do-I-can-do-better boss?"
Grow up.
Just ask him to check it out of the source code repository? You have one don't you :-)? If your boss can figure out how to do that, make the changes, do UT and commit the code in, I'd say go for it.
Maybe he didn't mean _that_ squash, considering the words chosen to describe the boss. Success, of course, depends on the preferences of the boss and your (or sqldr's) skill in that particular area.
Even in "that" squash, the fat fuck would have to catch you first.