Rituals and Religion

From an e-mail I received a year ago:

What does that actually mean? It means facilitating the “rituals” that
are part of an agile team’s work (e.g. the daily stand-ups, the
sprint planning meetings, retrospectives, etc.) and continually facilitating
the team’s discovery of improving the way they work.

What is the difference between a software process and a religion? Nothing.

I’m cool with software process, just like I believe in God.

I hate named software process because, like organized religion, it’s full of theology removed from reality, practice without the empiricism, theory without the application. When you show them empirical evidence on the consequence (or outright failure) of one of their particular rituals, they’re quick to maneuver with the words, “That’s ‘big A Agile.’ I’m not talking about that, I’m ‘little A Agile.’” (Whatever the fuck that is.)1

You can’t pin them down because they actually stand for nothing—there is no “there” there. It is the natural result of adapting a process that originated to allow sub-1000 page software consulting contracts with Fortune 500 multinational industrials in the 80’s and 90’s and blindly applying it to a shoe-string funded startups over a full decade after the dotCom crash in non-enterprise consumer-facing Internet whose entire business is software. Two different worlds; two different failure costs; one would assume that there would be two different names for two different software processes.

Instead there are hundreds of different processes all under the “little A agile” banner. And they look not alike at all. To watch the rhetorical hoops these agile adherents go through to call it “all agile” would be amusing if it wasn’t so unnecessary.

When I was a kid at evangelical summer camp, there was a parable I heard the counselor’s tell:

A man gets the opportunity to visit Heaven and Hell. He visits Hell first and meets Satan and asks, “Do you have any Catholics here?”

Satan responds, “Oh yes, we have a lot of them.”

“Presbyterians?”

“Yep!“

“Baptists?”

“Them too!”

And so on, listing every denomination and finding them well-represented in Hell.

Depressed he goes to Heaven and chats with Saint Peter. “Do you have Catholics in Heaven?”

“No,” Peter says.

“Prebyterians?”

“No, none of those.”

“Baptists?”

“No.”

And so on. Exasperated, the man asks Peter, “Well then what do you have in Heaven?”

“Christians.” Peter responds.

Catholicism is Scrum; Presbyterian is Extreme Programming; Baptists is Kanban. I suppose Hell is the dead-pool, Heaven is getting a getting funded or IPO2, and Martin Fowler is Saint Peter.3 It reads the same.

“Little A Agile”: the “non-denominational Christians” of the software process religions. If it works, it’s “Agile.” And if it fails to get you to Internet Heaven?4

Oh, that shit is “big A Agile.”


  1. If your process is defined by the outcome alone, then it is useless in a business setting. 
  2. A successful exit, in life or startups. :-) 
  3. Does that make me Satan? 
  4. The goal is to have an lucrative exit so you can blog about how hard it is to be a Founder and tweet about your First World problems. 

Pork Tocino

If you live in The Richmond, you know that B*Star Bar is like eating at Burma Superstar but without the line.

Breakfast plate with pork tocino, garlic fried rice topped with two eggs cooked over easy. Spoon in foreground
Pork Tocino with Garlic Fried Rice
B*Star Bar, The Richmond, San Francisco, California, United States

Sony DSC-RX1
0.013 sec (1/80) @ f/4.5, iso400, 35 mm

My favorite brunch dish there is the Pork Tocino. Grilled jerk pork over a bed of garlic fried rice and cherry tomatoes, topped with scallions and balsamic vinegar.

Since Marie loves their Huevos Racheros, I end up ordering this dish a lot. The only times I don’t is when we bring a guest, then I suggest they get it and I order something else.

Continue reading about some WordPress plugin notes after the jump

FYWP #257-262: wpautop and shortcodes/oEmbed do not play nice at all

It occurs to me that wpautop() is the register_globals of WordPress—a feature that was instrumental for its growth and popularity, but really needs to DIAF. They should rename the function wppeepee() because it finds a way to pee pee on your content at the most inopportune moments, causing unending headaches in your code.

For those of you who don’t know, wpautop can be seen as nl2br() on steriods, or (as I prefer to call it) a poor man’s Markdown. It’s been in WordPress for almost forever, and it’s hard to imagine writing a blog post without it, even if it’s a Really Bad Idea™.

Continue reading about the interaction of wpautop, shortcodes and oEmbed after the jump

The Innovator’s Dilemma and the impossibility of remaking an organization

