designing strong software teams

Ric Richardson’s insights into designing strong software teams

By Ric Richardson

Early in 2017 we started arranging our engineering talent at Haventec into three teams, each playing to their personal strengths.

Firstly let me say all our engineers are A players. They all have great abilities. I also know that people are happiest when they do things they are good at.

Here’s how we’ve arranged our engineering teams:

  • Red Team – R&D – This team can handle fast iterations and quickly assess, test and dump ideas while trying to break the back of bigger problems. The Red team must also be able to handle continuous disappointment. (Read more about the Red Team dynamic and Haventec’s Chief Engineer.)
  • Blue Team – Production – This engineering team focuses on production code, drawing on personal strengths like attention to detail and tenacity for quality output. Documenting, quantifying and articulating customer product requirements demands patience and relentlessness.
  •  Green Team – Customer focus – This team is made up of release code engineers who are sympathetic to customer needs and challenges. They fix and refine code to improve the user experience.

This approach is working well and everyone gets in and helps each other when needed – we don’t have silo builders at Haventec.

I’ve recently researched some interesting viewpoints on the difference between engineering for Proof Of Concept (POC) and Minimum Viable Product (MVP) relevant to our team.

One viewpoint explained the difference simply as: a POC proves a function or technology’s validity (i.e. whether it can be done and will work) whereas a MVP proves a product’s market viability (i.e. will someone pay for it).

Validity and viability are two completely different things.

Production readiness and tasks such as resilience testing, intrusion testing and hardening are part of delivering a minimum viable product / MVP. As we are catering to banks and larger corporations resilience testing and pen testing are part of the MVP.

Originally we thought of the Red Team as the MVP team but really they are the POC team. By the above definition the Blue Team is the MVP team and the Green Team helps mature and flesh out the products with the aid of paying customer feedback.

The other thing that became clear is how important prospective customer feedback and beta testing is to the MVP process.

It’s where all the customers’ questions get asked and answered:

  •         What is the minimum API set we need to run on an enterprise network?
  •         What is the minimum feature set needed for someone to use and pay for our product?
  •         How good does our documentation have to be? What is the minimum pen testing we need to do?

So besides making rock solid quality code, the Blue team also has to have constant feedback from marketing, sales and beta testers, all the while developing reliable and provable answers to all these questions.

So here is a question: could a proof of concept team also do a minimum viable product?

Probably not. But it’s worth tinkering over.