Ambrose Fox: Our Philosophy
At Ambrose Fox, we aim to always be improving. That's why we've come up with Our Philosophy - a set of core values and principles that are at the heart of everything we do.
We are a product
Like the software we write for our clients, we are a product. In fact, we are our best product. We are dedicated to continuously improving how we work, think, and communicate. When Ambrose Fox is functioning at its best, we can deliver the best service to our customers.
Calm not chaotic
Creating software is complicated. To do our best work we need to embrace calm and avoid chaos. Our systems and processes are optimised to allow us each to do the best work that we can with all of the necessary tools and information easily to hand, in a relaxed environment. We have deadlines, but we try to limit how many tasks each of us is juggling at any one moment. We focus on one task at a time and give it the time and attention it deserves.
Do no marketing
We don’t have any marketing budgets or programmes. We don’t advertise. We don’t solicit leads. But we ARE marketing all of the time. Every time we answer a customer query. Every time we design a new feature for a customer. Every time we engage with customers, we are marketing. Our customers are our best salespeople. For ten years, all of our business has come via recommendation and the next ten years won’t be any different.
Simplicity over complexity
When designing, building, and optimising software, our decision-making framework is governed by the green square. It represents the ideal software that the client can manage themselves (DIY) and is SIMPLE to use. Read more about Green Square here.
Crayons not fine-liners
We love briefing our next development tasks. We used to explicitly define how we want each task to be developed but we were wasting our time and short-changing our developers. Developers love finding solutions to problems. They love experimenting with new techniques and technologies. Explicitly briefing each development task was leaving no room for them to innovate and explore. We now brief what the client wants using broad strokes, leaving our developers to add the detail and magic.
Don’t be productive
Productivity is measured as how much work can be done in a given time. We’d rather our developers embraced effectiveness. Being effective means you give the work the time that it needs to be done properly, however much it may be. Rushed or ill-conceived software is going to come back to bite us later, consuming more time in the long run.
Don’t come to work
Developing software requires concentration, inspiration, and time, but we don’t need to be together all of the time to get the work done. We value collaboration and we communicate every day, but we each know what we need to do. We have the flexibility to work from home, the office, or wherever we feel we can do our best work.
My time not real-time
Attention is a precious resource. To do our best work, we need to spend time exploring, developing, and optimising what we do. If we are constantly interrupted or distracted then we are not being truly effective. Technology enables real-time messaging but constantly monitoring and responding to messages fragments our working time. When our customers contact us we respond in a timely and supportive manner, but not at the expense of our effectiveness or focus.
We’d rather you were asleep
As a developer it’s tempting to put in all the hours you can to force out more work but, whilst that may be okay for the occasional sprint, in reality, you are just going to reduce your effectiveness in the long run. We’d rather our employee's rest and recharge. Working eight hours a day, five days a week is enough. If we are finding we need to work more than that, then we either adjust our plans or hire more staff.
Sometimes projects require intense planning or attention. Some critical development tasks, whilst straightforward, could negatively impact the whole system if not worked through methodically and accurately. When tackling these projects or tasks we advise our team to slow down. Decisions taken slowly and considerately will provide a firm foundation on which to build something straight and true. Measure twice, cut once.
We have no best practices
Best practices imply that there’s a perfect way to do something and if you follow the best practice, you’re all set. How can we declare anything best practice? How do we know we've stopped just short of something even better? Surely this suppresses innovation and stifles creativity? We prefer to keep an open mind and adapt our practices as we see fit.
Write up and write down
We are always writing specifications, briefs, code, feedback and documentation. Before we start a project we write up the specification. During development, we comment and improve upon the specification. Post-development we write down how the new system or feature works both for users and for ourselves. We are writers documenting the journey through our work so we can share it with our co-workers and customers.
The code you write today will be as incomprehensible to you in six months as it will be to a new developer. Right now your new code makes perfect sense, but think about the next time a developer needs to work on the code. Structure, write and document your code on the basis that you will forget everything. The next time you or a new developer works on the code, it’ll be like starting from scratch.
A little bit better
Leave the code slightly better structured or commented than when you found it and everyone benefits in the long run.
It’s all a work in progress
Developing software for our customers and developing Ambrose Fox is a process of continuous improvement. Our customers’ needs evolve over time, the technological landscape is constantly shifting and our understanding of it all is continuously improving. Everyone is learning and adapting and it’s that process that inspires us to do what we do.
ECVS Recertification in RED
ECVS can now use RED to recertify college memberships.
3M PDF Translator
We built the PDF Translator for 3M to help manage multi-language campaigns.
Docker: Cleaning Up Our Environments
Docker is a new technology that we have implemented to solve one of our biggest challenges.