Categories
decisions engineering principles leadership strategy team

Engineering Principles 2020

I believe that what we do matters, what your team does matter and what your business does matter. Below is a helpful list of ‘engineering’ principles to focus on creating an environment where we can do our best work and use our time to matter.

1 – Work on yourself, your relationships and your team

Learn every day. Listen every day and try to think every day. Have a plan to learn React Native, finish masters, start a PhD, write a blog. Life is not static and time is limited. Is there a better way to use it than to improve yourself and your relationships?

2 – Hire good people who like to make things

Look for track record of thoughtfulness, consideration, kindness and consciousness. Also, look for builders and makers. Those are the people you can rely on and enjoy building businesses with. So your interviews need to be behaviour-based – assess whether someone has opinions and isn’t afraid to argue around a whiteboard. Avoid extravert biases. In tech, especially avoid male-centric interviewing. The world is huge. Do you want your AI to be programmed by only people like you? I wouldn’t.

3 – Code always wins

Talk is cheap. Building is hard. Always favour building, releasing and learning. Adopt continuous release management and stick with it. Release small and frequently. If you can do this, you are doing better than 90% of other businesses out there. Make the release process… a process without ExCo sign offs, special tests, service shutdowns. Anything that is not automated will cause a problem. Why? Because people don’t like responsibility for something they don’t fully understand. So, avoid it. Automate it instead.

Realise that things fail all the time. That’s okay. We know that failures are inevitable. Instead of ruminating over them, aim to reduce the time lag in detecting the failure and passing bugs to the engineering team. Learn from the failure and move on.

Finally, decoupled your releases. It is much easier to control complexity if you incrementally change. So avoid big releases as they mostly fail as the tech in 2019 is too complex to be managed by control. Always rely on the tracking and monitoring data as it will help you once the logic has dried up.

4 – Every team is a startup with a common vision

Common vision is important across the business. But you also need flexibility and autonomy to move fast. Combining team autonomy with a shared vision will make your business more robust. Paradoxically you want to rely on all of your team but at the same time, you must ensure that the business can continue with people being 3 weeks on holiday without access to the internet. So what do you do? Build team autonomy. Operate in cross-functional, autonomous Agile squads. Always document well. Documenting (user sorties, test, tech strategy, plans, roadmaps) is the most efficient way to communicate accurately and succinctly. Remember team roadmaps are driven by company goals. All of these goals, as well as individual objectives and key results (OKRs), need to be visible to all.

Your user data is your gold mine. Every team needs to live security by design. Security is not only owned by the Cheif Security Officer or CTO. Security is also owned by every product manager, designer, engineer, tester. Everyone who worked on a feature is responsible for the security of user data. Get familiar with the OWASP best practices, and strive to have automated security scanning with every deployment.

5 – Continuously remove your own legacy

Be critical of yourself. Reflect on past decisions. Learn from them to try and make better decisions next time. This is not to say not to make decisions. Make them all the time but be aware of decisions which are hard to correct (any hiring decision, picking a back-office platform) against decisions which are easily fixable later (landing pages design, AdWords campaign). Every decision you make creates some legacy. Carve out 2 weeks every quarter to spend on your legacy decisions to stay on top of it in terms of cost implications and to ensure future fitness for purpose. Your business has evolved and what worked during the first 6 months might not work now.