This is the fourth in my series of blogs posts that discuss the implementation of an Employee Blogging Platform that we implemented for a customer.
Previously in this series:
Anatomy of a SharePoint Solution: The Blog
Anatomy of a SharePoint Solution: Blogs Home
Anatomy of a SharePoint Solution: Employee Blogging Platform
In this post I thought it would be useful to talk about some of the challenges the project faced up front, setting the scene for what I hope will be an interesting technical journey down some of the architectural decisions we made to then meet them.
Challenge 1: Serious Scale
The first, and probably the biggest challenge, has to do with the scale of this particular customer. They are a Fortune 500 company, are geographically dispersed, and have a very large number of employees. While I’m a really big believer in SharePoint’s ability to scale, this is one of those customers that really pushes its limits.
Those limits are pushed even further when you look at SharePoint not as an out-of-the-box solution, that is a teamsite, a Portal or a CMS, scenarios for which it is tuned, but as a basic solutions platform. Don’t get me wrong, It’s a great platform, but you face important functional limitations at every turn. This is what makes SharePoint solution more complex than they look, and what makes an experienced SharePoint solution designer, as opposed to a .NET solution designer, a critical success factor. As you will see in my future post, the best solution is not always the most intuitive one.
In our case, the blogging platform we were building needed to support tens of thousands of active bloggers and tens of thousands of readers. Sure, we may not get that many, but this is one of those things. If our job is done properly, and the solution becomes as successful as we want it to be, then we just might!
Challenge 2: Don’t fix what aint broke!
When I’m asked to build out a new solution for a customer, one of the first questions I ask is “How do you do this today?”. The answer is usually very revealing, and it gives you a good place to start as far as expectations are concerned. For example, often when asked to build a new workflow you will find that the existing solution is not much more than envelopes, pens and inboxes. This is a great place to start a new solution, because even if you make no improvements to the actual process itself, simply by making it digital brings all sorts of advantages. The workflow participants are bound to be supportive and feel personal benefit from the conversion.
In this particular case, the customer already had an existing solution, one that was based on a special purpose blogging platform. While they had quite a few areas that they wanted to improve, overall, the platform was doing a pretty good job. Now, this is not my favourite place to start a new project because even though there are some excellent reasons for moving to SharePoint (a single standardised platform for collaboration), those reasons are somewhat transparent to the actual users and success is ultimately determined by them.
In addition to this, SharePoint, a multipurpose platform, is always going to struggle to compete, feature by feature, with a platform that has been designed from the ground up for a specific job. In this case blogging. This puts a lot of pressure on the solution because your version 1 must at the very least offer all the features provided by the current platform. Sure, some little used capabilities can be ignored, but its difficult to work out just who uses what, and sure enough, there is always one person using each capability.
Challenge 3: Aggregation
This was one of the most challenging, but critical, components of the solution. It had to answer these basic questions:
- What are people blogging about?
- What are the most popular blogs?
- Where are the most active discussions?
There are many different approaches to aggregating information stored in SharePoint, however all come with advantages and disadvantages. Building out a solution that not only answered these questions, but did so in a performant (one day “performant” will be a real word), timely and supportable way, was certainly a challenge.
Something often overlooked is that the solution had to perform not only on the day of its release, but perform consistently as more and more posts were made to more and more blogs. SharePoint is a data driven application, so factoring large amounts of data into the design and ongoing operation of your environment is critical.
Challenge 4: Performance
We needed the solution to perform in a way that was as predictable as possible and that gave us the ability to cope with the expected increase in demand that has since come with time. For example, it’s possible to foresee a scenario where a senior executive emails a large group of people a link to their latest blog post. This one simple action could instantly drive literally thousands of people onto the system, and this is just the time when you want your platform to shine.
Architecting a solution capable of predictable performance, and that can be tuned over time can be really challenging. In a way it forces you to determine what aspects of you solution will be most stressed by load, and then implement dials that allow you to tune it when needed.
Challenge 5: Migration
I love “greenfields” projects, that is, projects for which no existing solution is in place. Migration is always challenging and never fun. It’s always a balance of compromises and requires that hard to find pragmatism which I posted about previously. It inevitably means you need to understand a technology that is outside of your core skillset (in this case the existing platform) and there are always untold number of exceptions that need to be managed. While you may be lucky enough to find some tooling already exists, you will nearly always have to compliment it with your own.
So, while this is by no means the beginning and end of the challenges, it would certainly be my top 5. The great thing about it is that 4 of the 5 provided for really interesting deep thought and in the end some really rewarding and creative solutions. Stay tuned.