iPhone Detected, site running in minimal mode.
Home     Tags/Archives     Tweets     About Kevin

DevLink LogoWell I attended DevLink down in Nashville, TN last week.  It was my first time, but certainly won't be my last.  John Kellar and all the volunteers did a great job pulling off a super conference that felt more like a huge extended community code camp than what I traditional think of as an "industry conference" (e.g. TechEd, SxSW, PDC, etc...).  Don't read that as a negative in any way- it was a great experience, and by far one of the best values all year (it was $100).
 
The sessions were great and they had even added a SharePoint track this year, so there was no shortage of good stuff happening each day.  One thing that I do regret is not checking out the Open Spaces stuff (sorry Alan, the timing just never worked out).  As is often the case with conferences though, it was the networking that happens informally in the evenings that really provides the incalculable value.  From the quiet lobby-bar chats to the loud parties out at the Honky Tonks (Tootsie's Orchid Lounge was a favorite) I made a ton of new friends that I'm sure I'll keep in touch with and see again and again.
 
Particularly I'd like to thank my new friends from the SharePoint community,Eric Shupps, Cathy Dew, Dan Usher, Rob Foster, Rick Kierner, Becky Isserman, and Dennis Bottjer.
 
Lastly, let me post a quick soundbite from the closing panel.  It's Richard Campbell telling his Goliath story.  Seriously, this guy is a great story-teller- I can just imagine him on NPR or something listening to this.


I just wanted to dump some ideas out there surrounding one of the trickiest pieces of using agile development methodologies in a consulting / outsourced environment: Agile Contracts.  Much of the musings below come from other sources with my own thoughts mixed in, but one source I'd like to specifically call out is the PDC 2008 session I attended given by Mary Poppendieck and Grigori Melnik.
 
The Problem with Two Party Interactions
So the first thing to look at is why we even need contracts in the first place.  The conventional wisdom is as follows:
  • Companies inevitably look out for their own interests
  • Contracts are needed to limit opportunistic behavior

What Mary points out though is that really at the core the problem is that there potentially exists conflicts of interest which drive the paranoia of opportunistic behavior.  In an ideal setting though we:

  • Assume other party will act in good faith (so this requires a level of trust)
  • Let the relationship limit opportunism (again, requires trust, but also some basis for the relationship)
  • Use contracts instead to do these things:
    • Align the best interests of each party with the best interests of the joint venture
    • Eliminate conflicts of interest

I'll come back around to how this type of relationship and contract are formed up in a moment, but first lets look at how the two types of traditional contracts fall short of meeting the ideals above.

Problems with Fixed Price Contracts

  • Supplier is at greatest risk
    • Customer has little incentive to accept the work as complete
  • Generally does not give the lowest cost
    • Competent suppliers will include cost of risk in the bid
    • Creates the game of low bid with expensive change orders (which blows a hole in the primary reason CFO's like fixed-bids, which is budget predictability)
  • Generally does not give the lowest risk
    • Selection favors the most optimistic (desperate) supplier
      • Least likely to understand project's complexity
      • Most likely to need financial rescue
      • Most likely to abandon the contract
  • Customers are least likely to get what they really want.

Remember, that the "protection" that a fixed-bid contract seemingly provides (if we don't like it, we don't have to pay for it) is all illusory.  This is because the value that the project is projected to provide is greater than the price of the effort otherwise the project would not move forward.  If the effort is "not-accepted", then the vendor is out the costs of the resources employed on the project.  However, the customer is out both the costs of their resources involved in the project as well as the anticipated return of the project (which we already said is greater than even the PRICE, much less the vendor's actual COST).  So who is the biggest loser here? Obviously depending on the relative sizes of the vendor and customer it may still "hurt" the vendor more, but clearly the customer has more at stake, and so I would contend that fixed-bid "protection" is a fabrication.

Problems with Time and Materials Contracts

While there are many useful scenarios where T&M projects make sense (staff augmentation, etc...) in general there are quite a few problems with them in an outsourced project model as well:

  • Customer is at greatest risk
    • Supplier has little incentive to complete the work
    • Therefore we believe we need to control supplier opportunism
  • ENTER: Project Control Processes
    • Detailed oversight generally provided by the least knowledgeable party
    • Supplier must justify every action
  • LIKELY LEADS TO:
    • Increased costs
    • Artifact creation that does not add direct business value
    • An assumption that the original plan is the optimal plan (the one created at a time of lowest knowledge/information about the project)

Candidate Solution: Target Cost Contracts

Circling back to our idealistic world now that we know some of the problems with traditional contracts, let's look at a different kind of contract.  How can we build a contract that has the following properties?

  • Target Cost defined and includes all changes
  • Target is the joint responsibility of both parties
  • Target cost is clearly communicated to workers
  • Negotiations occur if target cost is exceeded (or projected to)
    • Neither party should benefit under this scenario (it's a failure scenario)
  • Primary goal of contract is to remove conflict of interest.

In order for such a contract to work there are a few assumptions that probably need to pre-exist:

  • We have some basis for relationship and trust.
    • This means we may have to start off with a small project using a traditional contract.
  • We are probably using an agile development methodology that utilizes fixed-time, fixed-budget, and prioritized variable-scope mechanisms (backlogs,etc...)

The structure of this contract includes the following:

  • An unbrella or framework contract with the legal stuff in it.
  • Establishment of a target cost
  • Work themes defined in stages (prioritized)
    • Stages should be small to limit risk for both parties and to provide everyone with frequent points to revisit the value-proposition of the relationship
  • Scope beyond the current stage remains fluid and negotiable
  • Contact should describe the relationship, not the deliverables
  • Contract should set up a framework for future agreements
  • Contract should clearly define a means for mediation if no agreement can be reached. (this is important!)

My Conclusions

So what I've found in my almost 15 years in this industry, is that our best customers always seem to end up in this type of contract model anyway (after perhaps a few projects using a traditional contract).  But wouldn't it be better if we could actually LEAD into a relationship with this idea in mind and use it as a means to better define our value-proposition and distinguish ourselves from competitors? (or at the very minimum, get to this model sooner than later so that everyone can be more productive).

Those are my thoughts, please share yours!


From Typemock and Roy Osherove earlier today:
 
Typemock are offering their new product for unit testing SharePoint called Isolator For SharePoint, for a special introduction price. it is the only tool that allows you to unit test SharePoint without a SharePoint server. To learn more click here.

The first 50 bloggers who blog this text in their blog and tell us about it, will get a Full Isolator license, Free. for rules and info click here.


Here's a fun little video that teaches the basics of Pointers in C.  I love lo-tech/hi-concept productions!
 
YouTube Video
 
The video was made by Nick Parlante, and you can find it and other supporting materials at the Standford CS Ed Library site.  Another series that I love that falls into this categoy is all the stuff at Common Craft.  Does anybody have other favorites in this particular genre?


I started playing around with SilverLight DeepZoom this evening, mostly using the JellyFish DZ tool on codeplex.  This certainly makes it easier to do the picture compositing type of stuff that a lot of people are doing right now like the Hard Rock Memorabilia site and the more recent Obama Headlines demo.
 
Hard Rock Memorabilia Screenshot
 
I really like how the SeaDragon technology really makes a super responsive UI and the zoom transitions are so smooth (way better than like what you get in virtual earth or other map apps).  But it got me thinking... beyond this type of deep exploration of a fairly static picutre, albeit a hyper-hires one, could this technology be used as some fundamental different way of navigating data (in more of a live/dynamic sense?)  Perhaps it's the MS Surface team with all their talk about NUI's (Natural User Interface's) that has me thinking like this, but I'm presently trying to brainstorm other "uses" for this technology.
 
So beyond the kind of boring "data-object model" navigation on the fly, I'm thinking of something like this.  Take one of my favorite old-school utilities, SpaceMonger, which looks like this:
SpaceMonger Screenshot
This great app by the way, esentially displays the contents of your hard drive by visually representing the "space" that each item takes up so you can visually find the "mongering" size files.  It let's you "dive" into subfolders to see more and more details-- but as you can see, the graphics are not all that sexy.
 
Now enter SilverLight DeepZoom.  What if instead an app produced nice looking hi-res graphic outputs that were autostiched into a DZ browsable image?  That would kick ass.  And why stop there... let's go ahead and start back out at your network topology map, and let you zoom around and down INTO each server's or workstations HD?
 
Sounds cool, but obviously not trivial in work to produce.  But mark my words-- someone will build the app described above within the next year or two, I guarantee it. 
 
The areas around visualization of data is just now starting to pick up some serious steam with the new technologies available (driven concurrently with BI).  What other cool ideas can we come up with?

  << Older      [more posts]   

RSS FeedBack to the HomepageMy Twitter FeedMy Stumbles

Tags

Hide Low Frequency Tags

Archives

Recent Posts