Archive

Posts Tagged ‘.net’

Software development and the Nascar Business Model

December 11, 2007 Judith 2 comments

I had an interesting meeting with a company called TopCoder the other day. The premise is actually quite simple: conduct contests with monetary prizes given to the software developer who writes the best programs. What started out as an academic exercise has evolved into an intriguing software company.

The idea behind the company is to leverage the social networking concept to build a software company based on the notion of component based development. Thus far the company has built a catalog of 900 components. So, what’s a component? It is an individually packaged piece of code written in Java, .net, Flash, Flex, or Ajax.

What makes this process intriguing is that TopCoder uses its network of 132,000 members in over 200 countries to vet quality of code. In essence, there is a peer rating process to determine which code is the best. The company has developed algorithms that are the secret sauce that determines which code is architected and written in the most efficient and innovative way.

How does the company make money? In essence, the company offers consulting services to its clients including companies like AOL, Fidelity.com, ESPN, Versign, and Google — to name a few. The project architect works with the client to spec out the project and breaks the tasks down into component parts. It is then put out to the network of developers. Each developer that is part of this social network has a history with the company based on how many times the developer has “won” an engagement and how complex the specific task was to accomplish. The methodology also takes into account the number of times a developer has been one of the top three finalists in a project. The winner gets paid for the code; in addition, the runners up also get some cash. The approach to paying developers is based on a complex algorithm that rewards not just one winner but the individuals that consistently do a good job. According to Mike Morris, senior vice president at TopCoder, the company borrowed ideas from the Nascar business model. He pointed out to me that often the same Nascar teams were winning every week. So, to keep things more exciting and to keep the runners up from leaving, they started rewarding the teams that placed fourth and fifth in races — after all, it isn’t much fun to watch only a couple of cars race. Therefore, Nascar created a point system so that everyone wins! TopCoder has done a similar thing. It creates a pool of $450,000 that it gives away every quarter in what it calls the “Digital Run”. When developers participate and do well in various coding tasks, they accumulate points and win money. This seems to add the incentives needed to keep the network of developers engaged.

The company’s business model is intriguing. They license their catalog of components, sell consulting services, engage in development projects that leverage this social network — without having to worry about salaries for the developers. They are also working on some intriguing new business models for next year that will leverage their IP even further.

The company’s founder and chairman, Jack Hughes had started a company called Tallan, a professional services company that was sold to CMGI for $920 million in 2000. Many of the members of the management team were part of the original Talon team. Armed with some cash, the company has the luxury of being self-funding.

I was intrigued by the business model. I think that this approach has real potential for the future of team collaboration and competition. This model also fits beautifully into the world of a service oriented architecture. I asked Mike about what the components in the catalog were like. He said that most of them were small grain components. I predict that before long the company will create a marketplace for larger grained business services.

I couldn’t resist asking about who these mysterious developers are that participate in the social network. The winner is Eastern Europe (Russia, Poland, and the Ukraine), China, followed by the United States and Canada.

I plan to continue to watch this innovative company as it grows. I think it has the potential to shake up the software development world.


Google and Microsoft at the Crossroads

October 7, 2005 Judith Leave a comment

Robin Bloor and I had an interesting discussion about Microsoft versus Google. This whole discussion brought back memories for me of the time when Netscape was intent on destroying Microsoft and taking over dominance on the desktop. I remember very vividly the conversations in those days. I spent time with the Netscape executives trying to convince them that taking on Microsoft directly was a really bad idea. Then in 1997 I spent two days with Bill Gates and Steve Balmer at a small analyst meeting off the coast of Seattle. During one of the dinner meetings I asked Steve whether Microsoft would have been able to attack Netscape so directly if Netscape had been more subtle about its ambitions. Steve’s response was interesting. He first stated that Microsoft was of course planning to enter the browser market all along. But at the same time he admitted that they would have had to have been a lot more cautious had Netscape taken a different competitive position.

