Sunday, August 15, 2004

New Venture

A few weeks ago I started at a new venture InStorecard as CTO. It is a pretty recent startup in a very interesting space (retail). One of the big things that attracted me (apart from a great team and a founder who I have known for 10 years) was that they were building a valuable business offering as a service to deliver to customers.


There is nothing like building something for real customers to help decide what is really necessary for customers and what is good only from a computer science POV. The good news is that the retail industry is making big strides towards XML, but less towards web services, even though they are aware and interested. In general they are very pragmatic, I should know as my family has been in retail for a long time - my grandfather started our first store just after WW I!


The pragmatists in the retail industry are quickly seeing the advantages of software as a service and XML as they need to get things done quickly and efficiently as margins are critical. This is a great place to be and I am looking forward to the next several years.


Saturday, July 03, 2004

The wisdom of crowds

Having taking some time off I have been able to read a lot more and actually think about what I have been reading. I have just finished reading and contemplating (though I think I need to read it again) "The Wisdom of Crowds" by James Surowiecki. The essential hypothesis is that many are smarter than one. In our society (especially in Silicon Valley) this is not a widely held belief. There are a couple a caveats to this, 1) diversity is important in creating smart groups and 2) the ability to process and synthesize the collective wisdom is key. This is a over simplification but it close enough for the connections I want to make.


The current wave of efforts to create something with social software could learn and build on the thesis in this book, especially point 2 above. Most of the case studies presented in the book were derived from simple voting systems or from organizations with very talented leadership. It takes real talent to really listen and empower the team, while balancing the need for diversity of thought. It is easy to listen if everyone is saying the same thing and agreeing with you, but it does not create the best environment for success.


Social software is very good at collecting information and providing a forum for diverse discussions, but could it provide the foundation for creating a better decision making format? For it to succeed I think it needs to move in this direction.

Thursday, June 17, 2004

The evolution of loosely coupled systems

As always Joel Spolsky makes very good points in Joel on Software - How Microsoft Lost the API War but I think he missed a couple of critical issues in the "war" between the two forces within Microsoft (The Raymond Chen Camp (Win32) and the MSDN Magazine Camp (DLL Hell).


While I admire and respect the efforts that the WIN32 camp go to making everything backwards compatible, we as users of current systems are cursed with an overly complex system that is hard to evolve as its roots go back 20+ years. On the other hand the MSDN Camp believes that the evolution can be through shared libraries and that applications should share code and evolve through DLL's. As DLL's were not implemented well for evolution (VMS and UNIX did a lot better job even before Windows), we are stuck with an incompatible mess. From these two approaches one can see the evolutionary branching of tightly and loosely coupled architectures. The tightly coupled WIN32 approach is made to work through shear hard work, as Joel notes in his article the enormous lengths the Win32 team go to for backwards compatibility, any other company would go bankrupt from this level of effort. On the otherhand because the MSDN Camp does not have strong versioning and hence cannot provide developers a stable platform we have a loosely coupled mess.


As Joel goes on to point out this battle is really over and most of us have moved on. Whether you use, Java, Python, .Net (including Mono) we are getting further from the operating system, when I move Java code from Windows to Linux it typically runs unchanged providing I have set the properties files correctly and a few other details, the same is true for most other high level languages. The next challenge is as we move beyond loose coupling through DLL's and Shared Libraries to services defined in the network we do not repeat DLL Hell and ensure that we can version and reuse services through shared infrastructure. As more shared services run in the network the platform they run on will be all but irrelevant to the users of the services. What will be relevant will be availability, functionality and responsiveness.


What will be relevant will be the client technology, currently the ability to deliver web interfaces using DHTML is state of the art, but it is not progressing, and is too complex. Other, better solutions are starting to appear that are leap-frogging the current browser technologies, they still use the browser as an HTTP pipe but that is all. They are in the desktop but require a minimum from the desktop and are easy to develop and deploy. Solutions like XUL, DreamFactory, Flex, Avalon are going to be where the next war for control is going to be fought. As these solutions are completely decoupled from the backend services there will be a completely new loosely coupled development approach but we should remember the lessons from DLL Hell and consider how to version and evolve service interfaces

Wednesday, June 16, 2004

New look

Seemed time for a new look and to use bloglines for my blogroll. It is interesting that one of the most significant impacts of blogs is the ability to create web sites that have new content without a huge investment in infrastructure and people. Truely putting the web in the hands of the people.

Thursday, June 03, 2004

Service Ecology

A part of the issue around boot strapping SOA and web services is the need for an ecology of services to exist.

Without the ecology in place it is hard to create solutions. Some markets are starting to get critical mass and they will take off first.