Recently in Commentary Category

Hey Aaron, We've missed you at Myspace lately. Plain and simple, we think you should come back. And here's why. The new Myspace provides the best social entertainment experience on Earth.
Seems like a good reason to add a marketese checker and hyperbolic-words-per-sentence counter for Microsoft Word.

The Gaslight Anthem's The '59 Sound has been on repeat around here for weeks.

Recommended if you like Bruce Springsteen, Bad Religion, Rancid, The Clash, The Kaiser Chiefs.

Thankfully, most of what I'm about to describe will become illegal on July 1, 2010. But until then, you may want to be watchful of the following, especially if you're a current U.S. Bank customer. And even after that point, you'll still need to be careful not to opt-in to a policy that allows banks to do this to you.

All of the below is on an old checking account that should have been closed long ago, but was left open to make sure all automated charges started getting charged to a new bank. My mistake.

Day 1 - Account balance: $21.01. Automated online check card charge for $30 comes in, and the bank pays it (I'd have preferred it to bounce so that the vendor would contact me for updated payment info). New balance: $-21.01.

Day 2 - Initial overdraft charge: $19.00. New balance: $-40.01. Just so we get this right, the bank charged a fee of $19 to cover a deficit of $21. In effect, this is a 90% interest, 1-day loan. This is already unethical in my view, but it gets worse.

Day 3 - U.S. Bank Online Service Fee: $3.95. They charge almost $4 a month to have access to account information via a website. Is this 1995? New balance: -$43.96.

Day 5 - "Continuous Overdraft" Charge: $8.00. They still haven't contacted me to let me know about the overdraft (the notice is apparently in the mail), but they begin charging $8 per day at this point. New balance: -$51.96.

Day 6 - I receive notice of the original -$21.01 via postal mail. I receive no email notice, despite them having my email on file. Again, is this 1995?

Day 7-9 - The bank is closed (Saturday, Sunday, MLK Day). It's not physically possible for me to come into the bank to clear the negative balance, so I wait.

Day 10 - I visit the bank to find that they've charged an additional 4 days of continuous overdraft charges, despite the fact that the bank was closed all of those days. New balance: -$83.96.

In summary: I've been charged almost 200% interest for a $21.00, 10-day loan I never requested. Even those questionable payday loan outlets have better rates than that. Banks like to pretend that this is a "service" that helps me being embarrassed by a vendor getting notice that may payment was refused, but that's a lie. If they would have refused to pay the original $30 charge, the vendor would nicely contacted me for updated payment info. But the bank chose to pay the charge on my behalf because it gave them an opportunity to take $59 from me. This "service" nets banks tens of billions in revenue every year, and the majority of it isn't stolen from abandoned checking accounts like mine, but from primary accounts of people who are barely making ends meet.

I ask the bank manager to reverse the charges. She has to ask the branch manager of the branch where the account was opened to reverse the charges (what a beautiful corporate bureaucracy that is). The other branch manager refused to reverse the charges. Her reason: because I want to close the account. In other words, the bank doesn't want to be fair and make me happy because I might not give them any more money in the future.

Well, turn that "might not give them any more money" into a "definitely won't ever, now that you've stolen from me", and you get the picture. Oh, and I'll blog about it so you might get less money from other customers as well. Thankfully, this is not 1995, and information travels quickly. With any luck, this post will make its rounds to thousands of other U.S. Bank customers who might decide to close their accounts just like I did.

If you're interested in supporting some pending legislation on this topic, a number of bills in Congress are addressing this and similar issues.

Lots of people seem to have been inspired by Tim Bray's Doing it Wrong post just like I was. There's a great response on rc3.org titled "Do you want to be in the software business?" that expresses a lot of the same issues I raised in The Ruby on Rails CMS Dilemma.

The gist of the post is that you shouldn't commission custom development unless you're going to be "in the software business". If your custom software as intellectual property that is a reason for people to invest in your company, then by all means, build it custom. If it's not, then make due with whatever existing product best fits your needs. Just because you can, doesn't mean you should.

Tim Bray's post on how enterprise systems are "Doing it Wrong" just triggered a realization for me. This whole agile vs. whatever debate has been a kind of red herring for a much larger argument about how businesses themselves ought to operate.

I've seen large companies adopt agile methodologies, and they don't magically transform as a result. Something of the earlier culture persists, and the tendency to overplan, overbuild and generally waste tons and tons of money continues.

The reason is that this whole thing isn't about the methodologies. It's not about the day-to-day operating procedures. It's about the culture of control and hubris inherent in the corporate structure. Big companies, especially successful ones, think they know what's right, and they think their success stands as proof of that skill. They underestimate the role of sheer luck in their past successes, and overestimate their ability to predict the future. So software teams in the enterprise make the mistake of believing that:

  1. They know (or can know, with enough requirements gathering) exactly the nature of the problem their software should solve, and
  2. The nature of that problem won't change over time. Or, it won't change fast enough to matter during the course of development to matter. Or, it will change but they'll be capable of recognizing and adjusting accordingly.

The world is much more complex and unpredictable than this, and these beliefs have become the downfall of many projects. The economist-philosopher F.A. Hayek explained the difficulty of central planning (he's writing about the economics of the entire economy, but I think this reasoning also applies within an individual organization, especially in enterprise software):

If we possess all the relevant information, if we can start out from a given system of preferences, and if we command complete knowledge of available means, the problem which remains is purely one of logic...
This, however, is emphatically not the economic problem which society faces... the "data" from which the economic calculus starts are never for the whole society "given" to a single mind which could work out the implications and can never be so given.

-- from the article The Use of Knowledge in Society

It's impossible for a single mind (or even a small group of minds) to encapsulate all the knowledge of complex enterprise operations. So a single software project should never even hope to be a perfect solution. Because of the fundamental information problem, even the requirements document could never be a perfect design for a single point in time. I believe this is the explanation for Galls Law.

Hayek goes on to explain that "emergent" order is superior (i.e. more efficient) to the order that central planners try to impose from above. We in western capitalist countries seem to know this in our bones in the post-communist era, but Hayek's analysis is particularly conclusive.

Before we turn too sharply into classical economic thought, and before I start re-reading Adam Smith and Karl Marx, let me bring this back on topic.

When you view software development through this Hayekian lens, the benefits of agile methodologies really become apparent. By avoiding upfront design, the software is allowed to emerge from authentic, real-world interactions, the same way economic order emerges in capitalist economies. By shortening the feedback loop between conception, construction, testing and usage, you're forced to start relying on empirical observations rather than predictions. By using dynamic languages and DSLs, you avoid the "information problem" (erg, more economics jargon) in translating human concepts into computing concepts.

So agile programming ideas make sense as potential solution in this whole enterprise software debacle. And Bray speaks of "bridging the gap" between the elephantoid enterprise software world and the grasshopper-like "web world". He closes with this word of advice:

[Successful systems like Twitter] simply cannot be built if you start with large formal specifications and fixed-price contracts and change-control procedures and so on. So if your enterprise wants the sort of outcomes we’re seeing on the Web (and a lot more should), you’re going to have to adopt some of the cultures and technologies that got them built.

He's right in the observation, but I think he's under-prescribing on the solution. It's going to take a lot more than adopting agile for in-house enterprise development at Citibank to start performing on par with Google's programming teams, for example. It's the corporate culture, not the development culture, that's to blame for these problems. It's the hubris of the organization that causes overspecification of documents, not the hubris of the software developer. In practical terms, it's the CEO, not the CTO that's got to lead the type of gap-bridging that Bray is speaking of.

Large companies (or "Enterprises", I guess. I can't seem to use that term without parentheses or quotes... it's like the term itself is an ironic joke) won't start making better use of IT until they realize that great software is a process not a project. And the process has to start outside the IT department if it has any chance of being successful.

Apple's iPhone 3Gs has had a bit of a muted--dare I say disappointing--reception. Unlike with the 3G launch, very few of the new OS 3.0 features depend on the 3Gs model, and for most iPhone users (for me at least), there aren't compelling reasons to upgrade.

None of that matters, though. Apple's going to make far more money for another reason: they didn't discontinue sales of the regular iPhone 3G. Through AT&T subsidies, you can now get an iPhone 3G for $99. That puts the iPhone in the same price category as an iPod Shuffle!!!

While Palm, Microsoft and the phone manufacturers try to figure out how to build a better (more feature-filled, expensive) iPhone, Apple snatched the floor out from under the market. There's very little distinction now between "regular" phones and "smart" phones in terms of price now, and Apple is making the best smart phone at the cheapest price. I wouldn't be surprised to see iPhones completely dominating the entire phone market soon, forget about dominance in the smartphone category.

Update: I've since realized that the iPhone 3Gs might be what Dan Ariely calls a "decoy choice". The expensive, top-of-the-line 3Gs causes the iPhone 3G to appear as a middle-of-the-road, value-conscious choice, by virtue of its straightforward comparison with the more expensive model. Ariely's book Predictably Irrational, describes Williams Sonoma's successful use of this technique to sell the first bread machines.

Who's this guy?

Aaron Longwell is Chief Web Craftsman at New Media Logic Corporation in Portland, Oregon. A professional software developer for 14 years, he occasionally has interesting things to say about software, technology, culture and politics.

Subscribe to feed Subscribe to my RSS Feed

  • View Aaron Longwell's profile on LinkedIn
  • Recommend Me