Culture, Culture and More Culture

I should start collecting every good article I read on corporate culture.  The interesting thing, to me, is that the HBR articles seem naive and pedantic while the Linked In ones from founders, visionaries and successful people resonate.

From the CEO of AirBNB and you may need to login first:

Where I work Culture is considered a decisive tool to outwitting the competition, recruiting, keeping smart people and overall enjoying your work.

Yes, I should definitely start collecting these articles.


Article on JavaScript MVC Frameworks

This article came out a lot easier than the last.  It was fun and a good retrospective on some work we are wrapping up.


You are crazy and this is not a technical design

Let’s say you are working on a project.  Mainly by yourself.  And you come up with an Idea for your “architecture”.  Would you think to yourself, hmm, is this really a good idea?  Or maybe, “if I were on a team, would anyone else agree?”  And, what if, yes, what if you still stuck with the Idea.  Are you crazy?


Yes, if that damn idea means throwing all conventional wisdom out the door because it “feels” like a good approach.  

Yes, if you never even bothered to see how others were attacking the problem.

Yes, because if you answered yes to the last two questions you are a hacker.

No, not a good hacker.  

A hack. 

Magic Consultant

Years ago, and I mean years, I was working as a developer at a really nice, mild mannered ecommerce shop. I had been there a couple years and quite enjoyed it. That was before I took the red pill and my eyes were opened – alas – that is a different story.

This moment in the tight market of technical talent calls for a certain kind of story. A warning. Not histrionics, not yet at least, but a guide post to help us recall what is really going on with tech hiring today.

Now, again, years ago at this position we (as in capital M management) were looking to augment our team because we needed more able bodies to get a few important projects done. This is nothing new and of no interest to our gentle reader. Being a corporation, management had contact with these other types of firms called hatchet shops, consultancies, recruiting agencies to get contractors hired for about 6 months at a time. I really don’t know what to call these firms – but you know them, it’s just that if you are reading this you’re probably not the type to actually call one up. More on that later.

Onward. After Management speaking with the “account manager” at the contracting firm, and sending over resumes, some candidates would be chosen to come in and interview. If you’ve interviewed contractors before you know that there is a huge difference in ability and presentation by these guys. Some are real experts who contract because they kick-butt. Other’s can’t find full time work. And yet others are interviewing for contracts, but really work for a consultancy, because there is no difference in software development between being a contractor and being a consultant. No one asks you them to do next anyway.

In come these folks. If we were lucky, 2 or 3 came in during one day as opposed to one a day for a few weeks. All in all, it was fun to meet a bunch of different people and feel smug. Developers love feeling smug. We would ask them our pet questions about .NET, stupid stuff about IIS thread pools, etc. Really, really, stupid stuff. One coworker would ask obnoxious open ended questions which I believe drove him mad because one day he announced he was going to quit in a few weeks but did not have a job. He never showed up again. Ever. And he wore polo’s so the assumption was that he would never do anything crazy. Guys at my gym where polo’s after they change out of their second skin Under-Armor and no one can see their love handles anymore. I find it sad that people dress nicer at the gym than away. But I can tell they prefer the gym. I actually go to a club. It costs more. In case you wondered. And also want to go, though, you can get Under-Armor for home too.

After a while, myself and my coworkers would really tire of this process and after a while really stop giving a crap and just want Management to hire the people. We were never going to touch their code anyway. That was a given.

And then, in came a real game changer. Juan Carlos.

You see, Juan Carlos was not just a regular contractor. He was a Consultant. Trained in the Exquisite Art of Consultancy. He was not an independent contractor being hired through one of the recruiter/contract firms. He was from a Consultancy, which will go nameless save with one hint. The named started with an M. No, not Microsoft.

Juan Carlos had bravado. Juan Carlos was on top of it. Juan Carlos would not only help us with this one project, he would “fix” our whole team. Damn, the whole company! He wore a blue polo with the Consultancy embroidered on the chest. His polo had stylish stripes around the arm holes to accentuate that this polo was not a Chinese Kmart brand but a Chinese Lands End branded shirt. Juan Carlos would fix that too, that being Kmart.

