1 Step To Better SharePoint Project Management – Say No

There is one aspect that I unswervingly observe about project managers in relation to their project success rate, even though habitually my project management observations firmly occur from the SharePoint side. It seems without disappointment that the cumulative number of successful projects that a PM owns correlates with the maturity of their ability to elegantly push clients back from making decisions that appear to be unhealthy. In other words, they can look a client in the face, and while saying yeah….that’s actually bullshit and we’re not going to do it, appropriately spin a “no” response so that it doesn’t emerge so negative. In fact, they can get a client downright excited to get turned down for a feature that’s bubbled up, basically acknowledging that the client requirement makes sense, hell it’s a great idea, but it increases risk and costs right now. Coupling with this distinct skill is that these types of project managers often times can also step back from a client given requirement, and gauge what would be the most apposite response, regardless of the size of the decision. While at first glance the cost of immediately accepting such a poor input from the client is not instantaneously evident (since it is somewhat masked by the requirements timeline) even smaller decisions when coupled together can swiftly disassemble what otherwise can prove to be a successful project.

The incapacity to say no can without difficulty produce chaos with any type of project regardless of industry and target; however it is extremely prevalent to see it within software development projects. More specifically, with SharePoint projects (since project management on SharePoint will often, like several software products, mutate into some type of Software Product Strategy [SPS]). The grounds that scope creep and requirements overflow is so ordinary with collaboration systems is because its very nature is to touch and enable so many information workers. Once people get a taste of the functionality that you are offering them, the recommendations start to come in on how to enhance the system. The recommendations might get the right management ear, and then they become requirements, which tend to be out of the original project scope. Since internal customer management might not be technically experienced or not required to be for their job role, it is often difficult for them to put a filter in place which would otherwise sieve through those requirements. Following, those requirements are characteristically shot gunned at the consultants.

I am guilty of this as well; it’s not just an internal problem from the client. I often will bring additions that I am certain will greatly benefit the entire SharePoint environment. As a good SharePoint project manager though, while one should recognize that I might have good ideas for the platform, focusing on meeting the basic requirements is what at the end of the day pays the bills.

I am in no way proposing that for each requirement that comes down the pipeline that it should be immediately rejected. That would hinder and constrain the overall project deliverables, while making you appear to be rigid to both the client and your internal project team. I have however known, and worked for, companies in the past that handled requirements as they came down with instantaneous dismissal since it is admittedly the safest route to take. On the other end of the coin, you have requirements fanatics, which I tend to hate to work with even more than the former zealots. These personalities become aware of a requirement and it becomes holy doctrine for the rest of the team, they tend to be too god damn excited on delivering such random, unmeasured features to the client. Their passion for developing components for the customer is often times dampened with failure that ensues due to their mismanagement of basic organizational tasks when they become too overwhelmed with out of context actions.

Some of the reasons that a project manager, in the context of SharePoint, should say no is:

1) While this feature will extend our SharePoint environment, it is more of a nice-to-have, and not really a baseline requirement for this project

2) The calculated effort requirement by either/both the development or operations staff doesn’t really justify the production of the feature

3) The subproject in the terms of the current contract constraints doesn’t procure a practical baseline for reallocation (or allocation) of resources to make it a tangible production.

4) While this feature from the development or operations end is awesome, it is something that client doesn’t immediately realize the need for, or will never be noticed by the client

5) Holy crap, this doesn’t even qualify because it is so experimental, it isn’t funny (kind of like when a client asked me to build neural networks for forecasting models off SharePoint lists. Probably should have nixed that one).

So what to do? It’s all about promoting and maintaining a careful balance, supplemented with a project manager’s largest tool, a butt load of documentation. In this case, the particular piece of documentation that becomes your best friend is all that good stuff involved in the Change Control Process. I don’t mean go, download, and implement 50 templates that almost certainly include a bunch of fluff documents not required for your project. Each project is dissimilar, and since Change Control Processes while often times characterizing an orthodox set of documentation templates, doesn’t unavoidably mean it is all of a sudden project creed. The Change Control Process we must take into account is a supplement to a contract, placing both the client, as well as consultant, in a position to be subject to it. While it is inflexible in this regard, it ensures that requirements acknowledged and accounted for in the project plan are readily available to the client so that you can guarantee familiarity of current project state. Even while taking in the changes that may have come down the pipeline.

It is important that a project manager says no to a client, is all I am attempting to emphasize through this I suppose. This is particularly evident in SharePoint projects. While you shouldn’t say no to everything, the client is going to be partial to your organization a lot more when you completely relinquish a project with all the contracted features rather than delivering what is essentially a failed project with several half baked features.


