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.

What real users are saying about Windows 10

The Control Panel. Yes, the Control Panel. How is it possible for a final, shipped product (8, 8.1, and now 10) to have multiple versions of a single app (the Control Panel) where some options are in one version and other options are in the other? And the UIs of each are completely different.

At least the Control Panel vs Change PC Settings options are now no longer shown together in the same pop open Charms menu as they were in 8.x. I suppose at least in 8.x they put one at the top of the menu and the other at the bottom of the menu, like there was some discussion to keep them far apart because, oh I don’t know, because having two different links to two different Control Panels in the same menu might be confusing to users.

Anyway, so the bizarre charms menu is gone. The Metro Change PC Settings app from 8.1 is replaced with a new app in 10 with some snazzy looking icons. But wait.. the Windows 7 style Control Panel is still in Windows 10? With the the previous Windows 7 UI style? Wait, what? So there’s still 2 different Control Panels in 10? Microsoft please, get your design teams in the same room!

More other bizarre observations and pet peevs in this post over at The Register.

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.