Wednesday, February 28, 2007

Efficiency? or starvation?

I suspect many people who attempt concurrent engineering are actually starving projects during completion stages in order to create perceived efficiency in preparing for the next project. Perhaps it's a fear of having people with slack.

I prefer starting with (and perhaps staying with) focusing all efforts on doing one thing at a time. There will be a point when you really do have too much capacity for the one project but I think there's a tendency to be a bit too optimistic.

Hail Mary software development

A strategy of deferring things like deployment, UI refinement, and performance assessment until the end of a project is foolish. Changing the measurement of progress to be based only on 100% completed features explicitly highlights that this waterfall, hail mary, pray for success, project strategy is a sheer cliff approach. 0% progress then hopefully 100% progress right at the end. And if the end moves closer, you're hosed.

Sunday, February 25, 2007

Balanced stances allow recovering backward and forward

I also learned fencing so Brian Marick's metaphor seems pretty interesting to me.

The key issue is ensuring that you're always in a position to have the option of recovering backward or forward. That is, creating the equivalent of a balanced stance in your codebase.

Dating for Electrical Engineers

Via information aesthetics of all places, Benjamin Pollack's Dad tells him why Smart Guys Date in Parallel.

If you know anything about electrical circuits, the following sums up the joke quite concisely.

Generalists are happier than specialists

Bob Sutton blogs about Karl Weick's ideas about why Generalists should be happier than Specialists.

Monday, February 19, 2007

The Device Patented Process Indicating Apparatus

The Device Patented Process Indicating Apparatus is the shining star of the pivot-jewel / ethereal-glowing-tube class of measurement equipment. Handcrafted in These United States of the finest fruitwoods and precious resins, The Device Patented Process Indicating Apparatus is at once an indispensable tool and an unmistakable assertion of status and refined taste. No serious professional should be without one.
http://www.processindicator.com

Why bother with a lava lamp when you can have The Device Patented Process Indicating Apparatus?

Saturday, February 17, 2007

Open Source for Microfinance

Just stumbled upon the Mifos Initiative which is an Open Source package to support microfinance.

If you know Java, Struts, Hibernate, MySQL, MVC, JUnit, Selenium, Watir, Ajax, or Axis, it seems like a worthwhile project to be involved with.

Tuesday, February 13, 2007

The people always know what's wrong

... but given the wrong leadership, they won't ever talk to you about it.

Monday, February 12, 2007

UI churn must happen

User interface churn must happen. You either go through the churn or deliver something that doesn't work for users.

A lot of interaction design is trying one thing, not liking it, and trying something else. Iterative user testing of cheaply constructed prototypes (in a set-based approach) is the fastest way to funnel this down.

Sunday, February 11, 2007

The Goal of Extreme Programming

Even programmers can be whole people in the real world. XP is an opportunity to test yourself, to be yourself, to realize that maybe you've been fine all along and just hanging with the wrong crowd.
-- Kent Beck, Extreme Programming Explained: Embrace Change 2nd Edition

Hire squirrels instead of turkeys

Tom at TrueTalk blogs about Harvard hiring Dr. Drew Gilpin Faust and I found a particular paragraph amusing and yet insightful:

Friend of mine used to say, if you need to hire something that climbs a tree, hire a squirrel. You could train a turkey to do it, but it's a heck of a lot simpler to go with the squirrel. Or, "hire for temperament; train for skills."

Use procedural content generation for agile game development

Danc at Lost Garden blogs about the need to move towards procedural content generation for games in order to avoid the increasing scaling problems of handcrafted content.

This reminds me of the Lean Thinking concept of Type 1 waste. Handcrafted content is a necessary waste in the production of a compelling game experience... until you figure out how to produce a compelling game experience without requiring as much handcrafted content.

Kent Beck on Agile Adoption and Values

Kurt Christensen of InfoQ interviewed Kent Beck on Agile Adoption and Values.

On the vagueness of the term agile:

Asking "Are we doing it right?" (or the more likely scenario - telling someone else "You're not doing it right!") is not a very valuable question. "Are we learning all we can?" and "What do we need to change to most benefit our company's goals?" have a lot more impact. If agility is a mindset, then measures of correctness don't really apply. Are you working with an agile mindset? Are you trying to see from more than one perspective? Are you thinking outside the cubicle? Are you communicating with a team working together towards a valued goal? Are you working transparently, honestly, accountably toward your shared goals? What an agile expert would think of the process is far less important than how your process is working for your organization.
On common patterns for failure:
Common patterns we have seen are a lack of communication, isolationism both of the team and individuals, silence in the workroom, a person with specialized knowledge the team needs who no one wants to work with, or an inability to articulate the value to the company of their immediate work.

Wednesday, February 07, 2007

The typical Java web app deployment process stinks

Something we were talking about a short while ago at SyXPAC...

Let's say I have a small change. Perhaps correcting a typo in a message resource bundle, updating a link, or some other similar minor thing.

Well, this pretty much means redeploying the entire war package. Of course, you could just copy the one file over to an expanded directory but this is neither portable nor the intended approach for deployments in J2EE.

Why isn't version control an integral part of any "standard" for how an application should be deployed?

Have you ever found yourself manipulating pages in Firebug and thinking, "Wouldn't it be cool if I could just save this and have it transmitted to the server?"

Myles mentioned an Avi Bryant demo where he fixed a bug (including writing a test) in Dabble DB live during a presentation after an audience member pointed it out.

The whole war file thing seems rather primitive in comparison.

You're not sorry...

Seth posts a ranked list of apologies originally from Yehuda.

#3 is the type of "apology" I find the most annoying:

"We're sorry that you feel that way." (3): This is also a non-apology, which roughly translates into "It pisses us off that you feel that way. If you didn't feel that way, we would be happy." It also doesn't take any responsibility for the problem, and places all of it onto the injured party. Be careful of any apology that starts "I'm sorry that you..."