One year ago today (2014-03-03):

During Tech budget and resourcing meeting for the 2014-2015 Annual Plan, one of the ideas proposed was possibly sourcing an incubator group to (re)“build Wikipedia or other major project in line with the Vision from the ground up, without prior constraints from existing technology, processes”, or communities. The idea was, even if it didn’t succeeded it would cause the organization “to think differently, to create energy around being BOLD,” and catalyze the movement.

This had some currency from many of the participants1, even the C-level2 involved, that was until a director argued that this was infeasible due to the Innovator’s Dilemma. Ignoring the obvious misreading of the book, he argued that because this might destroy the existing order inside the organization, it couldn’t be done by the organization itself, and thus the proposal died despite never going up for consensus consideration.3

Deciding that it is politically stupid to point out their Readers’ Digest understanding of a deeply-flawed business text, I instead argued that an organization built around vision, rather than profits, does not have the same constraints that allow disruptive technologies to spell their undoing.

That argument didn’t carry weight because people with more experience than me were sure that this initiative would be defunded in the next annual plan and that no one would ever get behind a project that is a direct threat to them. Incubation outside the WMF is only possibility.

It’s sad that people don’t bother to know the most basic lived history of their own industries (or have a terribly short memory).

I give you the history of Firefox:

The Mozilla Firefox project was created by Dave Hyatt and Blake Ross as an experimental branch of the Mozilla browser.

The Phoenix name was kept until April 14, 2003, when it was changed because of a trademark dispute with the BIOS manufacturer, Phoenix Technologies (which produces a BIOS-based browser called Phoenix FirstWare Connect). The new name, Firebird, met with mixed reactions, particularly as theFirebird database server already carried the name.

The project which became Firefox started as an experimental branch of the Mozilla Suite called m/b (or mozilla/browser). After it had been sufficiently developed, binaries for public testing appeared in September 2002 under the name Phoenix

Hyatt, Ross, Hewitt and Chanial developed their browser to combat the software bloat of the Mozilla Suite (codenamed, internally referred to, and continued by the community as SeaMonkey), which integrated features such as IRC, mail and news, and WYSIWYG HTML editing into one software suite.

Dave Hyatt would leave Netscape4 for Apple in 2002 and go on to architect the number one competitor to Firefox, Safari and WebKit (the core of Safari and Google Chrome). Blake Ross would work at Netscape/Mozilla until 2004 and be nominated the next year for Wired magazine’s top Rave Award, Renegade of the Year as all of Mozilla’s resources had were redirected to Firefox, a project started internally by two employees to combat the poor direction of original Mozilla project.

So yeah, Fuck you.

One Year later

It really is astounding when you think about the level of incompetence that was on display.

There are only two large-scale consumer-facing Internet non-profits: The Wikimedia Foundation and Mozilla Foundation (which owns Mozilla Corporation). Someone makes a statement that everyone accepts and affects the entire annual budget. Meanwhile, the only other company that shares organizational affinity with yours is a living counterfactual to the statement.

I didn’t say anything as I was sitting on my resignation letter and didn’t want to humiliate my colleagues, but the disappointment I had back then was immense. Now that I’m gone, that disappointment has turned into relief.


  1. In the months since this time whenever I mentioned this to a WMF staff member, often you’d pretty much have to hold him or her back from wanting to switch into this team if it were to exist. 
  2. Chief level, as in CEO, CTO, Vice President, etc. 
  3. Not that it would have won that given that this would have required a resource sacrifice among all the Directors… Still, it would have been worth it just to see who cared more about the mission and who more about their fiefdom (or their job). :-) 
  4. Mozilla Foundation before it was separated in from Netscape in July 2003. 

LinkedIn and the dangers of A-B Testing

LinkedIn brags about their use of A-B testing.1

Here is a fucking clue, guys. When you vary where a mail header (from:2, to:, subject: line, etc.), you bypass peoples’ mail filters and of course e-mail open rates will test higher.

Fuck you, LinkedIn

So many companies don’t know the limits of analytics. To those idiot business analysts that are data-driven instead of data-informed: please DIAF. ktnxbai!


  1. Never mind the fact that LinkedIn took years to go viral and only after Reid Hoffman became on Tagged’s Board of Directors. 
  2. invitations@linkedin.com, member@linkedin.com, invitations-noreply@linkedin.com, communication@linkedin.com, messages-noreply@linkedin.com, updates@linkedin.com, communication@linkedin.com, connections@linkedin.com, … 

