This Blog Has Moved!

My blog has moved. Check out my new blog at realfreemarket.org.



Your Ad Here

Friday, August 22, 2008

Idiots vs. Reality

"I'm Working for Idiots" generated a relatively large number of reader comments (four). Are people more interested in stories relating to my direct personal experience? ("Psychiatry is murder/fraud!", "Rails sucks!", "Working as a software engineer is like being a slave!")

I have an update of what's going on at work.

The new manager/investor clarified his position via outsourcing some of our work. He doesn't want to outsource the entire product, just bits of it. (Or rather, he wants to outsource the whole thing, but can only get away with outsourcing bits and pieces.) A lot of money is going to be wasted on the outsourcing vendor, and they probably won't produce anything. The vendor's product doesn't fit with what my employer is doing.

The new manager/investor is now saying "Rails is awesome!" His line of reasoning appears to be

"FSK thinks/knows I'm an idiot. FSK says that the Rails project is a disaster. Therefore, I should say that the Rails project is successful."
In this manner, my efforts to set things on the right track have completely backfired.

My boss is still delusional. When we first started with Rails three months ago, he said "Rails is a magic productivity enhancer! We'll have a working prototype in a month!" It's been three months, and they have nothing. My boss predicts at least another three months, possibly even longer. My boss denies having said "We'll have a working Rails prototype in a month!"

At this point, 3 months have been invested in Rails. This makes "We spent 3 months. Why not spend 3 more months?" sound attractive. In November, my boss will say "We only need 2 more months. We spent 6 months. Why not invest 2 more?" In January and February, he will say "Only 1 more month!" In this manner, software disasters can be extended indefinitely.

Since it took at least 6 months to do a 1 month project, I don't see how anybody can claim Rails to be a magic productivity enhancer. If DHH were working here, maybe we could use Rails successfully. Was it a mistake to use Rails? Probably, since nobody here has used it before. Has my boss horribly misused Rails? Definitely. They hired a relatively competent Rails consultant, and they have nothing.

Realistically, rewriting their website in another language was a one month project. It's a very simple product. I could probably do it by myself in a month in php or Visual Studio ASP.NET/C#.

The Rails advocate and the new manager have decided to tag-team against my "Rails sucks!" opinion. It is, after all, merely an opinion. In the area of software development and business, there is no objective standard that can be applied, such as "Does your application run and behave as desired?" or "Do you have customers? Are you making a profit?" Their deadline is 3 more months away. Their plans don't include a working prototype until 3 months from now. This is another good rule. If you're managing a software project, make sure there's tangible demonstrable results every month, so you know if it's off track.

The Rails idiots are focused on cool Rails tricks and not the business logic of my employer's product. They picked a huge database design before writing any code. They have excessively used joins and polymorphic tables. Instead, they should have added tables one at a time as they needed them.

The founders of the business are all marketing specialists, with no knowledge of software. I see now that was a disaster from the beginning. Starting a software company without a qualified technical person on parity with the founders is a mistake. Whether the marketing owners realize it or not, they have a software startup.

The new manager/investor excels at butt-kissing and buzzword bingo. He does not have any useful technical skills. If he had any talent for managing a software project, his first suggestion would not have been "Fire the programmers! Outsource everything!" The owners are themselves marketing experts, so he's speaking their language (marketing) rather than my language (writing software that works). He is "an expert with 20 years industry experience". Is that 20 years of experience writing software that works and managing software projects? Or, is it 20 years of experience in butt-kissing and bullying people to get your way?

"Outsource our software development" sounds attractive to someone who knows nothing about software. Anybody with a clue about software would say "I'll hire a few qualified people and write it myself."

Apparently, the new manager/investor made a deal that said "I'll invest $X in your company. You will then spend $X on my consulting/outsourcing buddies." The new manager has some sort of connection to this outsourcing vendor. Notice that the investor has bought a chunk of the company for $0. The investor has risked no capital, but he has a call option in case the business succeeds. The outsourcing company can now claim "We have $X in revenue! Our valuation is $10*X or $20*X!" In this manner, valuation bubbles inflate.

Such tactics were common in the .com boom. An investor put up a bunch of money, which was immediately used to purchase consulting services. The company that had money "invested" in it claimed a huge valuation. The consulting company got to claim revenue and a lofty valuation.

The new manager has no incentive to say "Rails sucks! Let's try something else!" He currently has a riskless position. If the Rails project is a disaster, then it's my current boss' fault and not his. If he recommended a different approach, then it would be his fault if it didn't work. Saying "Scrap Rails! Do something else!" requires ability, balls, and a backbone. The new manager clearly lacks all three.

