Skip to main content

Microsoft SharePoint and Agility

SharePoint is a becoming natural choice for enabling key capabilities of an Enterprise such as Collaboration, Social Computing, BI, Web Content Management, Document Management, Portals / web applications targeting both intranet & internet users etc. . Perception on SharePoint is gradually changing from a simple COTS product to very flexible platform. Especially the custom development & integration capabilities of SharePoint platform is a door opener for lots of opportunities. In fact, in some of the Enterprises, SharePoint is becoming the default development platform.

Recent research report from Forrester highlights that SharePoint is gaining very wide adoption in large organizations. Given that the capabilities of SharePoint can address most of the needs of an Enterprise, Enterprises which are planning to leverage the full potential of the SharePoint platform may end up in an IT portfolio where major portion will be solutions based on SharePoint. Hence, Enterprise Agility of those Enterprises will have more dependency on SharePoint.

Enterprise Agility of an Enterprise depends on its IT Portfolio. If the IT portfolio is based on the home grown solutions and COTS products which do not support agility, then Enterprise agility will be affected. Investments in COTS products can be maximized only if those products are customizable / supports wider custom development. Based on how “Testable” the “Customizable” parts of the COTS products of an IT portfolio, Enterprise will have impact on Maintainability, TCO and Agility.

True agility is considered to be achieved only when a change in business / functional requirement is achievable with minimal time – when you have a piece of code developed and if an automated unit testing capability can be leveraged to test that piece of code, then your overall time for development , testing & deployment will decrease.

Testability & loose coupling are 2 key paths to Agility. In SharePoint, when it comes to custom development, Web Parts are predominantly used to address business / functional needs. These Web Parts are “Testable” when they are built based on MVP pattern. These web parts can leverage Automated Unit Testing capabilities. These MVP based web parts are de-coupled from the environment, data source & UI. Hence they are unit testable through Mock objects

A combination of Microsoft’s PEX & Moles framework & VSTS 2010 can be used for performing automated unit tests on MVP based (Testable) web parts.

Loose coupling can be achieved through Service Locator pattern provided by SharePoint guidance from Microsoft Patterns & Practices – compass for the best practices adoption in SharePoint based development. When there is a change is the actual service provider, we can deploy that as a separate assembly and change can be enabled in the main application without re-compilation

So, the conclusion here is - Once a SharePoint based development is planned with these 2 things in mind – Testable & Loose coupling through MVP pattern based web parts to leverage Automated Unit Testing framework and Service Locator pattern respectively, time required to respond to changing business requirements will decrease and hence will have a positive impact on Enterprise Agility !

Comments

Popular posts from this blog

Lambda Architecture on Microsoft Azure

Gone are those days when Enterprises will wait for hours and days to look at the dashboards based on the old, stale data. In this fast world of BYOD, fitness gears and flooding of other devices, it is becoming super important  to derive out “actionable” information from huge volume of data / noise that is generated from these devices or any other data sources and act proactively on them  in real-time, to stay competitive.

At the same time, the need for having dashboards and other analytical capabilities based on the quality, cleansed, processed data still very much exists.

With the emergence of more data types and need to handle huge volume, shift is happening from the conventional data warehouse practice to cloud based data processing & management capabilities where high volume batch processing is possible at the optimized cost. Business scenarios demanding the need to process the data in real-time   More

SharePoint 2013 Architectural Trade-Offs

When planning for deploying SharePoint 2013 based Enterprise workloads, it should be done with the consideration / awareness of impact of various architectural decisions what we make. As SharePoint 2013 is a flexible platform providing lots of options in terms of configuration of the existing OOB features and development of custom development solutions to address specific business functional needs, care should be taken when making a particular decision and its impact on overall solution. Even though SharePoint is a matured product, the effectiveness of various business capabilities such as Enterprise Social, Enterprise Search, BI, Document Management, Web Content Management, and Enterprise Content Management that will be delivered based on it, in terms of addressing the business requirements depends on architecture planning. Effectiveness here means performance, security, up-time and other architectural qualities like Scalability, Reliability etc. more ...

Flexibility through product customization - How Secured it is ?

When providing solutions based on the multiple products, the success of the solution depends on what level of OOB features of those products helps in addressing the business / functional needs and what level of flexibility those products offers in terms of customization.

Also, how those products help in addressing business needs is very important in terms of time-to-market through:
Capabilities for seamless integration with federated business partners through adapters (like what Microsoft BizTalk, & StreamInsighthave rich set of adapters minimizing the development time), Partner ecosystem with solutions(like what partners have solutions basedon SharePoint in addressing various business requirements such as document storage, DRM / IRM, BI etc)
In addition to above mentioned factors, success depends on how the products allow developer community in extending its capabilities to address complex techno-business requirements.
While allowing the developer community for customization, it is a…