Have you ever faced issue when you trusted system, team or product and that resulted in failure of feature or system?
In fast changing progressive delivery, definition of trust keeps on changing. Some of the trust issues that happens are.
- Other system sends junk data.
- Other system does not maintain constraint of data like unique , null , referential integrity.
- Third party library causing unknown side effect.
- Nitpicking user or QA.
- Ignorant users.
- Demanding product owner.
As engineer you have to continuously revisit trust boundary otherwise someone else will find gap and exploit system. Trust issues happens between teams or within single team, so it is important to establish trust boundary to smooth function of teams.
Knowledge gaps plays big role in trust assumption that teams or individual make, best way of preventing trust issues are to document it as group that includes developers , QA and business. Once line is drawn then it becomes easy to take decision on different part of system.
The best part of agreeing on trust boundary is that it gives common framework for discussion and also avoids unproductive discussion.
So next time before starting to build any new feature or system , list down how much you trust other system or teams. Create triggers or alerts for every trust boundary violations ,so that you can react when something unexpected happens.
Bugs report also has lots of clue about trust boundary violation, so before fixing it revisit the trust boundary and make adjustment.