The Degradation of Empirical Software Development Management Techniques

Today I went to the last lecture that concluded my foundational MBA course at USC (actually I am still in the lecture hall while I am writing this). The title of the lecture sounded intimidating: The Degradation of Empirical Software Development Management Techniques. Yikes. However extensive and unapproachable the title made the talk sound, it was actually focused on one major issue: while birthing and evolving software development techniques there has been a distinct de-emphasis on pragmatic metrics gathering. More and more it seems that people are concerned with the rhetoric and semantics revolving around an SDLC, rather than focusing on the SDLC management and aggregate end results to build practical reports off its garnished output. This loss is epic since it will result in the same mistakes being made twice.

I guess I can kind of see this happening in my own industry revolving around SharePoint development. There has been such stress placed on implementing one of the contemporary SDLC’s techniques like Agile and Scrum that people simple just enter into an auto-cliché mode when they are decided upon. Several companies who previously have had no development experience are somewhat forced to adapt, they haven’t had the need for such rubbish before because they had no need for custom software in general. However, SharePoint as a collaboration platform often times can work its way into such companies because information worker collaboration is a fairly consistent enterprise need regardless of industry. As a side note, I actually don’t know whether these are considered contemporary techniques ergo the placement of quotation marks around the term, I suppose in the terms of waterfall methodologies that seemed to be ingrained into management brains this is the case, so I will make that statement.

While I bring this point up, I am reminded of a short rant I had with a fellow MVP where this seems to be a quasi-proper place to insert it. In the realm of all of these new processes, we see even more to the metal of software development things such as ALT.NET etc. Quite honestly, I still follow my own paradigm which is DBAGDI, standing for Don’t Be a God Damn Idiot. In this methodology, you program how you want, and what your client expects of you. You solve a business requirement and move on. While some of these ideas and concepts spark some interesting debate whose output might result in a new way of doing things, and that’s neither here nor there, whatever happened to just programming well and within what a client expects, you know, being that metal bender programming guy that gets it done? Every day I swear I hear something new, ALT.NET, blah, blah, blah. I mean I work on a military installation, all I do all day is hear acronyms, then when I sit down to do my therapeutic development time that I enjoy so much that I made a fricking career out of it, more acronyms. Invading my space. Making me all sorts of mad. But ah, I digress from my original point which was more tiered around the project management space. Thank for hanging on through that.

Back to the project management end. While embracing and applying these SDLC’s into an organization, sometimes there is a distinct loss over what are often times required project management attributes. What’s the biggest one? Well, Earned Value Management (EVM) of course!

I am going to fly through this, but the work by Fleming and Koppelman pretty much defined EVM (it was in late 1998 if my notes serve me correctly, the professor wasn’t a historian :) ). EVM is a simple technique revolving around basic arithmetic, and likewise, provides uncomplicated, concrete metric output. EVM from a mathematical level is fairly easy to define, and is composed of several smaller formulas which are bloated and I will cover in a separate post how to simplify them.

Stepping back, let’s take a very basic, simplified look at Agile SDLC, and graft some of the major points out of it.

Agile is composed of short iterations, as opposed to large ones

Agile team members are self oriented, and the software development process generally include the entire team as opposed to chess piece management processes

Agile Is Adaptive And Expects Change

Agile Focuses On Highest Business Value First

Agile Lends Itself Well To Test Driven Development and Continuous Integration

There is a lot more but you get the idea, there are more resources than you can shake a stick at regarding Agile methodologies so I don’t want to cover it. The question remains, how do we integrate an Agile framework with some of these more formal project performance metric outputs? Furthermore, how can I compliment an adaptive SDLC that is an organizational preference with PM attributes that have been proven to provide central results?

It’s actually not that hard. Earned Value Management resolves around the Earned Value (which takes the Actual Percentage Complete by the Total Budget, simply APC% of TB = EV) and the Planned Value (which takes Expected Percent Complete Times Total Budget, simply EPC% * TB = PV). So, you calculate the Earned Value by taking your technical output against your planned technical output. Then, you can get your Planned value which is the technical output value constrained by a specific date.

Now this part is important, because managers think about one thing, dollars and cents. A lot of this value non-sense is, in essence, intangible. I say technical output because I didn’t take the note on the exact term that the professor used. You can’t put it into a monetary sense, and garnishing business value and trying to equate it at that is kind of self-defeating and in essence fictitious.

Now, let’s put these in some SharePoint terms to make some sense of it J SharePoint always makes things less complicated (sarcasm intended).

