How Microsoft’s Secrecy Policy is Hurting the SharePoint Community

You may have heard that there’s a ton of new software from Microsoft on the near horizon.  Windows 8, Office 2013, SharePoint 2013, and pretty much anything on which you can slap 2013 will come out in the very near future. (Update: Not so much near future anymore)

You may also have heard that I’m not particularly fond of how Microsoft talks to the market about these things. I’m fairly negative, not because I’m offended by not being part of ‘the inner circle’ but rather because Microsoft’s silence is hurting the community.

How? Well, I’ll tell you how.

The Current State of Affairs

Today’s policy means that only a select few customers and partners are let in on what Microsoft is planning. In addition, MVPs get access, probably as some form of reward for being good puppies.

Microsoft’s reasoning may be that they don’t want to show off incomplete products because the product may change before release and thus give people the wrong impression or that the product may contain errors that may negatively affect the reputation of said product.

On the flip side, you may say that Microsoft is opening up to some people rather than being completely silent, and that their purpose is actually to elicit feedback from a select group of users that they think represent the whole market.

I’m not sure if these are the real reasons, but I don’t buy any of them if they are the reasons.

In any case, the current situation is that those who gain access to early information need to sign strict non-disclosure agreements under punishment of death (or so it is meant to seem). Break the contract and you’re liable for all sorts of bad stuff, and Microsoft will never come out to play with you again, even if you say you’re sorry.

So why is this so bad for the SharePoint community?

I Don’t Know What to Say!

During the course of a product cycle of three years, there’s at least one year of complete uncertainty, right after the first official news comes out about a new version. The uncertainty stems from several factors, depending on where you are in the food chain.

People in the community base their professional existence on knowing SharePoint, and almost like clockwork, Microsoft hints ever so slightly that the current version isn’t as good as what comes next.

Consider the following scenario: A client comes to you and asks for advice on what to do with SharePoint. Should they build their new ACME system on SharePoint now? As an advisor, you know that there is a major new version of SharePoint coming within a few months, but you have no idea what that version includes. Perhaps it contains 90% of ACME built-in. If you tell your client to start work now, they may be wasting a lot of resources building something they get for free in a few months.

But you don’t know, so what do you say? Do you take the clients money now and risk their investment in a few months or do you recommend they wait at the risk of not landing their business?

“Ah, but hang on”, you say, “nobody wants to upgrade right away in any case, so why rush? After all, a year after the next version comes out, it will be stable and tested.”

Well, that’s great, but a year after SharePoint 2013 comes out, it’s already 2014 (or close to) and Microsoft is already planning the next version! Another one year, and the news about SharePoint 2016 starts leaking and your clients are again left with the difficult choice.

This is a constant problem, however, and not just with SharePoint. After all, Office has the same situation, as does Exchange, Windows, or any other software.

However, the situation is a bit different with SharePoint. Organizations put a lot of valuable resources into SharePoint, in building solutions, training employees, and storing business critical data. Also, because SharePoint’s changes and improvements are often so drastic (just look at the user interface changes from 2007 to 2010, or the ‘new’ way of doing social in organizations) that swapping one version for another isn’t as easy as upgrading from one version of Office to another, or replacing an older version of Exchange with a new one.

There’s also the problem with those learning SharePoint development now. Should they learn .NET 2.0 because that will be used in SharePoint 2013 too? Well, Microsoft isn’t saying what version of .NET will be used so it’s anyone’s guess (or you can listen to me and go for .NET 4.0, but sshhh, don’t tell the Redmond folks I told you so).

Business is Business

Sure, I’ve addressed one problematic scenario, but that can’t be the whole problem, right? What about vendors? Well, for vendors, the situation is even more problematic.

Imagine this situation: your company makes an ACME feature for SharePoint, on which you base most of your income. Many third-party vendors are in this situation, betting that Microsoft will stay away from the product market and stick to building platforms.

Now consider this: Microsoft promises to come out with a new version of ‘something’, but not revealing what that ‘something’ is, you don’t know whether you’ll be in business in a year.

I just spoke to one SharePoint eLearning software provider, a partner of Microsoft no less, who very recently (and I mean _very_ recently) was assured by Microsoft’s head of education that Microsoft would never engage in building an education product on SharePoint, or so the provider thought.

