Microsoft is very good at coming up with the ideas and the technical implementations of those ideas - not so good however at the licensing as they often unwittingly create a counter market due to how they target the market (i.e. mid-size and large corporations - leaving the small businesses to find something in open source which ends up taking their idea and doing it better - but that is the topic of another post). They also lack quite a bit in the area of support and documentation because oftentimes THEY don't even realize what they are creating or what role it will play in the larger context - as is the case with SharePoint 2007 today.
So to the point, why is SharePoint 2007 disruptive?
1.
You can access information from a variety of sources without hiring a programmer (only available in the most expensive enterprise license of MOSS - by the way, this is NOT a good idea and will inevitably cause a merge in the open source community with Drupal, Hibernate, Ruby, some of the more popular WIKI frameworks and XForms - and thus Microsoft will have once again created that counter market I was talking about in pursuit of short term gain).
2.
You can use the very granular permissioning infrastructure in your own applications without re-writing who can access what - you don't need to expose the SharePoint UI - you know :)
3.
You develop with SharePoint 2007 using web parts, freeing your developers to almost completely focus on capabilities (i.e. what CAN we do with this widget?) Vs. realities (what does this widget NEED to do now?). This shift alone, almost eliminates the costly aspects of full life cycle software engineering efforts as developers are set free from the ugliness of internal politics which often plagues projects.
4.
You can tell a list in SharePoint 2007 do X when an item is added to it in something like 3 lines of code in a custom assembly. In other words, if you want to just send out an email to 5 people or set a flag in some CRM system to say "go" using a workflow (also built into SharePoint 2007), is MAJOR overkill.
In other words, SharePoint 2007 is a product and framework AND a platform. At least some very smart developers and managers from a technical perspective, got the message that Ruby and it's scaffolding infrastructure (and design patterns before that), has been trying to teach us.
You build a pretty rigid framework (hopefully using design patterns - and SharePoint is rigid), and you provide well defined extension points so when you write code it is very little code and the "framework" does the rest for you. Look at the link to Ruby on the right and building a web log in 15 minutes - FROM SCRATCH.
Approaching software development this way allows you to leverage what you need and effectively solves the problem of outsourcing - you only farm out "a component" NOT a project - NEVER a project.
The biggest thing that makes SharePoint 2007 so disruptive however is not all this technology it's that it actually starts the shift in the mainstream to MDA - and Microsoft is unwittingly driving that.
So What Role Does SharePoint 2007 Play In The Larger Context?
Here's where it really starts getting interesting. The initial demand of this product has been incredible and the REAL reason why is something I don't believe that Microsoft is even aware of. I don't think they realize what they tapped into.In order to get to MDA you have to get people out of thinking and identifying themselves as Programmers, Database Programmers, Network Administrators, Security Adminstrators, Business Analysts, Quality Assurance Analysts, Modelers, etc. and into the thinking of themselves as:
"I am a DatabaseProgrammerModelerAnalyst"
This is the central difficulty behind adopting MDA. People, not technology, have to change their perception of who they are and the value that they provide and it is a LOT harder to raise your level of awareness voluntarily than spit out some technology (in my opinion, THAT is the true role of support in an organization to provide vision for your customer base and you can't outsource that or wrap a process around that and sell it to the lowest common denominator these people are interacting with YOUR customers - it's vital to your survival; you want to know how to do something go look it up on the Internet - but that too is a different post).
To make the transition to the kind of thinking that will allow MDA into your organization you need two things:
1.
A product like SharePoint 2007 (or an open source equivalent unless Microsoft VERY QUICKLY realizes what they have stumbled upon and reacts accordingly).
2.
A hybrid Agile/MDA process that can capture artifact creation and share that creation in some controlled process - like something that satisfies FDA/Sarbanes Oxley compliance - but with the speed of iterative development which allows people to take risks and try things due to the short development cycles.
There are actual levels of maturity that an organization needs to go though before they can get to MDA (or even close). Cephas Consulting has laid this information out best and you should probably refer to the link on the right of the page if this interests you. Suffice it to say, at one end of the spectrum UML is a pretty picture used to share visual relationships between things and at the other extreme it is a fully realized blueprint to build a house (this is the place where you get code from pressing a button - the Holy Grail of software engineering).
Probably the biggest shift that occurs is that IT, or at least the part of IT that models the domain, is no longer looked at as a cost center. Modeling and the architects take center stage at a business level and become major stakeholders in the core of the business they represent - their insights drive the business and their software is transparent to the business processes and easily understood by the business (i.e. Eric Evans - Domain Driven Design). This does not happen overnight but it does happen and with an Agile process in place, everyone is a stakeholder, people are valued over process because they are MUCH more flexible and lightweight than process and the good of the organization is furthered.
SharePoint 2007 right now will be looked at by many shortsighted individuals as purely an alternative to outsourcing - a means to lower the cost of the cost center - this would be foolish. SharePoint 2007 and technologies like it, will play a very significant role in transforming people's thinking about software engineering but the real challenges lie ahead. If businesses adopt the short sided approach of looking at their people as a cost center they will not be prepared for round two. SharePoint 2007 needs to be put in it's place beyond the marketing hype - it is a transition technology. That is all it is. It is a rigid framework that you had best learn to leverage for now.
Once MDA matures, SharePoint will be a dinosaur - as businesses will be able to draw the exact picture of what they need and "produce" the software they need for themselves. If businesses are shortsighted and have actually outsourced or fired all their people in their "cost center" - they will pay dearly because just like today, in a world of hyper-specialization, you can't staff people who understand SharePoint 2007. The next thing they will be saying, like they are actually ironically saying today, is "I can't find someone who knows design patterns" (duh, you outsourced them and you aren't investing in retraining - because it's a cost center NOT a profit center - that's cutting your nose off to save your face:)).
For now, SharePoint 2007 is THE technology that will act as the bridge to get the majority of the Fortune 500 companies to the kind MDA thinking we are going to need - now all they have to do is start investing in their people and let go of some of that short term thinking for a change. The REAL challenge ahead is not in technology it's, as I stated before, rooted in our humanity.
SharePoint 2007, BECAUSE it allows you to produce your widget at lower cost and satisfy the legal mandate of all corporations - increase shareholder value - WILL BE ADOPTED - I have no doubt about that. Whether a company is using Java or .Net - if they are care about shareholder value - and LEGALLY THEY MUST DO SO - they will adopt SharePoint 2007. The questions I have are:
1)
When will Microsoft wake up and realize what this technology really is (i.e. a global, web based collaboration platform that can play in Thomas Friedman's Flat World)?
2)
How many companies will foolishly think that they don't need their IT people anymore (until they get bit hard by the capabilities of companies who adopted MDA and can redesign their business process in seconds where they take years and a LOT of market share)?
Time will tell - It's going to be an interesting year.
No comments:
Post a Comment