The Rails guy and the new manager cut a deal. The Rails project continues, and some work will be funneled to the outsourcing vendor. It's "win/win" or "cluster****/cluster****", depending on whether you follow idiot reality or real reality.

I have a viable alternative to Rails, which is "I could do the whole thing by myself in a month using Visual Studio." The only loss is my salary for a month, plus a VS license, if I'm wrong. If you compare that to the money wasted on Rails and the outsourcing vendor, that's cheap.

Currently, I'm doing maintenance on the old Java/spring/jsp/beans product. I'm not working unpaid overtime to do a rewrite in Visual Studio or php. I'm better off working on my blog than bailing out their sorry ***es.

I accepted a below-market salary, because I'd been unemployed for awhile and had no bargaining leverage. There were vague promises of options, but no written offer. Verbal offers are worth $0. If I had been given a huge chunk of equity or options, then I'd be motivated to say "**** this! I'll rewrite it myself!" Why should I bother? It's not my money being wasted. It's not my $500M business opportunity being squandered.

At some point, my employer needs a working product to attract customers and get more VC money. The Rails project is vaporware or cluster****ware. My boss did have the balls to insist on using Rails, but he doesn't have the ability to say "Is this project going well? Should we try something else?" At this point, my boss is in too deep to admit he screwed up, and the new manager is more interested in "make FSK feel unwelcome" rather than fixing the project.

This is starting to get into ****edcompany territory. At some point, my employer needs a working product. If they don't get a working product soon, they'll blow through their seed funding and they won't get their next round of VC funding.

This is a prime example of what happens when a bunch of marketing people start a software company without a qualified software engineer as co-founder. If you're a marketing specialist and you hire someone to manage your software, then you'll judge them by their marketing ability and not their technical ability. Marketing ability is uncorrelated or anti-correlated with technical ability. When a marketing specialist hires someone to manage a software project, the odds are that they'll get a professional con artist and butt-kisser rather than someone who knows what they're doing. "20 years of experience" can mean "20 years of quality software delivered" or "20 years of experience butt-kissing and bullying to get your way".

The marketing people have great connections in the financial industry. Even if I could make a better competing product on my own, I could not get my foot in the door with customers. There's a lot of interest in my employer's business, but they don't have a working website.

"FSK should get a new job" may be good advice. Should I be a good wage slave and suck it out and do my best? Should I say "**** this!" and start looking for a new job? Even if I start looking for a new job, it may take months to find something. A new employer would likely be just as clueless.

In this manner, the employment system is biased against individuals. An employer can get 100 resumes just by posting a job request online. It takes an individual months to find a job. I have to jump through the required hoops, just to demonstrate my hoop-jumping ability. "You switched jobs too many times" is a valid criticism, but why should I waste time working for idiots? The defect is in the economic and political system, rather than with me.



Anonymous has left a new comment on your post "I'm Working for Idiots":

Because, you are selling your time. What should you care if the project going in the right direction or not?

I'm working at a small startup. At some point, my employer needs a working product to raise their next round of VC funding. I'm getting paid a below-market rate. There were vague promises that would be rectified when their next round of VC funding comes in. (It's foolish to believe that, but I'd been unemployed for awhile and had no other offers. I had no bargaining leverage, so I accepted a lousy deal.)

I'm not working for a large mega-corporation. If the product doesn't work, my employer is broke.

Moreover, why do you think your opinion should matter?

If your attitude is "I'm a code monkey dancing for my corporate masters", then why should I care?

My attitude is "I'm a highly skilled professional, with valuable skills, experience, and insight." However, if my experience were marketable, then I'd have a better job than my current one. "Marketable skills" and "useful skills" are uncorrelated or even anti-correlated.

As Dilbert's boss said, "FSK must be an idiot. He is working hard for practically nothing."

I enjoy reading you, don't get me wrong, but just as you, from time to time I catch myself as being pissed at my boss. Then I calm down and ask myself, who asked me what I think and what is the reason I am mad even if I do work for an idiot?

I object to working for idiots, because the rules of the economic system make it hard to start a new business. Most businesses are founded by idiots with connections, rather than by skilled workers.

"Connections trump talent" is a symptom of a defective communist economic system. I would be happier in a free market, but the USA does not have a free market.

You can say "If you don't like it, then switch jobs!", but switching jobs isn't as easy as it seems.

Anonymous has left a new comment on your post "I'm Working for Idiots":