Well, now we know different. Microsoft is building an education product on top of SharePoint Server, and it’s called “Office for Education”. They even published the specifications before the vendor was promised Microsoft would never do such a thing!

So now this vendor is in deep waters. They just got one of their closest partners as their main competitor, a huge mammoth of a company that can throw billions of dollars into marketing to grab that vendors market.

At least now, thanks to someone (who has two thumbs and doesn’t give a rats ass about Microsoft’s secrecy policy), they have a year to prepare, rather than a few months or even shorter had they waited until the privacy crap stopped.

Even this, however, isn’t news to anyone in software. Competitors come and go all the time, right?

Well, it is a major thing when Microsoft suddenly becomes a competitor, especially when they swear not to do so or try to hide the fact. Besides, Microsoft does invite some partners to know what’s going on, giving these partners advance notice compared to those outside the ‘inner circle’. At the very best, it is extremely unfair to those who are not invited but still have helped Microsoft build SharePoint to what it is today.

Competition isn’t the only problem either. Vendors are cautious about launching new products to SharePoint 2010 because they don’t know whether those products will work the same way in SharePoint 2013. Even a simple thing as the .NET 2.0/4.0 problem directly affects development decisions, and right now, vendors can’t make that decision because Microsoft refuses to let anyone know what framework they’re using in a few months.

Well, the Problem Is…

Microsoft says that they let some people have access in order to find bugs so Microsoft can fix them before release. That’s fine, but why does it make sense to only have a few people find bugs? Microsoft’s v1.0 software, whether that is the first release of a new version or an entirely new feature, is rarely bug free.

In fact, many will say that, as I mentioned earlier, upgrading to a new SharePoint version right after release is a huge risk because there may be bugs and problems that haven’t been fixed yet. These bugs are discovered only after Microsoft exposes the software to a large user base. Only after a huge number of users have worked with the new version for a few months can you get fixes and start relying on the platform as stable and more or less error free.

See where I’m getting with this? If those users had access months before ‘official’ release, those bugs would have been found earlier and the product would be much more stable when released to the public. The people who would work with the product at such a stage of completion would be the most tech-savvy of the user base, knowing full well the risks of running beta (or even alpha) software.

Microsoft actually does this to some extent already, by having a public beta be available this summer. That’s a good thing, and kudos to them for at least doing that, but at the moment they are losing out on valuable input from technology interested people who would jump at the chance to dig into the product this early and provide help in finding bugs and problems.

In fact, when the public beta hits the shelves, only minor changes will happen to the finished before the final product becomes available. What about all the wonderful feedback and suggestions that could have come from early adopters when it was still time to make important changes?

Instead, Microsoft releases a product they know will have bugs, leading people to correctly chant that you should delay adoption for a year so Microsoft can sort out all the bugs they didn’t allow anyone to discover earlier. The SharePoint name suffers, costs to early adopters  go up, and everyone but the demo-trained sales people are miserable for several months after release.

In the End

I’m not going to drag this on forever, so let me just conclude with the following. Microsoft hurts the community by making its participants uncertain about the future and alienates its partners by consistently refusing to disclose new features that directly affect them. They also hurt the community by delivering a product that everyone knows will have bugs on release, bugs that could have been discovered with a broader access to information and bits at an earlier stage.

If you disagree, I’m all ears, because I’m still looking for well-founded (and that doesn’t mean marketing-based) arguments for why Microsoft continues to deny the community vital information that directly affects their future, can help vendors prepare, and could have made SharePoint a much better product.

.b

Found this article valuable? Want to show your appreciation? Here are some options:

a) Click on the banners anywhere on the site to visit my blog's sponsors. They are all hand-picked and are selected based on providing great products and services to the SharePoint community.

b) Donate Bitcoins! I love Bitcoins, and you can donate if you'd like by clicking the button below.

c) Spread the word! Below, you should find links to sharing this article on your favorite social media sites. I'm an attention junkie, so sharing is caring in my book!

Pin It

SharePoint Education: Features Detail

