Scaling your SharePoint application

Very often there is a moment in a project where one or more people go “uh oh.” What happens next usually defines the final result. Typically it is one arm of the overly dreaded triangle that is the immediate root cause of concern.

  • Time
  • Money/Cost/Budget
  • Scope

It is important to note that quality is not an input. It is essentially the output of the sum of the three. The quality level you’re shooting for is not absolute — it’s really part of scope. You have to articulate and repeatedly verify the bar needed to satisfy your customers. If a system performs the functions you say you wanted and you still don’t like it, then you got the requirements wrong. If you update the requirements to address your objections, you’ll discover that the scope is greater than you identified. That confusion is a telltale sign of a team with immature design capability. (It should never be forgotten that Project management is a subset of Program management.)

Enterprise deployments of environments such as SharePoint require careful pre-planning, expertise, and thoughtful consideration for “future proofing” the final deliverable. A little now, or more later really does apply. Knowing the difference between scaling up or out is not sufficient. Sometimes you need to step back and redesign and redeploy everything along with updating the project initiating processes as well. SharePoint is a nebulous product which requires understanding of SQL, WSS, HIGs, peple, and more. 2010 is going to make things even more “difficult” so take your time, talk to everybody involved, and have a process.

Microsoft WebsiteSpark program: free Web development tools

Microsoft just launched WebsiteSpark, a third program designed to foster development and design, in this case for the web, for three years with no up-front cost if you can meet their requirements. As I mentioned, this is the third “Spark” program out of Redmond. The first two are quite appealing in their own right and I have mentioned them before:

  1. BizSpark helps early-stage startups succeed, by providing Microsoft software, support, and visibility at no cost
  2. DreamSpark gives students professional-level developer and designer tools as well as training available at no charge.

There are, as always, catches. In this case their are two:

  1. The company interested in WebsiteSpark must have fewer than 10 employees and owners that build websites and Web applications on behalf of others.
  2. There is a $100 program offering fee, payable on exit.

If you can meet those two requirements, you’ll get access to the following:

  • Microsoft Web design and development tools, including three licenses of Microsoft Visual Studio 2008 Professional Edition, two licenses of Microsoft Expression Web 3, and one license of Microsoft Expression Studio 3
  • Four processor licenses for production usage to Windows Web Server 2008 or R2 (when available) and four processor licenses for production usage to Microsoft SQL Server 2008 Web Edition
  • A third-party premium Web site control panel (DotNetPanel)
  • Two technical support incidents per company
  • Access to community support through connections with Network Partners, Hosting Partners and peers with complementary services and technologies
  • Unlimited access to technical managed newsgroups on MSDN
  • Unlimited program support for nontechnical issues
  • Your company’s offerings featured in a WebsiteSpark marketplace (coming this fall), supported by Microsoft marketing vehicles

New technology and common sense

When new technology is released it can be very painful. In more ways than one…

It can be painful to use if it is still in a Beta like form. Bugs, lack of features, changing road-maps, and other nuances of maturing code can be irritating for end users and those who support the solution. And with Google taking it upon themselves to redefine the public’s perception of “Beta” the waters are more clouded than ever as to what to expect from Beta software.

Rabid supporters and detractors serve to polarize and create opinions/sides that apparently must be held at all cost. Microsoft/Windows Vs Apple/OS X, Google/Android Vs Apple/iPhone, etc. Having an opinion is great, but if it blinds you then maybe it’s not so great…

New software frequently becomes the “in” thing. But just because it’s new and shiny does not mean that you should use it. Just because you feel that you need to learn it does not mean that it needs to be jammed into your current project(s.)

SharePoint 2010 has some rather interesting social networking features that are fraught with hazards without sufficient governance. Take it slow and really consider the consequences of feature deployment.

The value of distributed computing: The return of Markov chain Monte Carlo methods

A while back I wrote something on doing Monte Carlo simulations with Web Services and SharePoint. Halfway through I mentioned that Google Pagerank was defined by a Markov chain which in turn was an output of a process called Markov chain Monte Carlo methods. Not that it concerned me but only one person mentioned this, and at that it was a vague mentioning. Huh…

This actually is a big deal. In fact a very big deal. A multi billion dollar deal in fact, as in the case of Google PageRank. Distributed computing has the power to help us solve many things if applied correctly. The “cloud” does not. (A topic for later.) Probably the greatest hurdle in getting people back on track is that this technology has use beyond the scope of most peoples daily lives. For example…

A paper was published in PLoS last week, September 4th 2009, called “Can an Eigenvector Measure Species’ Importance for Coextinctions?” In it the authors state that “PageRank” can be applied to the study of food webs. Food webs are the complex networks of who eats whom in an ecosystem.Typically we’re at the top, unless Hollywood or very bad planning is involved. Essentially, the scientists are saying that their particular version of PageRank could be a simple way of working out which extinctions would lead to ecosystem collapse. A relatively handy thing to have these days… As every species is embedded in a complex network of relationships with others, even a single extinction can rapidly cascade into the loss of seemingly unrelated species. Investigating when this might happen using more conventional methods is complicated as even in simple ecosystems, the number of combinations exceeds the number of atoms in the universe… E.g. a typical lottery which has 8 numbers that can range between 1 and 50 has 39,062,500,000,000 different combinations…

The researchers had to tweak PageRank to it to adapt it for their ecology focused purposes.

“First of all we had to reverse the definition of the algorithm.” “In PageRank, a web page is important if important pages point to it. In our approach a species is important if it points to important species.”

They also tested against algorithms that were already in use in computational biology to find a solution to the same problem. PageRank, in its adjusted form, gave them exactly the same solution as these much more complicated algorithms.

With the right design SharePoint can be an extremely useful, and totally appropriate, interface for accessing and disseminating the inputs and outputs of such an effort. It can store and present this data with all of the requisite benefits one would expect from a collaborative platform. Certainly there’s a world of work involved in doing something like this but the key point is that the right tool for the right job mantra works here. “All” you need is:

  • IIS
  • .NET
  • SharePoint
  • PowerShell
  • Visual Studio
  • SQL
  • Skill

SiteMap in a custom SharePoint master page

Only a start but if you are having problems this may help… (As usual “<" has beeen replaced with "< ")
< sitemapprovider="SPContentMapProvider" id="ContentMap" skiplinktext="" cssclass="ms-sitemapdirectional" runat="server">
< id="PlaceHolderTitleBreadcrumb" runat="server" visible="False">
< class="breadcrumb">
< asp:SiteMapPath ID="siteMapPath" Runat="server"
SiteMapProvider=”SPContentMapProvider”
RenderCurrentNodeAsLink=”true”
CurrentNodeStyle-CssClass=”breadcrumbCurrent”
NodeStyle-CssClass=”ms-sitemapdirectional”
pathdirection=”RootToCurrent”>
< cssclass="breadcrumbCurrent">
< cssclass="ms-sitemapdirectional">
< /asp:SiteMapPath>
< /div>
< /asp:ContentPlaceHolder>