Juan Carlos: “I have lots of experience. What, you’re dot-net here right? Right?”
Me: “Yes, of course”. His consultancy does only .net.
Juan Carlos: “No problem. What kind of build do you run?”
Me: “For which product…we’re talking about a special component we’re trying to integarte with a …”.
JC: “No problem. We’ll fix that.”
Me: “We?”
JC: “Me and another ___ consultant. You’ll need us both.”
Me: “Really. Ok. So tell me, how would you approach…”
JC: cutting in… “Do you have noonit?”
Me: “Noonit?”
JC: “Yeah. Noonit. To run unit tests. Noonit.”
Me: “N-unit?”
JC: “Yeah, yeah.”
Me: “Kind of, well we are ..”
JC: “Don’t worry. You’ll get that too. We’ll bring that with.”
Me: “Bring what?”
JC: “Noonit. And CruiseControl-dot-net.”
Me: “We have a cruise control install.”
JC: “Yeah, don’t worry. We’ll fix that for you. With noonit.”
Me: “It’s not that simple. It’s an webform application with…”
JC: “Yeah, don’t worry. When you hire us, you’ll get noonit and cruisecontrol.”
Me: “Great.”
JC: “Yeah, great”. He smiles. Widely. With teeth.
My coworker just stares at me. Our eyes meet and I know I should just throw a softball at Juan Carlos.
Me: “Well, do you still have time for some questions.”
JC: “Sure. Go ahead.”
JC: “I tell my son I’m so smart because I read all these books. Anything, IIS,dotnet, c#, Active Directory – I read them. I tell him to be smart, he just needs to read lots of books like me.”
Me: ….
Me: “OK. What is the difference between and interface and an abstract class.”
JC: “What is the difference between what?”
I repeat the question.
JC: “An interface. Like in code?”
Me: “Yes. Like in code.”
JC: “Well, we use them in noonit all the time.”

JC: “Let’s see. Hmm. Abstract class and an interface. Let’s see. Hmm.”
I think I see his skin start to shine right underneath his hairline. Like a hundred minuscule pore’s opening at once. With moisture.
JC: “I know this. I’m a trainer too and I teach this to my students all the time.”

JC: …
Me: …
JC: (sweat)
JC: “Oh right, an interface can be dragged from the toolbox control onto a form.”

And there’s not much left to say. Except – always, always, always interview the consultants that are sent over, even if you already have a contract for say, 5 people. Don’t take each one unless they can pass your standard interview, otherwise, it’s like throwing away twice as much money on a regular basis. And what will happen? I’ll tell you.

1) Your staff will hate you for hiring consultants that are idiots. The purpose of hiring a consultancy is to bring in talent on the cutting edge of tech and practice. They are supposed to be getting trained all the time and doing gee-wizz projects. But they lie.

2) The only people making money of this will be: 1) the consultancy and 2) even worse, the account “executive” for said consultancy. He will make bank each time he places someone, not matter how dumb they are.
Again, this is not a treatise against consultancies, so many are full of the brightest minds and talent. This is about making sure if you hire an awesome consultancy they send over awesome people.


InfoQ Article on Cross-Cutting Features

I finally wrote an article for InfoQ.  Cool!

I thought this was be more fun to write than it was.  In fact, it was a battle getting to the end and keeping the original though coherent.  Maybe that is the sign of a weak subject or a weak author. Maybe both. 🙂 All I know, is that other pieces I’ve done have come out easier.

Either way, I’m still proud of the piece as I think the concepts are not discussed much but are really the logical framework to how we frame many of our integration like problems and projects.  It was also somewhat cathartic to get this project I out of my system and onto paper (paper-ish I guess).

Say No More

Mr. Yeggee is always a blast to read and he’s one of my favorite software pontificators. He bashes Amazon pretty well. Some of his points, though, I’m not too sure about. Others I love. Onwards….

“ They prioritize launching early over everything else, including retention and engineering discipline and a bunch of other stuff that turns out to matter in the long run. So even though it’s given them some competitive advantages in the marketplace, it’s created enough other problems to make it something less than a slam-dunk.”

Why can Google spend so much time on engineering and not release software before it’s really (really) ready as opposed to Amazon launching early at the detriment of everything else? Doesn’t everyone know the answer to this by now? Search is a freaking cash cow. Better than a cash cow. It’s like a printing press for money. Cha-ching, cha-ching! This finances all they do. I’m not the first to point this out though as they are today’s Microsoft. Microsoft has office and windows as their cash cows. Google has search, which at the heart, is just ad’s. Yep, boring old advertising. Nothing exciting here (their engineering and infrastructure and mad algorithms are not part of the product critique.)