As part of my research into the SharePoint Protocol documentation, I’ve been particularly keen on learning about a major new feature of SharePoint 2013, namely SharePoint Education.

In my ongoing USP Journal subscription series called SharePoint 2013 Beta ($14.95 for the entire series) I posted some initial findings on the SharePoint Education component for the second issue.

Over the course of a few blog articles, I’ll repost some of the findings presented in that issue, and even provide some additional insights. I’ve rewritten it slightly but the bulk of the content remains the same.

This article provides a deeper detail into some of the SharePoint Education features mentioned in the first article. Look towards the bottom of this article for further articles as they become available.

SharePoint Communities

SharePoint Education introduces a new grouping mechanism called a community. Communities are parents of courses, and hold memberships, status, and site information for the course.

The parent relationship means that courses are a sub-type of communities. This is important to understand for two reasons, one firm and one speculation.

The firm reason is that everything that applies to communities, including its state, memberships, and so on, also applies to courses. The second and speculative reason is that communities may be meant to be extensible (they are extensible, but are the meant to be used as extensible entities?) and can thus form the basis for custom community development.

Communities are either in a planning, active, or inactive state. Provided the ‘communities are classes’ assumption holds, this would mean that teachers and faculty can set up classes prior to class start and then activate them at the appropriate time.

When transitioning from ‘planning’ to ‘active’, members are granted access, and when the community transitions from ‘active’ to ‘inactive’, the community (or course) becomes read-only.

Users are added to the community through memberships, and have roles as members, although it’s not said in the documentation whether these roles are normal SharePoint roles (like contribute, read, and design) or whether roles are unique for communities (like student, teacher, and so on).

Courses can also be tagged, and the client object model states that these tags should have a text string format. This may be meant as a method of categorization of different communities and courses, but may also be a method for allowing users to add social tagging for courses they like.

Finally, a community has a SiteURL property that points to where the community resides. For a course (see below), this could be the course home page, and for a study group, it could be a page containing libraries of material, discussion groups, and so on.

Courses

Courses are the main method of delivering learning material.

In addition to the above description of communities, courses contain additional properties. Courses contain a course code, name, description, assignments (including assigning assignments to users), documents and academic documents, events and schedules, grades, lessons, course materials, and submissions, plus a few others.

Lessons

Lessons are exactly what the name implies, a unit of learning.

Lessons are organized in a hierarchy, so each lesson can have child lessons. Lessons also have sequences to control delivery of information. Lessons contain assignments, documents, and events, and are connected to a community (or course).

Assignments

Assignments are also exactly what the name implies; tasks for students to perform to demonstrate or practice their understanding of a topic or lesson. Assignments are assigned either to a list of users or to all users in a course. The format of an assignment is either document or quiz.

Note I’ll talk more about the quiz option in a later issue; I’m rapidly running out of time and space…

Assignments can be set up in a specific sequence to arrange the delivery of multiple assignments in a specific order. In addition, you can specify a start date and time to indicate from when an assignment is available to student. Of course, you can also set a deadline, at which point the assignment is due for submission.

The life of an assignment goes through several states. Initially, an assignment is Unassigned before moving into the Assigned state. When the assignment becomes assigned, all those who are targeted for the assignment gets the assignment added to their list of tasks.

When the assignment moves to the next stage from Assigned, it can take three paths, either to GradingStarted, to GradesPublished, or back to Unassigned. If moving to the GradesPublished state, any assignment grades are published.

Submission

Of course, there’s nothing to point in assigning anything to students if there are no submissions. SharePoint Education has a dedicated object for this purpose.

Submissions are what users send as a response to an assignment. When students begin a submission, SharePoint will automatically create a folder to hold the submission.

The student can work on the submission in SharePoint before actually submitting the documents for the assignment.

Upon submitting, the submission automatically becomes read-only for both students and teachers, and the date of submission is set. In addition, the assignment for the student gets a status of ‘submitted’.

Finally, when the teacher has graded and published the grade, the status of the assignment for the student becomes ‘Graded’. Optionally, the teacher may provide a feedback document to the student.

Grades

Speaking of grading, SharePoint Education supports grading on multiple levels and in multiple formats.