Sometimes the bosses' idiocy is a threat to your livelihood.

FSK is a programmer. The new boss is touting an approach that says "Develop your website without any programmers! Just drag and drop!" In other words, the new boss is saying they don't need FSK on the payroll.

I'm pretty sure the new boss would fire me if he could. There's a PITA bug in the old system I'm having a hard time fixing. The new boss is saying "Look at what a lousy job FSK is doing. He can't fix this bug!" It isn't my code! Maintaining someone else's piece of crap is very difficult.

"Outsource everything!" is a threat in two ways. First, it's stupid advice. It's dangerous because it's costing my employer money. There's still substantial effort required to customize the third-party tool to my employers' needs. Second, "Fire programmers and outsource" is equivalent to saying "Fire FSK!" Of the two, "Outsourcing is stupid!" is the important point.

The new boss is an idiot. A tool which promises to eliminate the need for programming (or other work by creative professionals) will never produce anything but the lowest common denominator result. Certainly not anything which will stand out in the marketplace, because the competitors will have the same tool too.

That's right. I could probably produce a customized equivalent result in a few days of work.

The new boss thinks "I don't like having skilled programmers around. They have an annoying habit of telling me that my ideas are stupid. The highly paid consultant says all my ideas are brilliant!"

Would you see anybody other than a mechanic to fix a car? Would you hire a mechanic directly, or hire someone to hire someone else to hire a mechanic? Similarly, if you want software written, you need programmers. Outsourcing is attractive to people who can't manage programmers themselves.

The new boss is an expert in marketing/hype/butt-kissing. He isn't bringing any actual skills to the table.

I also noticed another idiot intimidation trick.

Idiot: Rails is awesome!
FSK: Rails sucks!
Idiot: You're being narrowminded.

Idiot: Outsourcing is awesome!
FSK: Outsourcing is stupid!
Idiot: You're being narrowminded.

If you dismiss a stupid idea as stupid, you're accused of being narrowminded. That's an aspect of pro-State brainwashing. All opinions are equally valid, including stupid ones. There's no objective standard of truth. Am I being narrowminded, or am I capable of recognizing a stupid idea and saying so?

FSK is right about another thing: such tools are Procrustean beds, which typically fail to address the unique aspects of any non-trivial application.

I hadn't heard of "Procrustean bed" before. Rails is a Procrustean bed. Public schools are Procrustean beds. The current economic and political system is one big Procrustean bed.

Anonymous has left a new comment on your post "I'm Working for Idiots":

>>What should you care if the project going in the right direction or not?

Because doing something you don't care about or can't get behind is soul sucking. I don't consider it "selling my time" either. And I do think my opinion matters. Those are very "wage slave" (to use an FSK term) thoughts:

"I'm just here to do my job, no matter what it is, as long as I get my paycheck. And if I don't like it, I can find another job. But while I'm here, it's pointless of me to complain."

That's the point. I'm a highly skilled professional and I want to produce a high quality product. Maintaining crappy legacy code is wasting my abilities. The Rails disaster is a waste.

Consider the example of a policeman. "The judge told me to arrest FSK. I'm just doing my job and following orders. Why should I care if the law I'm enforcing is wrong?"

Once you accept "I'm doing my job and just following orders", then all sorts of crimes can be justified.

My employer is writing financial software. The financial industry is purely parasitic. In the large scale of the economy, it makes no difference if their product is a smashing success or a total failure. The financial industry will leech the same percentage of the economy either way. However, I do feel bad for the owners. They seem to genuinely be doing the best they can, given the circumstances. A lot of their money is being wasted, and their business opportunity is being squandered.

I do a job because I take pride in my work, find enjoyment in doing something well, and using my mind to create something useful. If an idiot boss is going to get in my way of that because all he is concerned with is not getting railed on by higher-ups, then ya, I think I have every right to take issue with his idiocy. If they decide my comments are not useful, or I decide there is no longer a chance of impact, then I'll move on to a different job.

Doing what the boss said just because the boss said it is silly in my book. Ya, I probably wouldn't last a second in some jobs, but oh well; having an independent thought and being more than just a worker bee is actually important to some employers.

When I first started working here, things were going well. It was fun to do a small php project and getting it to work, but integrating it with the rest of their crusty system was problematic.

That is the big question. Should I hang out here and hope things improve? Is it time to move on? "Wait and hope things improve" is the slave attitude. On the other hand, sending out resumes and interviewing is a PITA.

