Otter Thoughts
A Guide to the Software Industry
Menu

Keep a Paper Trail September 24, 2017

It took me many years to learn and apply this. Perhaps I was naive, or maybe just lazy. I’m sure some old timer talked about it but I didn’t listen. You need to personally keep a detailed permanent log of every single requirement, change, meeting and drive-by managing instance.  No exceptions. The log will save your ass time and again.

The old saying goes “shit rolls down hill”. Well, developers are at the very bottom of that hill. Indecision, lack of planning, and gross incompetence in other areas of the company tend to fall on the backs of the dev team. (Partly I believe this to be due to weak interpersonal skills held by developers on average. Everybody picks on the weak kid.) Developers usually serve the needs of everyone else in the organization, structurally. In effect everyone else is your boss. Idiot salesmen decide what features a multi-million dollar piece of software will have, despite being unable to handle basic algebra or understand the concept of mutual exclusion. When it ships they will say you didn’t build the right thing, assuming they even remember what they asked for. You’re to blame regardless.

The log saves you even before launch. Managers are fickle. They don’t remember what they asked for yesterday. They don’t even understand what they are asking for half of the time. They change their mind constantly. When it’s your word against theirs, you always lose. It’s hard to argue against their own words written in ink on paper.

Since the log is to cover your ass and maintain accountability it needs to meet a few minimum requirements. First, it must be physically durable. Pages cannot be perforated and the binding must not fall apart after a few months of heavy use. A cheap marbled notebook works well. Second, the log must not be interleaved with other information. Often I write the log from one cover and miscellaneous notes from the other side. Third, write clearly, legibly and unambiguously. Channel your inner 12 year old girl if necessary. There is no point in keeping a log if you can’t read or understand what was written.

After a while they learn that nothing slips by you. Change requests have real costs. Nothing gets crammed in. No deadlines get crept. No blame is accepted, no shit is taken. It even starts to border on a healthy, respectful professional relationship.

One time the CEO said I was a week late and asked me when the project would be done. I pulled out my log and read the scope creep he approved of line by line, citing time, date, and place, including the extra labor he approved for each item. I wasn’t a week behind. I had a month left and was in fact two weeks ahead of schedule. He couldn’t argue. He approved every single feature after all. Without the log there would have been pressure to work unpaid overtime. With the log I came out as a hard-working highly capable employee.

A different requirement kept getting flipped back and forth. Each time I kept a log, and each line in the log recorded how many times it had been flipped before. Every time it flipped I confirmed the history before agreeing to the change. When the project shipped and people asked why the feature was one way and not the other, I whipped out the log, noted the history, and quoted an estimate to change it yet again. Their problem, not mine.

There are a few side benefits to the log. It serves as a secondary list of requirements. A few little ones slip through or get lost in the mess every time. The log also encodes the history and motivations of each feature, should ambiguities arise.  Writing in a book with a pen in a meeting looks very “professional” and “engaged” to the sort of people who care about such things.

Keep a log. Start today.

 

No Comments on Keep a Paper Trail
Categories: Uncategorized

Goose Koan

A travelling programmer with many credentials once came to Master Foo saying,

“I have studied in the ivory tower of a distant monastery for 8 years to choose the fattest goose by observing their eggs.”

The master then replied, “This is indeed a great accomplishment.”

“But even the poorest farmer can choose the fattest goose by weighing each one upon a scale.”

The programmer then retorted, “Ah, but what about geese too large for the scale!”

Master Foo replied, “A goose which is too large for a scale is also too large for an oven.”

“And what of geese that are too small for the scale to compare?” stammered the programmer.

To which the master replied, “Do you also compare each grain of rice before cooking a pot?”

The programmer then left in anger, for his training had been in vain but emotion clouded his mind from reaching enlightenment.

No Comments on Goose Koan
Categories: Uncategorized

Stop Negotiating Against Yourself September 17, 2017

Part I here.

This seems to especially affect younger people. I don’t know if they are indoctrinated or cowardly or just plain naive. You don’t owe anything to anyone. You do your job, you get paid. End of transaction. Giving you a job isn’t an act of charity deserving reward any more than giving them your labor. If you are paid well then work hard. If you aren’t then demand a raise appropriate to the greater of your market and organizational value.

