Konubinix' opinionated web of thoughts

Defining API Before Crafting the Implementation


One example of the masquarade of pseudo agility is to define the interfaces before actually having anything concrete from which to guess an interface.

The scenario is the following.

  1. the marketing guys promises something cool to a client,
  2. the time comes when the client asks to see what we are really capable of,
  3. the marketing guys involve the technical chiefs to ask for a demonstration,
  4. the chiefs organize a seemingly nice demonstration,
  5. the clients asks to be able to really play with the demonstrator,
  6. the chiefs are forced to admit that this was not actually viable and promise some API, to stale them,
  7. the teams are asked to write the API before even implementing anything,
  8. the whole company changes the definitions to make them feel agile anyway (see rationalizing),
  9. the new definitions of done become even more vague and immeasurable: “won’t contradict the implementation to be”

In this scenario, care is taken to temporarily please the client and the viability of the product appears to be a future enough problem (see wysiati).