When you consider that "the guy we hired to revolutionize our development group" turned out to be an unqualified idiot butt-kisser, it may be time for me to move on.

eagledove9 has left a new comment on your post "I'm Working for Idiots":

Everything you've been saying about the Rails disaster reminds me of the time when I worked for a startup company that went bankrupt and shut down, in 2001. You even said yourself that this project was a 'startup killer.'

This definitely looks like a "startup killer" mistake. At some point, they need a working product, and that isn't going to happen based on the current trend.

Hiring the wrong butt-kisser is also a "startup killer" mistake. A marketing specialist cannot help but hire a highly-skilled butt-kisser to manage their software. (I mean someone who excels at butt-kissing, and not someone who excels at actually managing a software project.)

The company I worked for was a recruiter. We used the internet to search for resumes online, and get people hired for technical jobs. Then, as this wasn't as profitable as he wanted it to be, he started making his own website to do it.

The management became delusional when their money losses became so severe, it was obvious the business would never get out of debt and would have to shut down. The owner was going to be stuck with the debt after going bankrupt. During the 'delusional' phase, they desperately tried ANY crazy thing to magically earn huge profits while spending nothing at all. They started trying to automate everything more and more so they wouldn't need to employ anybody - just like your new drag-and-drop website builder that doesn't need programmers.

My boss is definitely in the delusional phase. My boss is saying "Let's hire 10 more Rails programmers and then everything will be all right! That's what the book 'Mythical Man-Month' says you should do!"

Hiring the butt-kisser new manager was also a big mistake. He now has the owners' ear via his butt-kissing ability. He got what he wanted. Money is being funneled to his outsourcing buddies. Why should he risk anything by making an opinion on the Rails project?

Automating things is a good idea. You still need programmers and employees and a working product. A software startup outsourcing their software development is a totally stupid approach. If you're an MBA who can't manage a software project, then you might as well outsource. If you aren't technical yourself, you'll get conned by a slick marketer rather than hiring someone who can get the job done.

If you have no clue about software, then you have no business starting a software company. If you try to start a software company without any knowledge of software, then you are almost definitely going to get ripped off.

The whole startup was built on borrowed money. Over time, the payoff, the profits, had to get more and more huge to balance out the ever-increasing debt.

The owner did eventually go bankrupt and we all got laid off. He started working out of his home instead of from an office and he re-hired a few people to use the computers in his home. I worked there for a while but eventually left because I had some personal problems going on in my life.

Your situation, everything you've said, sounds SO SIMILAR to all that happened at that job, that if I were you, I would be definitely concerned about the business going bankrupt. It is likely that you will have to look for another job.

I'm not responsible for the debts of the owners. The worst thing that can happen to me is a layoff. I don't know how much personal debt they have risked.

"It's time for FSK to find a new job" appears to be good advice.

If I were managing a startup, I'd go for organic growth via reinvested earnings. That is tricky, because the rules of the economic system require businesses to "Get big fast!" An agorist business does not have "Get big or die!" pressure. An agorist business should be funded via reinvested profits.

And the owners will be stuck with a big debt - I feel bad for them. My boss seemed so sad and confused afterwards - he couldn't understand why the 'irrational exuberance' of the dotcom boom had suddenly disappeared. Everyone had hoped that it was a great opportunity, but it was a terrible disaster.

I hope this turns out okay for you and the company.

The owners aren't just going to be out their own savings. They really do have a $500M-$1B business opportunity. At some point, they need a working product.

If they could get their software actually written, they'd have a terrific business. I even offered "I can outperform all these clowns by myself in a month, using php or Visual Studio." My offer was declined. I did my best.

Is it time for me to move on? I suspect "yes". If my employer doesn't get a working product, then they won't get more VC funding, and I'll have to switch jobs anyway. I'm getting paid a way-below-market rate. My current job isn't anything special. You could argue that if I was that smart, I would be paid a lot more, but the economy is bad right now. I don't have connections or an impressive buzzword-loaded resume.

Sometimes, I wonder if "Disagreeing with FSK" is equivalent to "Disagreeing with reality".

5 comments:

Anonymous said...

Has it occured to you that you would get more money and options if you cooperated with your company by doing what they ask instead of writing here for half the day while you are at work?

I hate to break it to you, but you are their employee and they are paying you to write on your blog. No, sorry, my mistake they aren't. If you take pride in your work than do what they ask because this will not look good for you and your refusal to do work on your next job interview.

You say that the company is being run into the ground and they want to hire more programmers. FSK, you are an intelligent person and say you can program, please do it, if you do, your job will reward you, if you don't then you will yet again be looking for a job.