Google has launched many products that are miserable. I can’t even remember that piece of crap they had before Google+. But, even that name more or less stinks. And they have Maps, which is really nice, and they are learning to strong-arm business by eliminating their competition in the space by offering a free product but now starting to charge for it.

“Their facilities are dirt-smeared cube farms without a dime spent on decor or common meeting areas. Their pay and benefits suck, “

Amazon may have horrific working conditions, but it can’t be that bad. Honestly, Mr. Yegge is probably long removed from some dude slinging VB at an insurance company in the Chicago suburbs. Yegge is a geek celebrity on the west coast with an extraordinarily high IQ. Amazon appeals to every day people at a personal level, I would argue, better than Google does. Google has no real competitor in Search. Amazon has 1,000’s. Yet, people come back to Amazon consistently because their site works, it’s consistent and they bring you satisfaction.

On the other hand Google helps me find things online. Or maybe maps. Yes, I have gmail, but that is really just inertia and stupidity of Microsoft not to offer the same thing with Hotmail. I’ve never, ever, ever clicked an ad in gmail. Ad’s are for suckers.

“Jeff Bezos is an infamous micro-manager. He micro-manages every single pixel of Amazon’s retail site.”

But so was Steve Jobs and he was adored (adored!) daily and posthumously. Why is Jeff Bezos such a bad guy for micro-managing? I don’t understand why one should be loved and another vilified. One brought ecommerce to the masses and one made beautiful products. I see lots of beauty in Amazon – purchase history, recommendations, responsiveness, breadth and depth of products, etc. Don’t even get me started on how fantastic and open AWS is.

“(SOA) #6, however, was quite real, so people went to work. Bezos assigned a couple of Chief Bulldogs to oversee the effort and ensure forward progress, headed up by Uber-Chief Bear Bulldog Rick Dalzell. Rick is an ex-Army Ranger, West Point Academy graduate, ex-boxer, ex-Chief Torturer slash CIO at Wal*Mart, and is a big genial scary man who used the word “hardened interface” a lot.”

Things could have been worse – Bezo’s could have decreed SOA thus, not followed up and Amazon could have just stagnated as a reseller. Sure, who want’s a hard-ass following you around…I get that.

“because nobody’s mom can use the goddamn website. In fact I myself find the website disturbingly daunting, and I worked there for over half a decade. I’ve just learned to kinda defocus my eyes and concentrate on the million or so pixels near the center of the page above the fold.”

This is where I call shenanigans! Shenanigans damn it! This is total fud, my Mom has been using Amazon for years. Everyone I know uses Amazon. No problems. I go there because it’s better than other ecommerce sites. Somehow it works.

“Google+ is a prime example of our complete failure to understand platforms from the very highest levels of executive leadership (hi Larry, Sergey, Eric, Vic, howdy howdy) down to the very lowest leaf workers (hey yo). We all don’t get it. The Golden Rule of platforms is that you Eat Your Own Dogfood. The Google+ platform is a pathetic afterthought. “

EYOD – yep, Microsoft schools all of you. Google. Facebook. Whomever.

“But when we take the stance that we know how to design the perfect product for everyone, and believe you me, I hear that a lot, then we’re being fools. You can attribute it to arrogance, or naivete, or whatever — it doesn’t matter in the end, because it’s foolishness. There IS no perfect product for everyone.”

Duly noted. Say no more. As always, thank you Steve Yeggee for taking the time to contribute interesting things into this world. It’s better with you.

Silence the Code

Lo! It does cry thus!
Of tangled code and broken
bones – what did the
It smells! It smells!

Of other ideas and coding
styles – Lo, what to do?
I will not touch this, I
will not change this – afraid
I am of this.
I will make –
I will not take the blame.

Oh, dearest fool – you think it new
for software to have years?
This is life – this work this is
what we’re paid to do.

Make it better, make it cleaner-
make it faster-
no one hears your cry!

Make a change, read a book
talk to a coding peer.
Just don’t lament the broken lines –
you’re responsible for it now.