CTO Insights #1 with Christian Longberg— “Processes stop people from being creative”
Christian is a cofounder of Adtraction, a Stockholm-based company that enables website owners to earn from advertising. Christian is passionate about development and prefers to be a hands-on leader.
In the interview, Christian shares his vision of development processes and methodologies, and describes the role of creativity in success of Adtraction. We discuss what leadership in a software company means, and whether CTOs should move from hands-on work to a more management-oriented role. Christian also shares his insights into creating ideas and solving conflicts at Adtraction.
Q: Could you please describe your background as a senior technical executive?
Christian: I was born in 1972 in Sweden, studied aerospace engineering at the Royal Institute of Technology in Stockholm starting in 1994, and graduated in 1999 with a master’s of science in aerospace engineering. I then started working as a Java systems developer in 1999, and became a developer team leader in 2000. In 2001 I started my own software company, but left it in 2004 to start consulting as a systems developer, and became consulting system architect in 2005. In 2007, I started working at Adtraction and, in parallel, continued to work as a consultant. But within a year I started to work full time at Adtraction as CTO.
Q: Could you please describe in more detail how you became CTO of Adtraction?
Christian: I was a consultant, assistant architect for a big consultancy company here in Stockholm. One of my best friends was asked by the other founders of Adtraction if he wanted to try something new and jump on this new idea that they had, but unfortunately he couldn’t do it, so instead they asked me. So me, Simon Gustafson, and Markus Bjernvall are the three founders. Simon and Markus are from the financial sector, working in finance. They had this idea about affiliate networking and they asked me, “Do you want to be part of this? Your role will be to build the system that we need to start Adtraction.” I thought it looked interesting so I said yes. The thing is that we started with nothing and we didn’t have any capital or any external finances.
I worked for one year at Adtraction without salary. When we to get the base of the system a friend of mine, Magnus Hagström, joined us. He was also with us from the beginning. We built the base functionality in Adtraction during that year, but Magnus is not the type that wants to lead people. So I stepped in; I’d been a team leader before as a system architect, and I’d been leading developers for many years so it was natural for me.
That’s how I became CTO of Adtraction. I’ve now been in that role for almost 10 years. We have grown from three people to 40 people, and from two developers to a development team of eight people. It’s still quite small—it’s a small development team—but the system is huge. We have a complex and big software system, so we’re doing many things with small means, that’s something we’re proud of.
That’s the base story of how Adtraction started and why I am here and why I’m doing what I’m doing. It was a series of fortunate events, you might say.
Q: How would you define leadership? Why is it important for a technology company? Should every team member have leadership skills, or does that only apply to managers?
Christian: Leadership is about providing examples and sharing visions and ideas. You have to engage and inspire people to be as committed and enthusiastic as you are about what the company is doing. Leadership is not about telling people what to do or how to do it. It’s about setting goals and providing means to reach them.
Q: How would you describe the success of Adtraction? Has it hinged on a sequence of events, some luck, business or technical expertise, or a team of motivated people?
Christian: One of the key factors for us, for our success, has been the fact that we are very different—me and Simon and Markus and Magnus are very different people. We are each other’s opposites in many respects and we have conflicts and discussions. I think that’s a good thing because if we were alike we would not test things, ideas before we do them. Since we are different, each of us has an opponent at every step of the way and has to make an argument for what he wants to do. I think that’s a good thing.
Another thing is that we have tried out many ideas. If we have an idea and we come to an agreement, often after lengthy discussion, we are very quick to test it. We take risks and test the idea—we do that a lot. We’ve had a lot of what we thought were great ideas and then tested them; nine out of ten times they faded, they weren’t good ideas. One out of ten times it was a good idea. That’s been a good rule.
“You have to try out many things to find one good thing.”
If you like no matter what you do, no matter how much you plan, no matter how much of the thing or how many people you have, or whatever, you need ten things to find one good thing. And you do that, you cannot avoid mistakes, you just have to keep trying.
With too many processes, with too much management, with overly aggressive leadership, no one will dare to take risks, so you have to have a soft leadership style, otherwise, people won’t dare to take risks. That’s something I think is okay—to make mistakes as long as you see them. It’s not okay to make mistakes if you don’t admit to them. You have to see the mistakes and know that there are many mistakes and you learn something from them.
Q: You mentioned that you, Simon, Markus, and Magnus are different people and that you conduct many discussions. How do you resolve conflicts, for example, if you have different opinions on a topic, and how do you move forward?
Christian: I think it’s important to share as much information as possible with everyone in the company. Sometimes though matters should be discussed in a smaller management context. Otherwise it might seem that we don’t know what we are doing and people might feel insecure. Once you have made a decision within the right forum it’s very important to execute quickly and follow up. It might be to terminate a project, change a strategy, remove a functionality or similar.
When we come to a decision, we do it very aggressively, we never wait. I think that’s important: when you take risks and make mistakes, you have to repair them as fast as you can. Repairing them often means killing the original idea. If that entails a concrete office as it was a couple of months ago, that wasn’t performing, for example, we close it. And so forth. You have to be very determined once you make a decision, I think. Very quick about it.
“If something seems bad, it probably is bad. So you get rid of it. It’s very easy to when you have invested a lot of time or resources or whatever.”
We just continue to conduct research and invest money and focus. We try to do that. We have done it a lot of times. Nine times out of ten we have succeeded.
If we employ five people, we try to find out as much as we can about them and do our research. When we hire them, we trust them, give them a lot of responsibility and freedom. If they cannot handle that, we don’t retain them.
When we employ new employees we want them to feel we trust them. We hire good, intelligent, competent and creative people. Then you also have to them to do good. I think that is what makes them thrive.
Another way to handle that would be the opposite; to do your research on whatever and hire them and have a lot of rules. “You have to be here at eight, leave at five. You cannot work from home, you have this process and that process. You can have the monkey, you don’t need to have skilled people, you can have whomever you can get to work.” But that doesn’t promote creativity or success or anything, so we like the opposite approach.
We trust people, but whenever they don’t perform, they leave the company, because they don’t fit with Adtraction. That’s not nice to keep someone that doesn’t fit. It’s not nice to us and not nice to him or her.
When we hire people, we don’t offer a career at Adtraction. We don’t have any middle management. You don’t start as a developer and become a team leader and then project manager and then CTO or whatever. You are hired at Adtraction as a developer and you stay a developer. That doesn’t mean that you’re not worth anything. The developers are the most valuable thing that we have at Adtraction. You don’t have to have an evolving career to be valuable. That’s an important point.
You can make more money, of course. We don’t have the managers make more money. We have the developers make more money than the managers, because they are more valuable. At other companies the only way to be more successful or to get a bigger salary is to follow a career that makes you into something that you are not. Assistant developers are seldom project managers, but that’s the only way to make more money and that’s why they become project managers. And I think that is wrong.
Q: During the early stages, startups are building their solutions and don’t have any clients yet. At later stages, startups and companies already have clients and users and need to support the growth of the company. In your experience, how do the major technological challenges differ for early- versus late-stage startups and established companies?
Christian: One of the big challenges we faced was whether we should build a system architecture that would last throughout our long-term goals, or an architecture to handle the business we were actually doing in the beginning in terms of flexibility and scalability. We decided to build a flexible and scalable architecture that far surpassed our needs in the beginning but was well suited to adapt to the demands we faced during our first 10 years. I believe that was a good decision, and the investment has paid off several times over.
Q: How do we set up efficient development processes? How can we ensure we select the correct methodology for a project?
Christian: I don’t care much for fancy development processes. In Adtraction we have taken bits and parts from different processes and made something that works for us. We try to be agile and flexible, adapt to the current business and system status. We trust a lot in individual experience, skills, and responsibility, and less in control and processes. We use tools to support the development, such as Pivotal tracker, GitLab, and Slack. This has worked so far and I hope we can be as flexible in the future as the development team grows.
I’ve worked in big companies and in smaller companies in many different areas—manufacturing and development. They all have the same problems. They think that when you have a company and a development department, you need processes. Processes mean something because you have to handle many types of developers—skilled developers, ordinary developers, smart developers—and processes can help you with that.
The drawback with processes, I think, is a lack of creativity. If you break things down into smaller parts, then you don’t need to use processes in the same way because they are self-managed. That’s why I don’t like processes that much because I think they stop people from being creative.
Both you and I have been seeing system development over a number of years. We have seen things come and go in different ways, but there was always one solution for everything. In the middle of the nineties, the monolith was one solution for everything. Then big applications were on servers and became structured, and this was the solution for everything. Now we’re back to micro-services, and you have such solutions for everything. This all makes you kind of skeptical of processes. It’s all about problem-solving using the tools that you have at hand.
“No process or architecture can solve all your problems; you still have to do the work. If you have smart people and skilled people and experienced people, it doesn’t matter if you have an innovating structure or microservices or service oriented or whatever else.”
Project managers love processes because that’s the only thing they do and that’s the only thing they can do. The only reason they exist is because there are processes, and without processes you don’t need project managers to control them. Of course, they love processes. I tried to avoid project managers as long as possible. Sometimes if you have projects where you’ve got billions of aspects and you need someone to see the big picture then you need project managers; but in most cases, you don’t.
At Adtraction, we don’t have management in that way. We only have development. I have the title of CTO because the company is expected to have a CTO. I am a developer; half of my time is spent in development, and I build the system. I know it very well and I work in it every day. I think I need to do that to be able to control things and be trustworthy when I say things because I know what I’m talking about. To be just a manager—Adtraction is too small for that.
If you are a big company with hundreds of employees, of course, you need a technical or information technology manager, to provide an overview or another perspective. For our size, I think it’s very important to be very hands-on. It’s easy otherwise to rely on your previous experiences, but the world changes—new technologies, new tools, new languages, new whatever.
The risk is, if you’re a dominant manager, you will stop the company or the people that you need from exercising their creativity and the things that they can do; instead, they will be prompting to do the things you can do. I would feel very uncomfortable if I wasn’t hands-on with what I was talking about. I wouldn’t feel good at all. And I love coding. I’m a system developer. System developers code. There aren’t any system developers that don’t code.
Q: When a new company is started, the CTO role is more like a lead developer, someone who basically develops a solution and leads those developments; then the development team can be pretty small. But as soon as the company grows and you hire more developers you need to manage them, so basically the CTO moves from hands-on work with source code to a more management-oriented role. Do you think that when a company becomes larger it should change the CTO, or should the CTO grow as a manager together with the company?
Christian: I think it’s difficult when you’re forced into a role that you haven’t chosen. If you’ve started doing what you do because you liked it, and then you’re out of that because you don’t have the time to do it, you get hit with something else you aren’t chosen to do, then you probably won’t be as good at it. So I think the best solution is to get the original CTO another role in the company, maybe as a developer or as a product owner or whatever and continue in the same way and get a dedicated manager as the CTO.
I’ve seen that in a lot of companies because a lot of times CTOs in software companies are one of the founders. It’s quite natural because in software companies, it’s a core competence. In too many cases because you are a founder, you’re probably a shareholder and everything. It’s very difficult to make that person do anything. He’s got all the power and all the mandates to define and decide his own goal and his own work. That’s why it’s pretty easy for me to stay as the CTO even though I don’t fit as a CTO anymore.
It’s better to come to the conclusion by yourself that it’s time to change the CTO or to have someone else in the company to tell you that it’s time to take the next step. For myself, I feel that in a couple of years, if we continue to grow as we are now, then I will be fortunate enough to be able to choose to do what I like. There are not many people that get to do that. I like development and I continue to do that, and it will be part of Adtraction for a long time. I would see that as a perk as I’m fortunate, instead of seeing it as a step-down.
Q: What do you think about the different approaches for building software architecture? When do you think we should use monolithic or services-oriented architecture or micro-services?
Christian: I believe in heavy refactoring. If the world changes, you change the system. Remove, rename, rebuild. It’s easier to refactor a system that is split into logical parts that are easy to understand, maintain, test, and deploy. I’m a big opponent of test-driven development (TDD). I think that is one of the biggest failures in systems development. You write the code twice and TDD gives false security since the tests usually don’t catch the real logic pitfalls. Instead, use the unit test for simple tests (formatting, conversions, CRUD, etc.) and integration tests to catch the big fish.
Q: What kind of team do you prefer, functional or cross-functional? Why? What roles should an efficient software development team and department have?
Christian: I prefer cross-functional teams, definitely. If you narrow your perspective you will never be able to take initiative and contribute in a creative way. You will be limited to do what other people tell you to do (you’ll be a coding monkey).
Q: In the classic book The Mythical Man-Month, it is stated that a software system architecture always corresponds to a team structure. Do you think that’s true? How can this term be applied to today’s service-oriented architectures (SOA) and distributed teams?
Christian: I don’t think it is true. That would oppose cross-functional teams because most architectures are layered. Microservice architecture or SOA doesn’t matter.
Q: What are the major reasons why software projects fail? In your experience, what are primary things that we should do to mitigate the risks of project failure?
Christian: I think software projects should be allowed to fail, but not because there is a lack of competence or planning. But you should feel that you can take risks. Our experience is that one out of ten ideas actually works. That means that we fail nine times out of ten. The important thing is to see the failure as early as possible and then cut off the bad part and be very determined about it, and don’t cry over the time you spent on it.
Of course, you try to minimize the damage, minimize the risks, and you shouldn’t do those stupid things on purpose. I think that most people want to do well. Most people want to be good and most people want to be appreciated and most people feel guilty when they do a bad job. If you have these things within a person, things tend to stop before they fail.
I think when you have strong management that comes up with ideas and forces the rest of the organization to follow them, that’s when you tend to do stupid things because no one is there to protest. No one is there to question things and no one cares if you do stupid things, they are just there to work and do the things other people tell them. That’s when you make the big mistakes.
I saw that a lot of times in big companies when I was consulting. Especially with SAP projects and stuff like that. Someone has decided that this is what we should have. Everyone thinks it’s stupid, but no one says anything, they just do it. That’s when it costs billions. And the other thing that tends to cost a lot of money is prestige. If you have prestige in something and don’t admit that you’re wrong, then you will do anything to cover your mistakes with your prestige at whatever cost.
“If you take away top management and prestige, and you have good people, you minimize the risk, and you help people not to fail, then your mistake won’t be that big. People will enlighten you and tell you if it’s a mistake long before it becomes dangerous to the company.”
It’s worked for us, so far. Of course, it’s cost a lot of money to spend time on things that we cannot make any use of, but we learned things in the process so it’s not worthless. At least we learned that this is not a good thing. It’s like Edison so wisely put it: “I have not failed. I’ve just found 10,000 ways that won’t work.” It’s the same thing here—you learn something from it. I think you have to trust people, that’s the key—when you trust that they will do well if they are free to do it on their own terms. If they cannot handle that, they shouldn’t work at Adtraction and they don’t, they go somewhere else.
Q: What would you recommend people do to learn and develop their skills as CTO? Are there any specific books, online courses, conferences, or anything else to read, watch, or visit?
Christian: Try to be ahead of things. Whatever it takes. Internet, YouTube, Coursera, books, mentors, etc. Try to spend as much time as possible looking at things in your domain. It feels good to at least know something about what young and skilled developers are talking about around the coffee machine.
For me, at least, that comes naturally because I’m interested in what I’m doing. I don’t have to spend any energy trying to find out what I should do. I just do what I like to do. This year I have spent a lot of time learning, machine learning and deep learning on things, not because someone told me to, but because I thought it would be good for me to do the work. I do it because I like to do it. When you do that you automatically spend hours learning things; you take online courses and you look at presentations and you go to conferences or whatever.
“The most effective way to learn new things is to follow your interests, because every time you step away from that, everything tends to be heavier, take a lot more energy.”
My wife tells me to keep the house tidy; it takes a lot of energy because I hate it. If someone tells me to make a product specification that I don’t think is necessary, it takes me forever and I have to drink beer or something to be able to do it because I hate it. When you do something you’re not interested in and you don’t like, you will never be good at it. You can produce a good result, but it takes too much energy.
Most of the time, I trust that my judgment, my experience, will leads me the right way. I look at things that I am interested in. Most of the time that also benefits Adtraction because I like Adtraction and that’s what I am interested in. I don’t think you should pretend to do things or like things or try to follow others—follow your interests. I think that’s a good rule for everyone.
Sometimes you’re not fortunate enough to be able to do what you like for some reason, for example, you have to make money. Then you tell yourself, “I will do that. I hope that I will be interested in these kinds of things in the future.”
Also, the big fear for developers is getting too old so that you cannot keep up to date. But I haven’t had any problem with that yet. After all, I’m only 45.
Of course, there are a lot of things happening out there. But I have 20 years of coding experience, so I don’t have to read three books to know what the thing is about; I read one book where someone with five years’ experience would read three books. I don’t have to spend as much time as less experienced developers do. I think my lack of energy because I’m older, is compensated by experience most of the time. I don’t see that as a problem.
I’m still keeping up most of the time; I’m still ahead of the young developers because of my experience. That might change, but I know a lot of 60-year-olds that are still very much ahead of things. So I don’t think it’s a problem if you have an interest in it. But if you begin to get tired and lose interest, of course, it’s difficult. Then you will fall quickly, I think.
If you take your hands off things and become a full-time manager, of course, you will lose touch and you will not know what people are talking about. It’s a lot of work to keep up, but it doesn’t have to be hard work. It can be nice work, fun work. My work is my hobby.
Interviewed by Vasyl Soloshchuk, CEO and co-owner at INSART, FinTech & Java engineering company. Vasylanalysis of principles that underlie technology business success from startup phase to established and Fortune-listed companies.