Don’t ever “take one for the team”. There is no team. They will fire you in an instant if it saved fifty bucks. The executives will Zuckerberg you without hesitation. VC’s will demand entire divisions to be laid off in order to meet arbitrary quarterly profit numbers so they can dump the husk of a company on Wall Street next year. One naive friend of mine still hasn’t been compensated as promised for working with no pay for six months to help found a startup, after three years and over $2,000,000 of subsequent funding. Did I mention he moved across the country to do this?

Does your title start with C and end in O? If not then the company’s finances are not your problem. If they can’t afford to pay an agreeable wage then move on to someone who can. You are not the company’s rich grandparents. You should not ever “bail them out”. If an executive ever says they can’t afford your reasonable wage requirements because the company has no money, look them in the eye and say “then take it out of the salary of those who are responsible for the company’s finances.” I know several executives who have taken it out of their own pay.

What has “the community” ever given to you that it deserves to be “given back to”?

Are you afraid of hurting someone’s feelings by demanding a fair wage? What about your feelings? What about your family’s feelings? You spouse, your kids? Whose feelings are more important to you: your manager or your child?

Remember there are always secondary consequences. By working for low pay at a company that “gave you a shot” you are depriving another company of the opportunity to give you the next step. By working for low pay for one friend you are depriving other potential new friends of the value of your work. Offering your services at below-market wage “to a good cause” deprives your services to “a better cause” somewhere else. Life consists of an endless series of trade-offs. Money is how we compare them. Make sure you charge appropriately too. I charge an extra $20k per year to have to occasionally use Windows. $15k for OSX. No amount of money could bribe me to work on Android or iOS again, nor to infringe on my family time.

The reason you watch out for yourself first is that nobody else is. Want to help others? Become strong first. Weaklings accomplish nothing.

No Comments on Stop Negotiating Against Yourself
Categories: Uncategorized

Salary Negotiation Foundation September 10, 2017

“Whoever can least afford to walk away, loses.”

That’s what the best negotiator I ever met told me when I asked how he was so good. He had a new car every six months or so, usually top of the line. He bought them new, drove them for a while, then sold them for a small profit. Consistently. For years. While the details of his car flipping magic are interesting they are not germane to this post.

If you need a job to put food on the table next month you are screwed. There is an old saying that goes “For to everyone who has, more shall be given, and he will have an abundance; but from the one who does not have, even what he does have shall be taken away.” When I was a child this seemed nonsensical, even unfair. The older I get the more I realize how deeply the concept is woven into reality. Management can walk away from the negotiation table at any point with little consequence. Can you afford to walk away from the job? With a nice pile of Fuck You Money you have a strong position for negotiating salary and growing your bank balance further. Without it you will end up being forced to accept lower salaries and smaller titles. It’s hard to claw your way up from the bottom.

Yard sales are an interesting phenomenon. People set their beloved treasures and unwanted birthday presents out for complete strangers to bid on. Prices are often little more than suggestion of magnitude. My grandfather used to buy lawnmowers for a few dollars, perfectly good tools for pocket change, and heaps of junk for almost nothing. It was better than watching Bonanza reruns I suppose. One amazing thing about watching him bargain with strangers over kitsch was the suave nonchalance as he went about it. He would hem and haw and beat around the bush but never let emotions get involved. Never underestimate the spite of a manager with a damaged ego. Losing your cool is fatal; they may even fire you out of pure spite ( a few weeks later under false pretenses of course). Desperation stinks, insolence breeds contempt, and impatience induces stubbornness. Your approach must be professional, relaxed, and unemotional.