So, we have a typical SharePoint rollout at a Small-To-Medium enterprise whose initial project budget is $100,000 (hey, as consultants we always pad the cost a lil). Let’s not overcomplicate it and introduced varying development tasks and other nonsense.

In the Agile framework, we are separating this into short iterations, but for the sake of an example these are going to be a little broad. So, we are just installing SharePoint, them provisioning out some architected collections.

SharePoint task




Install SharePoint




Provision Initial Collections




Architect Site Structure






So, we got some of the basics down. Now, let’s do some project health indicators which can be feed into indicators at a later date, such as a Cost Performance Index (CPI).

First, let’s start off with the Estimated Percentage Complete. We are going to use our current iteration metric as the argument, even though there could have iterations before or after this index. So, I am going to start with the installation iteration, and see where we are at.

EPC (Estimated Percentage Complete) = CI (Completed Iterations)[5] / TI (Total Iterations)[15]

EPC = x = 33.3%

PV (Planned Value) = EPC (Estimated Percentage Complete)[33.3%] * TB (Total Budget)[100000]

PV = x = 33300

APC (Actual Percentage Complete) = TIC (Total Iterations Completed)[15] / TIP (Total Iterations Planned)[25]

APC = x = 60% Complete

EV (Earned Value) = APC (Actual Percentage Complete) * TB (Total Budget)

EV = 60% * 100,000

EV = x = 60000

Now, even though we have iterations, we can tell several things about our project even though we are just performing basic arithmetic operations. Most importantly, you are awesome because your Earned Value is above your Planned Value. You rock! If your Earned Value is less than your Planned Value, then you are in trouble.

Well, I think that covers basically what we were covering as far as empirical metrics are concerned. The point I am trying to drive home is implementing an SDLC is not a nice-to-have thing on any SharePoint project, it is required. And while this may be the case, it does not discount the tried and true project metric harvesting methods that have been around since the dawn of man. While producing of client deliverables is always the focus, generating valid project metrics can both help to manage your project better, as well as make sure that iteration problems that you have in one project, don’t get repeated on another.

Whew :)


The Inequities of Chess Piece Software Management

I was at a small lecture at USC yesterday for a foundational MBA course where the subject of the talk was varying management approaches across assorted industries when dealing with common software management. It was a brilliant discussion, very well thought out by Professor Ashby of the Economics Department. I really enjoyed the latter section of it where it became a more open forum to people to ask questions.

One of the management techniques discussed was aptly called Chess Piece Management. From what I understand and took away from the discussion, it is used relatively heavily for software development within larger companies that incorporate a fair amount of delegation. I found the entire concept of it intriguing, because it looked great on paper, but real world applicability of it I found lacking. Basically, it seemed to be deficient of a fair amount of qualities that I would expect in any management technique. Apparently however, it is instructed at a fair amount of business schools and subsequently put to use with enterprise software development projects.

The name of the technique pretty much sums it up. Firstly, examine the game of chess. There are several levels and units that are involved. None are more visible in Chess Piece management then the pawns (that’s me!) which advance on the frontline providing support and position to later power pieces such as the queen, bishops, knights, and rooks. It’s comparable to business practices because using your existing materials you seek to accomplish a certain goal. It’s easy to relate to software development practices because it can be an internal goal of architecting and developing against a SharePoint portal where the developer and architects are the pawns, middle / project management playing the bishops, knights, and rooks (because later pawn movement will generally be tailored around the actions that are planned for such power pieces however architects and developers still set the initial stage), and upper management being the ultimate end line of the queen and king.

At its most basic form, chess piece management seems to make good sense in its simplicity and form. However, it’s a cold, calculating form of management, IMHO lending it more to failure than to success. The problem with applied game theories and management is that it lends itself to consistent patterns, and not to feeling of all the units involved. There is matter of human element missing, and software projects tend to require and foster relationships. Such relationships are crucial since people have to cultivate trust between each other; I have to trust the architect that the platform that he provides will appropriately sponsor my development for example. Chess has a series of rules that are applied to it, and using these constraints, moves and actions are taken. Essentially, it is very rigid and a balance of emotional and calculating management is required for more successful management when dealing with software projects.

So, while I understand its form, I don’t understand successful implementation of the theory itself. A book the professor recommended called “Competitive Innovation Management: Techniques to Improve Innovation Performance” by James A. Christiansen apparently discusses it a little more, I picked it up this weekend so hopefully I can dig into it a little this upcoming week. You know, little late night reading before I hit the sack :)