Bridging Software Coding and Psychology with Adam Tornhill


Today on TaskQue Speaks, we have Adam Tornhill. He has a background in electrical engineering and with newly-found passion for psychology. He is the founder of Empear and CodeScene, where he designs tools for code analysis. He is the author of the books “Your Code as a Crime Scene” and “Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis.”

Adam is keen on studying new technologies and programming languages. He is the founder of CodeScene, which is a quality visualization tool for code with predictive analytics. He has been speaking at various conferences, including QCon London 2017, O’Reilly Software Architecture Conference2019 and GOTO Chicago 2020.

We are glad to have Adam with us. Let’s get on with the interview.

TASKQUE: First of all, tell us about your career journey. Where did it all begin?

ADAM: I’ve been working in the IT industry since 1997 in various technical roles. Initially, I worked for some large product companies in domains like telecom, the railway industry, and modeling & simulation.

I then transitioned into a consultancy role, focusing on software architecture and tech lead roles. At the same time, I started to study psychology at the university. This combination gave me plenty of opportunities to reflect on how the lessons from psychology apply in a software development context.

I mean, software development is primarily about people, not machines. So how can we coordinate more effectively, how can we adapt the way we develop code to how our brain prefers it?

That inter-disciplinary experience resulted in a set of techniques for making sense of large-scale codebases and projects, which in turn made me write Your Code as a Crime Scene to share those ideas. A natural next step was to launch my own product company based on the ideas from that book. CodeScene was born!

TASKQUE: Tell us about CodeScene, how does it help in software analysis?

ADAM: CodeScene is a quality visualization tool for software. The core idea in CodeScene is to go beyond code by adding additional data sources; sure, source code analysis is important, but it’s even more important to be able to prioritize all findings based on actual business impact.
CodeScene today is used to identify and prioritize technical debt, manage organizational aspects like on- and off-boarding, and connect the recommendations to business outcomes like shorter time-to-market or more predictable delivery flow. I have a high-level introduction to CodeScene here:

TASKQUE: Everyone looks up to someone in their formative years. Who are your inspirations in the area?

ADAM: I’m a big fan of Fred Brooks’s and the work he has been doing. I’ve also taken lots of inspiration from Michael Feathers and his work on legacy code and overall philosophy around code.

I’ve been fortunate to work closely with Dan North, Aslam Khan, and Peter Caron. The way they are prepared to support and mentor is a big inspiration to me, and something I look to model myself. I’m very grateful for everything I’ve learned from them.

That said, most of my inspiration comes from outside the software field. I take lots of inspiration from domains that face similar open-ended, complex questions as we do, e.g., forensic psychology, complexity theory, and constraint management.

TASKQUE: Coronavirus outbreak has changed working practices in all over the world. How do you manage your work? Are you using any tools?

ADAM: At CodeScene, we were already a partly distributed team, so we didn’t have any impact on our productivity.

We do need tooling for effective remote work. We chat a lot – great to have a searchable and written documentation of our conversations – video confs, collaboration boards, and of course, CodeScene itself to coordinate the evolving software and to enable short feedback loops.

TASKQUE: You have been engaging in conferences and events. Shed some light on the advantages of being active in the community and attending conferences.

ADAM: To me, presenting at a conference is a great way to truly master a topic. There is this fascinating shift in perspective once you take what you already know and try to explain it to someone else. It leads to a deeper understanding. Speaking at a conference is a great learning vehicle.

I also like that I get to meet people with very diverse experiences and have some great conversations.

TASKQUE: What resources/tutorials/blogs/ebooks would you recommend?

ADAM: I do read a lot – 3-4 books a week – but I don’t read as many software books these days as I used to. I simply find more inspiration in other domains.

That said, some books that truly transformed my perspective on software and that I highly recommend are:

  • Management:
    • “The Mythical Man-Month” by Fred Brooks
    • “The Goal: A Process of Ongoing Improvement” by Eliyahu M. Goldratt
    • Accelerate: The Science of Lean Software and DevOps” by Nicole Forsgren Ph.D., Jez Humble, Gene Kim.
  • Technical:
    • “Structure and Interpretation of Computer Programs” by Harold Abelson, Gerald Jay Sussman
    • “Smalltalk Best Practice Patterns” by Kent Beck

TASKQUE: What were the top three growth metrics which you used to measure initially and did any of it change after achieving tremendous growth?

ADAM: CodeScene is an entirely bootstrapped product company, so we had to evolve this over time. The growth metrics I’ve found most useful are:

  • Number of inbound leads,
  • Conversion rate, and
  • Customer churn rate.

In particular, if you have increasing in-bound leads combined with a low customer churn rate, things are generally good; it means that people are getting value out of your product, continue to see that value, and tell others about it.

TASKQUE: What challenges you faced in developing your two products and how did you overcome it?

ADAM: Bootstrapping the company was challenging. Basically, we did services on top of the evolving CodeScene tool and then gradually transitioned to sell subscriptions rather than services.

The challenge is to balance short-term incomes – from services – with the long-term goal of driving the product forward. Ultimately, it turned out to be successful in that it made us the primary users of the tool ourselves, which in turn helped us achieve a good product-market fit. I don’t think there’s any secret recipe here, just dedication, discipline, and never losing track of the real goal.

TASKQUE: TaskQue is a cloud-based productivity management tool for team collaboration, communication and task management. What role do you see these applications playing in helping teams be more successful?

ADAM: Productivity tools like TaskQue are important and are gaining in importance as software projects are more distributed in their nature now than they were earlier in my career. Also, integrating with existing tooling helps an organization adopting it.