The IMS global Technology team are currently developing greenfield projects, using a combination of serverless and server technologies in AWS to deliver a scalable, supportable, secure and well-monitored solution that will form the backbone of IMS’s technical platform.
Mark Chamberlain, Head of Architecture, talks us through his tips on how to succeed in the IMS tech team.
- Design ‘just enough’ to get going. This is a bit of a balancing act at times, but we should look to avoid “Analysis Paralysis” where we get caught up in every scenario where something might go wrong but equally we shouldn’t fly in completely blind. There is a Goldilocks zone where we have enough shape to a problem to begin an implementation, but we haven’t spent too long pondering every edge case out there.
- Don’t be afraid to fail. We will make mistakes, that is one of the few certainties we have. The important thing is that we learn and adapt. We are implementing small discrete services that will make it easier to switch things in and out as we learn. We will ensure we automate everything so we get fast feedback and can make changes quickly. Things also change around us all the time, many of which are out of our control. We need to think about change as part of how we build things so we can pivot later when we have to. It’s better to fail fast and adapt than not start at all.
- Start simple. Don’t design complexity into things until it actually needs complexity. Challenge it where it crops up, it’s often human nature to worry about the ‘what if’ scenarios that may one day happen. We can always layer on complexity later, but unpicking it is much harder. A lot of this complexity may never happen anyway.
- Talk to each other. Don’t sit on problems yourself, ask for help. We have many ways of achieving this, from peer discussions to pair programming to technical groups to open communities. Often unexpected people will have experience of problems, so ask openly. Nobody will ever judge you for being uncertain. We are a team.
- It’s not a dictatorship. We are all in this together and should all be striving to be successful. You are all here because of your expertise and capability in your respective areas. Don’t be afraid to use that, not every decision needs to be driven from above. The most successful teams are self-organising. The leadership team are here to help, but rely on them telling you what to do.
- Technical debt is okay. Not every solution is a straight line. In fact, very few are. We will make some tactical decisions along the way, probably even a few we regret a bit later. Keeping moving is valuable, though, and so we might need to record something for later in order to keep moving now. Have a conversation with your teams, run a three Amigos session, agree the best way forward and understand the impacts but ultimately try and keep moving. Make sure this isn’t lost and we record it in the backlogs so we don’t forget about it later
- Think iteratively. We don’t just have one swing at things. Everything we build will evolve and change over time. This allows us to solve small problems and grow them up. In many ways this probably re-iterates starting simple, but it seems worthy of its own call out.
- It’s your product. Alright, maybe someone else is paying for it and there are always stakeholders who need to be kept happy, but you should know and love your product. You should be proud to point at it and say you did that. Feel some ownership. Understand why it is there.
- Stop and reflect. From time to time it’s good to stop and look back. We hold retros to make sure we carve time out exactly for this, but this is valuable time. Make sure you are looking to get the most out of them. Don’t bottle things up, be open. If we aren’t adhering to the points above then ask “Why?”. All of us are accountable for making this a success.
If this sounds like an environment that you’d like to work in, check out our open roles our careers page..