29 September 2011

Constraints in the forms of Triangles, Squares …

Life is full of constraints. It seems like you can never simply "have your cake and eat it".

service triangle


In Product Development, we have the following Project Triangle:

  • Good - quality of the delivered product
  • Fast – time taken to deliver the product
  • Cheap – cost of designing/ developing/ delivering the final product
We are told to pick any two!

In System Development, the Project Management Triangle follows:
  • Scope – the set of functionality for the system or the work to be performed
  • Schedule – time taken to complete the project
  • Cost – cost of implementing/ delivering the final system
We are told to pick any two!

A variant in System Development, a Project Management Triangle (more like a Square) follows:
  • Scope – the set of functionality for the system
  • Schedule – time taken to complete the project
  • Cost – cost of implementing/ delivering the final system
  • Performance – the ability of the system to take load and be responsive
We are told to pick any three!

For distributed systems using shared data among nodes, a similar triangle – known as CAP theorem or Brewer’s Conjecture – exists. The three constraints are:
  • Consistency – all distributed nodes are in-sync and consistent and “sees” the same data
  • Availability – every client’s request will receive a response, whether successful or not
  • Partition tolerance – system continues to operate despite
    • arbitrary messages between nodes dropping or arriving late; or
    • nodes becoming unavailable (due to crashes)
We are told to pick any two!

No comments: