the web application as a commodity

technology No Comments »

I'm remembering a conversation I had a with a few of my co-workers during my last few days in the bank.  We began discussing my plans for the future, but at some point, the conversation changed to internet banking applications and why in God's name every bank feels the need to build and maintain its own solution from the ground up.  A couple of different theories were tossed about -- highly specific requirements, the need to differentiate with unique functions -- but in the end, it seemed like no one could think of a good reason, or at least not one that would justify the enormous financial costs and manpower requirements for developing and supporting such a beast.  Most banks offer the same set of functions, so there's very little differentiation at that level, and the requirements for most direct channel financial systems are driven by the same forces in most cases: savings through customer self-service, security requirements, regulatory restrictions, etc.  Hmmm, maybe banks just really like spending money?

I've been thinking about that conversation quite a bit over the holidays, and it seems to me that the big takeaway has less to do with some inherent truth about financial services providers but rather about businesses in general.  On one hand, business stakeholders want to believe that the ideas they're proposing during the conceptualization phase are something new under the sun, something that really blows the competition away.  In many cases, IT departments reinforce or support these ideas, either by not being outward-looking enoug or having a serious case of not-built-here syndrome.  Or maybe just by not caring enough to bring it up.  In the end, the result is often the same regardless of which forces are at work: more coding, more testing, more support, and more cost just to have another been-there-done-that site.

As DHH likes to remind us, "Your application is not a unique snowflake."  You're not Amazon or Google or eBay, and chances are that you are not working on a problem that hasn't already been solved, at least partially, by someone else.  (Unless of course you are Amazon or Google or eBay, in which case thanks for reading my blog and please come again.)  We're already well past the point where having access to a wide range of standardized, high quality, and in many cases, free infrastructure software is interesting to us, and so the next step would seem to be doing the same with more complex systems.  Blogs have already largely succeeded in turning web publishing into a commodity, and only a complete newbie would consider designing and developing a content management system from scratch as his Plan A with some of the great open source packages available today.  But what about other types of systems that are still developed as custom software far too often: e-shops, auctions, e-newsletter publishing, adult websites, and so on?  Why haven't we stopped building these over and over?  Do you really think that you've figured out some new wrinkle for the online shopping cart that hasn't been tried already?

The online banking example remains, in my mind, one of the best as it's practically a "perfect storm" of conditions under which this kind of standardization would produce maximum benefits.  There are a large number of unique implementations which, with the exception of underlying infrastructure, share basically nothing and deliver almost all of the same functions and have many or most of the same non-functional requirements - i.e. high level of security, regulatory requirements, etc.  And applications like this are expensive - to develop, to test, and to maintain.

In the coming weeks, I'm going to be giving some additional time and thought to this concept and trying to come up with a few more posts on topics related to this one.  It's probably a little ambitious to think that one could solve any of these problems once and for all, but the productivity savings for even a few instances of a specific type of application could be tremendous.

big win for Linux at NYSE

technology 1 Comment »

Found an interesting piece out of the New York Times last week while catching up on my feeds:

The New York Stock Exchange is investing heavily in x86-based Linux systems and blade servers as it builds out the NYSE Hybrid Market trading system that it launched last year. Flexibility and lower cost are among the goals. But one of the things that NYSE Euronext CIO Steve Rubinow says he most wants from the new computing architecture is technology independence.

This is a semi-important story for open source in my opinion. Lots of companies have Linux servers running here and there, but in many cases these are the result of pilot projects running non-critical applications. It's nice to see an organization so synonymous with high performance, mission-critical technology drinking the Kool-Aid.

The article goes on to say:

One technology that the NYSE isn't adopting so eagerly is server virtualization, which comes with a system latency price that Rubinow said he can't afford to pay. In a system that is processing hundreds of thousands of transactions per second, virtualization produces "a noticeable overhead" that can slow down throughput, according to Rubinow. "Virtualization is not a free technology from a latency perspective, so we don't use it in the core of what we do," he said.

I worked on a trading floor system in 1999-2000, and given what I know about the architecture, its debatable whether these types of applications would make them a good candidate for virtualization anyway. It's far more likely that they'll be running any given trading application on a bunch of blade servers in parallel, and since a lot of these systems are more or less stateless, they'll simply load balance requests across the pool.

why i quit a perfectly good job

work No Comments »

It just so happens that my last few weeks of indenture are coinciding with a fairly massive influx of new people into the IT department of the bank where I work. This is coming, conveniently enough for those left behind right around the same time as a similarly massive outflow of other, mostly exhausted people, so I guess it's not a big surprise. Part of the universe expands, another part contracts.

In any case, I was stopping off to dump some plastic in the kitchen recycling this afternoon, and one of my new co-workers who happened to be there making coffee thought it might be a good opportunity to probe a bit in order to see just what the hell is wrong with me. After all, I've got what a lot of people would call a good job. I'm an Enterprise Architect in a well-respected company, I earn a good salary by local standards, and I've earned a fair amount of responsibility and, if it's not too bold to say so, some respect in my time there. I can be pretty free with the time I spend on the job. If I come in at 10:00, no one will generally complain, and if I leave at 4:00, no one gives me dirty looks. What, pray tell, would possess someone in this position to chuck it all with nothing concrete waiting in the wings? It's not the first time I've gotten this since I resigned. The more direct ones come right out and ask if you're nuts; most people just whisper and wonder. Ultimately everyone only seems to want you to respond in a way that reinforces the opinion they've already formed about you.

If you think about something long enough (in my case, over a year) you eventually come up with so many reasons that it can be hard to sort out what you really feel. And who knows? Maybe that's just the thing you need to get off your ass and DO SOMETHING. In any case, I figured out that there's not a good reason I can give to people who aren't already inclined toward a similar point of view. Mostly, I think I've tired of the baggage that working in a corporate environment requires you to carry: the glacial pace of progress, endless meetings, office politics, org charts, process definitions, theory completely divorced from reality, busy work, etcetera, etcetera, ad infinitum. Out of all of it, I'd have to say it was the pace of activity and the long lag time between completing a task and seeing the result of it that did me in. Much like my dog, I find that I learn more when praised immediately after good work and scolded immediately after bad work, and I wasn't getting that in a deep hierarchy with eternal approval processes and bitter back-and-forths dramatics.

At the end of the day, I came to the conclusion that I could do better for myself and that I had no one else to blame if I outsourced satisfaction services for 40+ hours of every week of my life to a bureaucracy. Am I nervous? Hell yes. Am I afraid or worried? Not really. And I think the fine distinction between these conditions and the fact that I can find that line is a sign of excellent and ever-improving mental health. Regardless of what the coffee guy might think.

fumbling toward simplicity

blogging No Comments »

I've been working for about a month now trying to put together a semi-coherent website for my business as a freelance software developer, architect and all-around guru. For someone of my particular disposition, this is no mean feat. I'm not really a designer, but in that time I've come up with a number of passable but not awe-inspiring concepts in a variety of color schemes. I've learned a good deal more than I knew before about CSS, web standards, design and layout, color theory, and so on; but I wouldn't say that any of this knowledge or experience
has turned any of various piles of files sitting on my hard disk into the Mona Lisa.

But as tough as working on the design has been, writing the copy for the site has been ten times harder. How much content do I really need? What are the five things that absolutely must be said pertaining to X? What kind of tone should I use? Professional and knowledgeable? Conversational and clever? Do I really know the reader well enough at this point to engage them in witty banter? Will that come across as presumptuous? Dear God, will anybody love me?!

As these things often do, it took some trial and error (and ultimately a dose of desperation) before I was able to see the simple truth that had been before me all along: that I don't need a website. Or rather, I don't need one in the sense that I'd been thinking about all this time, at least not today. Because today what am I? I'm a guy who's getting out of corporate IT in the hope that I'll be able to do more satisfying work, provide better services for customers and the community at large without all the red tape, work on some of my own ideas, have more freedom as to how I do my job and organize my day, earn more money, spend more time with my family and friends, and generally feel that my life is more integrated than it is today. Beating my brains in trying to find just the right collection of buzzwords and stock photos to tell people that I deliver superior value by providing services that are agile and cost-effective and blah blah blah only begins to sound like some nonsensical departmental strategy document and subverts my stated goals before I ever really get started. What's the use in proclaiming the benefits of simplicity if you don't follow those principles yourself? In the end, what I'm really looking for is a platform that allows me to talk to people - people I already know, people I don't know but with whom I share common interests - about the things that are going on in my business, technology, and my life. That sounds like a blog to me.

A blog does everything I need in this situation. A blog, whether by it's very nature or through the lens of what blog culture has become, usually represents the thoughts and opinions of one person or party. A blog is ideal for showing a progression of thought over time, a feature that closely mirrors the sort of progressive learning experience I'm expecting in making this change. The style of writing used by most blogs tends to be more conversational and less formal; it reads like it was written for people rather than consumers. Blogs encourage the reader to participate in a conversation, but even passive readers get something out of it. A lot of blogging software has tons of helpful features baked right in: tagging, syndication, trackbacks, and so on.

In large part, this has been a question of self-realization and self-clarification on my part with respect to my relationship with this business, and I feel like I've finally resolved it. Things may change in the future, and I may decide to adopt some corporate identity, staff up, and so on. For right now though, simplicity suits me, and a solution that gives me a platform to speak and expound and think out loud seems like just what's needed.