The Unavoidable Compromise of Business Driven Development

Given enough money, time, experience,  technical experience and creative input, time has shown as an industry we can build awesome things. Unless you’re working on a self-funded project with unlimited supplies of cash and time, it’s unlikely that most of us will ever have the experience of working with minimal or no resource constraints.

Software development in ‘the real world’ is really no different from any other business, and the concept of the Triple Constraint has been well understood in Project Management for some same. This describes the inter-relationship between 3 attributes of:

  • schedule
  • scope
  • cost

and how they interact to affect quality of the final product. At a high level, it’s generally understood that you can have ‘any two’ of these, but it’s impossible to have all three at the same time. Each of these attributes translates to desirable qualities of:

  • fast (deliver the product in less time)
  • good (include all desired features)
  • cheap (deliver at low cost)

So, you can have fast and good but it won’t be cheap, or you can have fast and cheap but it won’t meet all your requirements (some features will have to be left out).

So back to the original topic. How is software development a compromise? Invariably because your client or your company wants all these things: “we want it developed in an impossibly short amount of time (get it ready for tomorrow), we want this massive list of features (and no, we’re not prepared to leave any out), and oh by the way, we only have enough money to pay for 1 developer to work for 8 hours”.

While technology can go some way to helping produce more for less (code generation etc), the reality is that software development in the real world is not a technical problem. It is a business problem of negotiating contracts and managing expectations. For the technologist, this is the continual struggle – pretty much everything you work on will be under less than ideal conditions.

Business Driven Development (BDD). Welcome to the Real World.

Windows 10 – is it ready?

Only a day away from Windows 10 starting to rollout on July 29th, and people are wondering whether it’s really ready for release or not, or as The Register puts it, Microsoft are still playing ‘whack-a-mole’ with bugs before the actual release: “A number of nagging bugs have cropped up in the last few days that have some Windows 10 testers scratching their heads at just how an OS this raw can be considered production-ready.”

But if we’re prepared to accept’s Microsoft’s concept of ‘Windows as a Service’, this is all perfectly ok, because you’ll be getting a continual stream of Windows Updates to patch all the issues after the first release is pushed out. I’m not sure how this differs from any other Microsoft release of any prior release of Windows, but ok then, if you say so.

So your release forecast for tomorrow is: extremely buggy, with a very good chance of patches released later in the day.

Is Microsoft planning a ‘bait and switch’ with the ‘free’ upgrade to Windows 10?

There’s a lot of uncertainty around exactly what Microsoft are offering for the ‘free’ upgrade to Windows 10 that’s going to start rolling out on July 29th. winsupersite.com have a good collection of questions people are starting to ask about what is included in the upgrade offer.

An article in Forbes discussing some internal presentation slides that ComputerWorld obtained is suggesting that the ‘free’ upgrade may not turn out to be entirely free after all, as a cryptic statement from Microsoft states:

“Revenue allocated is deferred and recognized on a straight-line basis over the estimated period the software upgrades are expected to be provided by estimated device life…. [The estimated device life] can range from two to four years”

We can only speculate exactly what Microsoft means by this statement, but it implies the ‘free’ upgrade is only initially free, and thrn at some point during the lifetime of your installation, the cost will be recouped. Exactly how or on what timescale the cost is recouped is unclear, but this statement implies at some point you will be charged for your Windows 10 – possibly ransomware style (‘Pay $199 now to continue using Windows 10’), or maybe subscription style (a monthly subscription to keep the install active?) – at this point there’s not enough information to be able to say. But it does seem clear, we’re not getting Windows 10 for ‘free’.