I'm speaking again!

After a couple year hiatus, I thought it’d be nice to start speaking again — the disconnect of basically stopping speaking at open source conferences when I started working at two companies producing some of the world’s largest open-source products ([WordPress][] and [Wikipedia][]) was becoming too much.

I decided to apply this year. Luckily, [Northeast PHP Conference][nephp] forgot to check the The Great Offensive PHP Speaker Blacklist™, and accepted my talk!

The talk will be: [Ten Evil Things: Features Engineering at Wikipedia][10 evil things]. Now with 30% less swear words, but don’t worry, it’ll still be fun. 😀

When registering, belatedly, I noticed they had an interesting preferences page, I thought I’d share my answers with you

[WordPress]: http://wordpress.org “WordPress: Blog Tool, Publishing Platform, and CMS”
[Wikipedia]: http://en.wikipedia.org “Wikipedia: The free encyclopedia”
[nephp]: http://www.northeastphp.org “Northeast PHP Conference 2013”
[10 evil things]: http://www.northeastphp.org/talks/view/156/Ten-Evil-Things-Features-Engineering-at-Wikipedia “Ten Evil Things: Features Engineering at Wikipedia—Northeast PHP Conference”

Continue reading my answers to their questions after the jump

Enterprise job recruiting

> Hi Terrence,
>
> I am following up on previous emails and calls. I am doing some research on PHP. I understand that you are focused on [canonical model](http://en.wikipedia.org/wiki/Canonical_Model) management, [SOA](http://en.wikipedia.org/wiki/Service-oriented_architecture) or [ESB](http://en.wikipedia.org/wiki/Enterprise_service_bus) initiatives. Do you have 10 minutes for a quick call tomorrow afternoon?
>
> The [redacted] platform enables rapid service design, construction, and management all from a Canonical Model. This enables the following:
> 1) Your services are managed in our repository aligned to all of your business capabilities
> 2) Impact analysis on how a change from a provider system ([Logical Model](http://en.wikipedia.org/wiki/Logical_data_model)) can impact the Canonical and other services
> 3) Rapidly propagate the changes to the impacted services
> 3) Rules based [version management control](http://en.wikipedia.org/wiki/Version_control)
> 4) Mapping provider systems to the canonical model reduces the number of mappings required by over 99% for a complex integration projects.
>
> I know this is a busy time of year. If someone else is better suited for this discussion, can you please refer me to them?

I understood every third word.

The other day, I sat through a presentation from from an enterprise consultant, they had an 8 category scrum chart just for feature choice and a 10 category one for development. The former had categories like: “paths to insight” -> “validation” -> “harvesting”, so I spent most of my time imagining what would happen if people were story cards that ended up dying due to being harvested at the end of validation due to improper paths to insight.

Maybe if they spent less time throwing verbiage and more time doing, [Enterprise](http://terrychay.com/article/php-enterprise-scalability.shtml) [wouldn’t](http://terrychay.com/article/php-pro-con.shtml) [be such](http://terrychay.com/article/php-enterprise-myths.shtml) [a joke](http://terrychay.com/article/enterprise-scalability.shtml).

22 categories? **This** is agile?

My theory is that someone with [Wernicke’s aphasia](https://en.wikipedia.org/wiki/Wernicke%27s_encephalopathy) would make [a killing in Enterprise software development](http://www.youtube.com/results?search_query=wernicke%27s+aphasia).

You lost me there, bub

Reading [this blog post ranting on PHP][phphorrors]

> No corporation supports PHP’s growth & maturity like Sun & Google do for Java, Google (Guido van Rossum) for Python (jnc Django framework), Ruby (inc RoR) by 37 signals etc…

37Signals & Ruby? Thank his noodly appendage PHP’s support isn’t as terrible as that company on that language.

You lost me there, bub.

When it comes to engineering choice, programming language is not even in the top 10 of important choices a software architect has to make. If you’re worried about the language, you’re worried about the wrong thing. (I’m also a little amused that the author holds Python as a language with great unicode support.)

[phphorrors]:http://www.theroadtosiliconvalley.com/technology/php-coding-horrors-poor-excuses/ “PHP: coding horrors & poor excuses—The Road to Silicon Valley”