"Anatomy of a Feature"

Brent Simmons, developer of the excellent NetNewsWire (my tool for finding all this ephemera), offers his take on the Anatomy of a Feature. If you’re at all curious about the sausage-making process of software development, you might be interested in just how much thought goes into even the most trivial-sounding changes.

I’d kind of shudder to read/write an equivalent essay set inside a big company, where affecting something like one’s own app installer can require petitioning a dozen people–often without success. The phrase “up-at-dawn, pride-swallowing siege that I will never fully tell you about” comes to mind.

Just yesterday I found myself calmly declaring that if getting Future Feature X into PS.next requires slapping down my credit card and building the Web hosting myself*, so be it. (Know this, suckaz: We. Shall. Prevail.)

* Enabling Configurator for CS4 involved my getting a six pack of Negra Modelo and recording each menu item in Photoshop, then copying/pasting/reformatting/commenting the code, one at a time, 800 times over the course of several evenings. Elegant, pleasurable? Not so much. But no one ever said it was gonna be easy.

6 thoughts on “"Anatomy of a Feature"

  1. Very good choice of beer!!
    Have you guys ever thought about trashing everything and starting all over again? It helps sometimes.
    [Lightroom, anyone? –J.]

  2. …one could argue, though, that the larger a company or a development venture is, the more “over-thinking” plus some self-cannibalization happens, a common failure of many open source projects. And then of course sometimes asking too many people will not allow you to push through the real hard decisions. You know, that thing about PICT support, which literally has you still stuck with this legacy format in one way or the other… Ask a hundred people, get a 100 different answers.

  3. Years ago, I was griping to a friend about something I had to fix in some project, and which only I could fix. He then uttered, mercilessly, these words of stoic wisdom: “You *will* fix it — and no one will *ever* thank you for it.”
    If you can handle living with that, then, my Son, you’ll be a Man.

  4. I especially like the times when I get requested to develop something on a crash basis. The project may take a month or two. When I get finished, the person who requested the change is on to something new. The small amount of work to get the feature into production (that someone else needs to do) can not get scheduled due to conflicts in the other group.
    Yes. Software development is an interesting area.

  5. Perseverance is the purest of virtues John. Hang in there!
    [I appreciate the kind interpretation, Jan. One might also point out that the definition of insanity is to do the same thing over and over, expecting a different result. 😉 –J.]

Leave a Reply

Your email address will not be published. Required fields are marked *