We all have great ideas for new applications and tools we'd like our organizations to build or adopt. But large organizations are resistant to change, and all too often these ideas never get the oxygen they need because they are "new."
This talk will focus on software design tactics such as how we use feature flags, phased rollouts, and environment fanouts to minimize risk while maximizing chances for a successful launch. It will also cover how we communicate with other teams and stakeholders to address their perceived risks so they can feel confident greenlighting new projects.
You will learn how to:
- use a phased rollout approach to minimize launch risk;
- start by building a streamlined application that only handles the simplest user flows at first;
- mimic legacy APIs so other teams can easily migrate to the new system without additional effort;
- reverse-engineer other systems when those teams won't give you any support;
- implement a fanout approach to minimize the operational burden of managing environments;
- leverage feature flags to separate feature deployment from code deployment;
- communicate with stakeholders to address perceived risks;
- forge coalitions and partnerships with other forward-thinking individuals in your organization;
- use your success as a wedge to drive further change.