It is important to know how much you are worth. Market value is how much other people at large are willing to pay for your skills on average. Organizational value is how much you are worth to a specific company in a specific role. Job boards are full of lies and incomparable situations; ask around to find out how much other people with similar experience in similar niches in your town are making. Use some common sense. If someone with 5 years on you is only making $100k there’s no way you can expect to get $95k for a job at a poorer company. If someone with half your experience is making $120k for doing half the job you can easily get more. Figuring out how much you are worth to a specific company is much harder. You can gather clues through the grapevine and compare against coworkers if you already work there. An accurate figure will be hard to come by beforehand. These two numbers provide perspective during negotiation. If you can make substantially more elsewhere go do so. If they are already paying you more than you’re worth to them it’s time to polish up your Github account. If they offer a fair market wage but you know they desperately need you there is room to demand more.

Ridiculous offers have their place. Using them out of place can ruin your position. A high or low ball offer is useful for deflecting the opposite. Suppose $100k is the market wage. They offer $60k. You laugh and counter with $150k. Reasonable offers have a tendency to meet in the middle. Plan for this. Suppose they say $150k is way to much so you come back with $100k as a fair wage. They counter with $90k then you end up settling for $93k and an Aeron chair.  Don’t ever give what you think is the center point; you will only get argued down from there. Supposing you offered $110 instead, still a very reasonable offer, there would have been room to come down and still arrive at or above the market wage.

Don’t try to negotiate with the HR ditz. She can’t make decisions outside of a limited scope. If “salary requirements” are requested by middlemen, deflect and evade. “Ha ha, let’s see if we want to work with each other before talking money. First things first, you know what I’m saying?” People with actual authority tend to act like it. Know who to negotiate with and when to do it. Generally the later the better. Nobody cares if a stranger walks away. Questions will be asked why the charming young candidate rejected an offer. Perhaps a second will follow.

These tips are not exhaustive by any means but should provide a decent foundation for negotiating. More to follow.

No Comments on Salary Negotiation Foundation
Categories: Uncategorized

The Importance of “Fuck You Money” September 3, 2017

This is not a personal finance blog but we have to touch on an important subject. Everyone needs to maintain a respectable buffer of cash to maintain their bargaining power at a job. If your boss thinks you can’t afford to quit he can force you into an unreasonable work environment. If he knows you can afford to quit at any time with little consequence he is forced to respect you.

It is important for those with authority over you to remain aware of your Fuck You Money. Bosses rightly assume everyone is broke, at their beck and call. Be tactful but explicit. Even use the phrase “F-You Money” explicitly. Don’t make overt threats unless you absolutely have to. Many managers have fragile egos and will often fire you out of pure spite regardless of the consequences to them. Lunch is a great time to let it slip. Giving advice to interns or young coworkers is a great time to incidentally be overheard. Frame the conditions of your employment in the interview if you already have savings. I tend to get involved in personal finance conversations with coworkers and occasionally use my bank balance to support my points. Don’t shove it in everyone’s face but make sure you position is kept in mind.

Never bluff. You are likely to be called on it.

So how much do you need? That depends on your circumstances. A full year of expenses should be sufficient for most people. If you live in a hot market and have a resume with decades of experience and in-demand skill sets, then 6 months will cut it. Not that you shouldn’t have more. A decade in the bank affords you Fight Club level zen.

Fuck You Money is on top of normal savings for unexpected expenses. It’s not the money you keep just in case your car dies or your wisdom teeth need to be removed. Be sure to include the replacement value of any employment benefits you can’t go without while unemployed. It’s also not your retirement savings or vacation fund.

Borrowing potential does not count. For one it’s not dependable. Second, it does not provide the same psychological effect to you or to your boss. Three, don’t be willing to go into debt over such a trivial matter.

It’s easier to achieve with a more modest lifestyle. Remember that nobody will rent to an unemployed person; don’t expect to suddenly lower your expenses. Also don’t assume you have the willpower to suddenly reduce your discretionary spending.

Don’t assume you can get a good job in a month or two. Hiring slows down during some parts of the year. Some hiring processes can take a month or more. Don’t assume you will pass every interview.  Don’t assume that what’s hot now will still be hot in a few months. Don’t assume you are as marketable as you think you are. Don’t assume there won’t be a recession.

Your life will be much less stressful with a pile of Fuck You Money in the bank. You can also afford to take risky fun jobs at small startups with more dreams than funding.

No Comments on The Importance of “Fuck You Money”
Categories: Uncategorized