Lysander said...

Ok, I've been there, done that. Even thought rails was magic (for about a month before I realized it was really half assed.)

I worked for a horrible company with horrible managers much like you describe, run by incompetents who had no clue about software development and didn't even recognize that they were a software company. That companies' name is Amazon.com. Many people perceive them as a success but the incompetence within their walls is astounding-- thousands of highly trained engineers reporting to managers right out of the DMV.

You do need to leave. There is no point in abusing yourself by staying. I don't know how much experience you have as a developer, but I'm guessing not a lot because you're putting up with a really raw deal.

Its possible you're in bumfuck nowhere, and that's why you're getting such a deal. If that's the case, seriously consider moving to a major city-- from Seattle to Houston, there are lots of choices, it doesn't have to be the bay area- and you'll find much better run businesses seeking engineering talent and knowing they have to treat engineers well to attract and retain them.

But let me lay a secret on you-- your "marketing oriented" startup needs you more than it needs the founders. If it really is a 500B opportunity, and its primarily a software problem, you should leave and start a competitor to them. Do it yourself. Finding marketing people is easy, and good marketing people are easier to find than engineering people.

If you hang out in startup circles you find there are scores and scores of people looking for partners to cofound companies with. (So it wouldn't necessarily be you doing it on your own).

Reality is you got a raw deal here. They made a promise (options) and as yet have not kept it, thus you have no moral obligation to stay. You're not being used appropriately, and you should leave, because its highly unlikely they will ever change.

Take your time finding a better job if you want to go work for someone else in the same area (and by the way, I learned early on to ask how many shares the company had outstanding on a fully diluted basis-- cause otherwise 10,000 options should be a lot less valuable than 1,000 options-- depends on how big a slice of the pie each one is.) And of course, your equity should be in your offer letter, or don't take the offer.

Good engineering talent (and I can tell you are at least decent, above average) is rare and valuable commodity. Every day you stay there you are selling yourself cheap.

Working for others is an easy solution, but in this day and age it takes a lot less investment to start a company- and so you should consider working for yourself-- or getting on a path to doing so.

Opportunity is all around you. And when you're working for yourself, your boss will work you even harder, but he'll be much less of an asshole.

gilliganscorner said...

FSK,

Lysander knows exactly what he is talking about. How do I know? I've been there.

His most valuable quote: "If it really is a 500B opportunity, and its primarily a software problem, you should leave and start a competitor to them. Do it yourself. Finding marketing people is easy, and good marketing people are easier to find than engineering people."

One of the things I learned is this:

"A corporate project manager/sponsor is not so much as concern for the success of a project as he/she is concerned about being held accountable for its inevitable failure."

Lysander has defined the key for you. If you have good personal skills and your software engineering is a clear as your blog writing, I would be looking to make the leap. I did. There were some scares along the way, but it was worth it in the end. Then again, I am not aware of your financial situation, so it is pretty easy for me to speak for you ;)

BTW, off topic, isn't it odd that your blog seems to attract alot of people in S/W engineering or IT?

Anonymous said...

In the software business, there are usually some legal barriers to prevent employees leaving and starting up a competing company.

So even if you hooked up with someone who had the financial connections you lack, you probably couldn't go into direct competition with your current employers. At least, not right away.

If your employment contract with the company didn't include a non-compete clause or a non-disclosure clause, for example, then your bosses are even bigger idiots than you say.

I'll bet Amazon has those clauses in their contracts. I know Microsoft does, because I used to work there. ;-)

Lysander said...

Non-compete clauses are unenforceable, for the most part, in Washington state (Where MSFT and AMZN are)... but of course who wants to be tied up in court.

I meant more that one could start a company in the 500B market area, rather than a direct competitor.

I don't think you need financial connections these days. The path to success does not involve wasting the first couple years of your startups life with VCs. (Been down that road too.) VCs are even worse than the bosses he's dealing with as they are totally clueless but feel the need to force technology decisions on companies and are able to do so because of their hold of the purse strings.

37signals.com has a blog which talks about how they did it, and their philosophy of business which is pretty decent and useful.

Its not for everybody, and many people start off consulting or contracting to keep the money coming in while working on their product....

The intellectual property clauses these companies force on employees (generally pretty damn asinine, as they claim to often own stuff that was developed prior to your employment, etc.) are just another reason to work on your own terms, rather than someone elses.

This Blog Has Moved!

My blog has moved. Check out my new blog at realfreemarket.org.