So, now Google is suddenly at the crossroads of its journey towards world domination. I agree with Robin that Google is not likely to repeat many of the Netscape mistakes. But at the same time, I think it would be wrong to underestimate Microsoft. From an architectural perspective, Microsoft has been making progress. A few weeks ago we got an early peek at the Windows Workflow Foundation (WWF). In essence, Microsoft is putting workflow into the platform itself. Over time, this single workflow engine will be standard across Microsoft’s technology. I also liked the fact that within this development environment, a business developer can start from the business workflow and use this same flow as the foundation for development. There is a two-way connection between higher level visual development and lower level coding. I was very impressed with the WWF team. In essence, Microsoft is taking workflow concepts and driving it down into the platform. There will be a single workflow engine across all of Microsoft’s offerings

Speaking of Microsoft, I thought it was quite interesting that Microsoft has announced an alliance with JBoss. JBoss is doing an interesting job leveraging an open source middleware stack through a community process. Revenue comes from support fees. Because of the community process, JBoss has only 150 employees. So, why would Microsoft form a relationship with a company that breaks the Microsoft architectural model? My view is that Microsoft has no choice because customers are beginning their move to a service oriented architecture (SOA). I see the beginning of an era where customers are increasingly demanding their vendors support standards. While Microsoft hasn’t been using the SOA term in its marketing, I suspect that in the background Microsoft is formulating its SOA strategy based on .NET but with lots of nods to interoperability with the real world. You might remember that when everyone was focused on application servers, Microsoft never called its Internet Integration Services an app server. However, if it sounds like a duck… it just might be. So, don’t assume that Microsoft isn’t moving forward.

So, that leads us back to Google. Now didn’t they just establish an alliance with Sun Microsystems? And what does that mean? I think that Sun is trying to ride Google’s momentum from a user experience perspective. Ironically, Google accomplished what Sun had always dreamed of—providing a challenge to Microsoft on the desktop. Sun had tried to make Unix the desktop standard and then tried to make StarOffice a viable alternative to Microsoft Office. It is not a shock that Google and Sun would find common ground—Eric Schmidt, a founder of Sun, is also chairman of Google; both companies are keen to challenge Microsoft’s dominance. I liked David Kirkpatrick’s recent column in Fortune Magazine on the topic. Unlike Netscape, Google really does seem to have a world domination plan in place. The web has provided Google with a platform much like Windows offered Microsoft a platform. Will the market still like Google when it starts flexing its muscles?

I wanted to end this column with an observation around my favorite topic: SOA. I am seeing definitions all over the map. Many definitions are focused on technical architecture (buses and web services interfaces). I’d like to give credit to IBM for providing one of the clearest definitions of SOA I have seen. In IBM’s recent WebSphere SOA announcement, IBM provided these definitions:

  • Service repeatability is a business task that performs a business function such as checking customer credit or opening a new account.
  • Service Orientation is a way of integrating your business as a set of linked services.

While I am pleased with the amount of focus on SOA in the market and the number of customers who are moving to adopt this approach, I worry that there are not enough good roadmaps to show customers how to safely and effectively move to SOA. Some customers even worry that this might be client/server all over again. I don’t think this will happen. But there are dangers if the infrastructure vendors don’t provide a common platform for interoperability.

Microsoft’s dynamic response strategy: planning for cohesion

March 25, 2004 Judith Leave a comment

How does Microsoft fit into the new world of dynamically responsive systems? To understand how Microsoft plays a part in this realm of Service Oriented Architectures (SOA), it is necessary to look at the implications of Microsoft’s .NETstrategy. It is clear that they have taken the notion of a loosely coupled, service oriented architecture to heart through the development of their .net framework. Over the past five years much of Microsoft’s approach to distributed computing has changed. At the same time, there is plenty that is still the same. In this column, I offer my opinion on what Microsoft is doing right for customers, and where there are still issues that need to be addressed.

