Bruce Nussbaum’s article Facebook’s Culture Problem May Be Fatal shows what went wrong when Facebook chose to tell a new story inconsistent with the worldview of their core users.
Update: I am now showing the YouTube versions of the videos to ensure the widest coverage. I have therefore removed the links to the downloadable self-hosted versions of the videos for the time being.
I’m pleased to announce that StoryComplete.com has a new design. As I hope you can see, it stresses the blog’s content and not the information found in most blog’s sidebars. If you’re seeing this post in your RSS reader then please pop over and take a look at the new StoryComplete.com.
I changed to a 1-column design from the 2-column format used by most blogs. The post meta information is right of the post content; all other information in the page footer. This keeps the pages clean and highlights the content, which is, after all, why you’re here.
Software companies often find themselves stranded on islands of excellence, serving a small group of customers but unable to grow. Opportunistic sales result in a few more islands from time to time.
It’s depressing to see companies with excellent technology shipwrecked. A love-hate relationship with marketing is often a contributory reason. We love having many qualified leads, but hate getting our hands dirty with marketing.
Why’s marketing hated like this? In my experience the cause is often the developer background of many managers. Developers equate lead generation with advertising. And developers hate advertising even more than marketing!
I developed applications for CICS on IBM mainframes in the 1980s. At that time IBM had a project to reimplement CICS using formal methods. Reading about the Verification Grand Challenge reminded me of that project.
An ambitious 15-year international research project, its goal is to create a large repository of useful code, verified to the highest standards of rigour and accuracy. An early case study applied automated verification tools to prove CICS is formally correct. For this they used the CICS Z notation specifications from the 1980s.
The clash of worldviews between Apple and developers took a turn for the worse this week. For the first time, Apple will be banning meta programming tools for the iPhone and iPad. Section 3.3.1 of the latest iPhone Developer Program License Agreement states:
Fire-fighting often becomes a core competency at software companies. The usual cause? Our dread of no revenue forces us to accept customers who are not consistent with our worldview. Unique customers cause trouble.
You’re doing the best you can to deliver great software. You pull all-nighters and work weekends to satisfy each hard-won customer. Been there. Done that. But, while it’s great to play the hero fire-fighter occasionally, in the end something’s got to give.
Seth Godin nails it in the 2nd edition’s preface to All Marketers Are Liars Tell Stories:
There are small businesses that are so focused on what they do that they forget to take the time to describe the story of why they do it.
Worldviews change; ignore at your peril. At Dynasty Technologies Inc. in the 1990s, I saw first-hand what happens when your worldview holds you hostage.
Dynasty was a 2nd generation client/server application development tool. Our main competitor was Forté Software Inc. Founded in the mid 1990s, both companies had significant venture capital funding with a growing global base of enthusiastic early adopters.
The Dynasty Development Environment generated native C/C++ code with no runtime system. Forté generated proprietary code with a runtime interpreter. For some developers runtimes were OK; for others a pure incarnation of evil. Customer’s runtime worldview was decisive for sales.
Being remarkable doesn’t always mean you have to develop something large. Sometimes remarkable is small, as this Clang example seen today on Hacker News demonstrates very nicely.
Clang is an open-source compiler front-end for C, C++ and Objective C. The project builds on the LLVM compiler back-end with the goal of replacing the GCC tool chain. Their worldview accepts that programmers can and do make mistakes. Amazing feats of Clang Error Recovery shows how they’ve woven this worldview into the compiler.
What caught my eye was how Clang recovers from unknown tokens. Instead of unhelpful error messages (like GCC), the Clang team chose to do something remarkable: they added a spell-checker to guess what you mean: