Land Technologies
< all posts

Our Engineering Principles

Posted by Rob Beal on June 29, 2020 · 4 min read agiledevopssecurity

These are our Engineering Principles, defined in June 2020, to compliment our values (which are currently Creativity, Excellence, Confidence, Collaboration). The principles an important step in writing down exactly how we work and the standards we hold ourselves to, not just for our current team but also for new joiners as we grow and evolve. The principles are heavily influenced by Lean management, DevOps, Agile in general, and numerous authors and companies who are widely known and respected in the tech community. The first 3 principles are our core principles and underpin all others. Screenshot

1. Respect for people

  • We hold precious what it means to be human; to have free-will, to feel, connect, learn, think, reason, and innovate
  • We utilise the human capability to learn and grow, challenging individuals and teams to perform to their best
  • We treat everyone equally regardless of profile
  • We prioritise the safety, health, and well-being of each other over everything else

2. Make tomorrow better than today

  • We place the improvement of daily work above daily work itself
  • We regularly retrospect as part of continuous improvement
  • We never fail to fail. We fail fast to learn fast, in order to find success
  • We seek and give regular feedback/feedforward always looking to shorten feedback loops
  • We go beyond treating symptoms and focus on correcting the root cause of problems

3. The customer comes first

  • Our highest priority (whether directly or indirectly) is to satisfy the customer through early, continuous delivery of value through our products and services
  • We always seek to empathise with and better understand the industry, our customers and our users. We recognise this leads to; solving the right problems; better solutions; and predicting future needs

4. No place for blame

  • We have a culture of accountability. We remove blame.
  • We believe that people are doing the best they can with the information they have
  • We see human error as a side effect of a vulnerable system. We focus on the system, not the person
  • We recognise that we can only improve by constantly seeking systematic vulnerabilities. And that this is best done through those that have made mistakes

5. Keep it simple

  • We believe that simple solutions create more correct, reliable, maintainable, understandable, and testable systems
  • We maximise the work not done
  • We avoid complexity wherever possible and recognise good design is as little as possible (Occam’s razor)
  • We are guided by Clean Code, YAGNI, SOLID and Functional Programming principles in our solutions
  • We use RFC’s to validate every significant change and improve our decisions

6. Ship fast and iterate

  • We deliver incremental value to our customers early, often, and continuously by following DevOps practices
  • We build high-confidence, fast-feedback CI/CD pipelines, with automated tests and proactive monitors so that we can quickly and safely ship every change we make
  • We minimise work-in-progress to maximise flow of work
  • We avoid “big bang” solutions. We ship small increments to reduce risk and allow us to quickly adapt to change

7. You build it, you run it

  • We own and are accountable for all we build, from design to delivery to operation
  • We build resilient, high quality systems. We ensure our systems align with our non-functional requirements and have appropriate tests, metrics, logs, monitors, alerts, runbooks and dashboards giving us the visibility, data and tooling we need to safely operate our systems
  • Our systems fail fast and fail loud
  • We make bold bets in upcoming tech, balancing tech autonomy with tech standardisation
  • We use our tech radar to align on what we are considering, trialing and adopting

8. Secure by design

  • We apply the Shift Left principle by baking in security early in the process, using tooling such as vulnerability scans and static analysis
  • We apply the Principle of Least Privilege to our systems and data
  • We follow and regularly review the OWASP Top 10 Application Security Risks
  • We ensure our systems and data are resilient, regularly backed up and easily restored
  • We apply defense in depth to our systems, using multiple security controls where possible

9. Think directional

  • We think big but start small as any idea has to start somewhere
  • We avoid binary thinking (good/bad, right/wrong, finished/unfinished)
  • We make decisions that navigate us in the right direction, a step closer each time, using discovery, prototyping and experimentation to guide us
  • We are data-driven, using data to inform our decisions and direction
  • We always have a clear vision, strategy and definition of success to guide us in all we do

10. Everything as code

  • We make all changes via code, so that our systems are declarative, reproducible and can be deployed and rolled back easily
  • We use GitHub as a familiar single source of truth for our systems, providing an approval process and audit trail of all changes
  • We peer review all changes using pair programming, mobbing, pull requests and code reviews to increase code quality and reduce risk

agiledevopssecurity
Land Technologies

We are the engineers behind LandInsight and LandEnhance. We’re helping property professionals build more houses, one line of code at a time. We're based in London, and yes, we're hiring!

© 2021, Built with Gatsby
LAND TECHNOLOGIES LTD, m: WeWork c/o LandTech, 10 Devonshire Square, London, EC2M 4PL t: 0203 086 7855
© 2016 Land Technologies Ltd. Registered Company Number 08845300.