Leveraging Standards: The most impressive part of Microsoft’s evolving strategy is its adoption of SOA standards, including XML, SOAP interfaces, Web Services Description Language (WSDL), and Universal Description, Discovery, and Integration (UDDI). Basing its next generation infrastructure on these codified standards will both help customers implement a heterogeneous environment and aid ISV’s that want to support both Microsoft and its competitors. Equally important is that Microsoft has taken the time to architect a system that is designed for dynamic response. For example, Microsoft’s database engine (SQLServer) includes a mapping tool that enables data to be routed without massive programming. In addition, Microsoft has moved XML right into SQLServer. This is supported through the maturing BizTalk, which offers both connectivity and business process integration across Microsoft systems as well as third party systems.

Built From The Ground Up: What is most important for CIO’s to understand about .NET and Microsoft’s SOA strategy is that it is not a simple set of interfaces. Rather, it is a rewrite of the entire foundation of Microsoft’s technology platform. Microsoft has undertaken the task of virtually starting from scratch and creating a well-architected but self-contained world. Even this self-contained world enables participation by the outside world.

Focus on Web Services: One of the most important features of the approach to dynamic response is Microsoft’s focus on web services and component architectures. .NET can present a consistent programming paradigm to software developers. Ironically, Microsoft learned the fundamentals of this approach from Hewlett Packard’s pioneering world with e-services in the mid-1990s. With .NET it has enabled developers to encapsulate code combined with the pieces that are needed to understand what it does so that it can run, unaided, as long as the interfaces have been adhered to. Therefore, programmers will be able to devise new business services that can be linked together to create applications. The same type of component services can be designed using Java-based development environments. The difference is that Microsoft has designed its own implementation that has key differences from Java.

It’s About the PC: One of the key differences between Microsoft’s and its competitors’ approaches to Dynamic Response is the emphasis on the desktop. While other enterprise infrastructure players are focused on server-to-server interaction as well as server-to-PC interaction, Microsoft’s primary objective is to help customers leverage their value from their systems of record (on mainframes, Unix servers, and the like) and push that value to the desktop. Microsoft has spent considerable resources architecting new runtime services in support of this goal. Once data or logic is moved to the desktop, it is put into various Microsoft PC applications such as Word or Excel. This is accomplished though the use of XML as a common SOA foundation. Therefore, through .NET, Microsoft talks to the mainframe through service interfaces. In essence, a request for information is made to the host computer and a result (not the actual data) is moved to the desktop. Microsoft has spent considerable time and effort writing web services interfaces to data stores on enterprise applications such as SAP’s systems. In essence, Microsoft has developed a web service that understands it is talking to an SAP API when it is taking data from that system and then using a standard web services call to talk to the PC environment.

While Microsoft would like customers to move to a fully integrated .NET framework-driven environment, the company is pragmatic in understanding that most customers will not be willing to rip out their old applications. Therefore, they are focusing initial efforts on offering mechanisms that will take data and services and, through connectivity services (BizTalk), move them to the PC. Microsoft is a patient company and is willing to wait until customers are convinced that the experience of having data at their fingertips and their desktops will be so compelling that they will eventually unplug their mainframe and Unix systems.

Conclusion: It would be nice to be able to say that there is one right way to go to insure a corporation will have a well-designed and scalable Service Oriented Architecture that will stand the test of time. In reality, CIO’s will have to live in a world where they will have to leverage .NET, Java, and a host of older and emerging options. Yes, the world will continue to be a messier place than many would hope. Microsoft has done an admirable job creating a unified platform for SOA-based standards and its own implementation of a world where its operating system is at the center of distributed computing. However, the world of enterprise computing is a complicated place. Java environments, which are supported by IBM, HP, BEA, SAP, and a host of other platforms and ISVs, will continue to be strong players in the market. Most market leaders, including those leading the Java opposition, will coexist with .NET because of market demand. In the long run, customers will be well served by a competitive environment where all protagonists are focused on Service Oriented Architectures.