Grades can be assigned both to individual assignments and to the entire course. You can set grades in numbers or as a text (A, B, F, and so on, possibly also arbitrary grades like ‘passed’ or ‘failed’ too), but the documentation does not state whether there is any correlation between the two, for example by saying that any score over 93 is an A, any score between 85 and 92 is a B, and so on.

Further, you can aggregate data about a user across multiple courses and assignments to produce reports such as grade reports, completed courses, and so on.

Events

The Event in SharePoint Education remains somewhat elusive. It’s not that it’s difficult to deduce what an event is; it’s just that it is not clear exactly how SharePoint Education will use these events.

The Event object, according to the protocol documentation, represents a scheduled event, a logical description, and it has a start date, an end date, a category, and a location, a name, and a description, to name a few properties that are also natural.

In addition, and to indicate that events have very generic usages, an event may also contain assignments, documents, and lessons, and can be tied to a community. In other words, it seems that an event in SharePoint Education may be as generic as ‘something that happens’.

At this point, however, I‘m not sure further speculation improves the clarity, but I’ll keep digging to find additional information.

</end excerpt>

Disclaimer: Everything about SharePoint 2013 is speculation at this point. Don’t make important decisions based on preliminary speculation. If you do, you may find yourself in trouble, such as, but not limited to, your open-faced sandwich always falling face down.

If you still want to get the insights into what’s likely coming in SharePoint 2013, there’s no better way than subscribing to the SharePoint 2013 Beta series for $14.95.

.b

Pin It

Minimal Download Strategy in SharePoint 2013

A while back I tweeted briefly that I found something called Minimal Download Strategy framework in the SharePoint 2013 protocol documentation. Needless to say, I wanted to figure out what it is, so I researched a bit and wrote about it in the second issue of the SharePoint 2013 Beta series.

Here’s what I wrote:

I mentioned in the previous issue that interface and client developers will get far more tools in their shed in SharePoint 2013. One of these is the minimal download strategy framework (MDS).

This is a very interesting technology for developing web pages that are responsive and take far less bandwidth than full pages.

Consider this scenario: You have an application with perhaps 15 different pages where most of the pages (navigation, header, footer, and so on) are more or less similar.

Today, even though most of the content is the same for all of the pages, you still need to download the full pages every time you load a new page. For SharePoint, that’s a burden, because pages are quite heavy with tons of CSS, behind-the-scenes scripts, view states, and so on. In fact, a default home page in a SharePoint 2010 team site is 675 kb large

Note: Thanks to James Love for figuring the page size out for me. I didn’t have a lab at the time of this writing.

The image below shows a typical page and its components, with the grey areas being similar across multiple pages.

SharePoint 2013 Minimal Download Framework

Wouldn’t it be better to simply load only the changes from one page to the next? In many pages, the changes from one page to the next may be just a kilobyte or two of text, saving literally hundreds of Kb of bandwidth on every page hit. Loading only those changes would make your network guys very happy.

Well, that’s exactly what MDS tries to do. What the MDS does is that it allows users to load only what changes between pages. This drastically reduces page load time and speeds up responsiveness for the entire application.

The way this technically happens is that users navigate to a start page (start.aspx), which accepts as its parameters the URL of a base page (for example page1.aspx). When the user navigates to the next page (for example page2.aspx) only the changes between page1.aspx and page2.aspx are loaded and sent to the client. The start.aspx page is responsible for updating the sections of the pages that change.

Now, to seasoned web developers, this won’t come as a great new innovation. After all, we’ve had AJAX for many years, including in Microsoft’s own ASP.NET framework.

However, what may be innovative is that the partial loading seems to be largely automatic. Making partially loading pages possible in other frameworks and platforms may require lot of work. Perhaps the greatest benefit will be in an easier approach or possibly even a fully automatic partial page loading.

</end excerpt>

Disclaimer: Everything about SharePoint 2013 is speculation at this point. Don’t make important decisions based on preliminary speculation. If you do, you may find yourself in trouble, such as, but not limited to, your spouse finding lipstick on your shirt collar (applies to both men and women).

If you still want to get the insights into what’s likely coming in SharePoint 2013, there’s no better way than subscribing to the SharePoint 2013 Beta series for $14.95.

.b

Pin It