Interview with Carl Erickson of Atomic Object
At the beginning of starting my software development consultancy I was on the lookout for like-minded companies that shared my values and goals - and one of the first I discovered was Atomic Object.
I loved how they positioned themselves, and how they didn't beat around the bush about what they do: build complex software that can create a lot of value, technical excellence, generally 3-18+ month long projects (costing between $50k to 5 million), and even told potential clients right on their landing page that "Custom software is a big investment". It was so refreshing compared to a cookie-cutter sales pitch, and I felt I had discovered a company that saw client education as an integral part of the relationship. I then became addicted to reading their blog Great not Big which aims to "help people build a successful small company where people love to work".
So without further ado I'm excited to share my interview with Carl Erickson, founder and executive chairman of Atomic Object.
Can you introduce yourself & Atomic Object to the Dev to Agency readers?
I’m Carl Erickson, founder and executive chairman of Atomic Object. I live in Grand Rapids, Michigan. My wife of 37 years and I have two kids who have launched successfully into the world, and two Siberian huskies still at home. I studied electrical and computer engineering in college. Ten years of higher education and not a single business, finance, marketing, or even economics course.
After graduate school I taught computer science at Grand Valley State University for 10 years. While I loved teaching, and still do, by the year 2000 I needed a change in my work and a new challenge. I jumped at the chance to join a dot-com era software startup that a former student was a co-founder in. But I jumped carefully, negotiating a leave-of-absence with my dean. My job with the startup was to recruit and run the engineering team. I knew enough to know that the way we taught software engineering in the academy wasn’t terribly effective for the sorts of problems people solved with software in business. But I’d also never done that kind of work before, so I was motivated to try something new. The lightweight methodologies we call “agile” nowadays were just beginning to be discussed. I read Kent Beck’s first book on Extreme Programming and had an epiphany. By March of 2001 the dean wanted to know whether I was coming back to the university in the fall. I was learning so much with the small team we had assembled — two former students of mine and three interns from the college — that I told him I wasn’t. Walking away from my tenured job as an associate professor for a startup doesn’t seem rational in hindsight, but my wife and I had no debt but a mortgage, significant retirement savings, and her very good job.
How did Atomic Object start?
Four months after I resigned from the university the startup failed to close a round of financing and shut down. What seems even crazier in hindsight is that I never even considered talking with the dean about undoing my decision and going back to the university. I loved what I was doing, loved writing code for real, loved the people I was doing it with, loved being part of the neighbourhood business community — I just needed a job of some sort. I was 39 years old.
I took what we had — five smart people, an exciting and effective new approach to development, the remainder of a lease, and used office furniture — and created something new. We did a 180 degree pivot from the startup, launched a software development consultancy, and started looking for people with problems we could solve. My co-founder gave me confidence that we could solve pretty much any problem in software I could convince someone to trust us with.
Two months after the sudden collapse of the startup, 9/11 happened. Two months after that, my wife lost her job of 17 years when the commercial furniture business went through a dot-com bubble-bursting depression. When I think about it now, I credit confidence in myself and the team, the stability of our personal financial situation, and a belief that there were plenty of people who needed help with software, for both the decision to create Atomic and the perseverance required to survive the first few years.
Can you remember how Atomic Object found its first clients, and what was your strategy to find them?
I had taught in the graduate program for 10 years. Most of the students in that program were working full-time and seeking to establish a new career in software development. In early 2001 I had negotiated a deal to lease our conference room to Burke Porter Machinery for use by a team working on a strategic software project. They wanted to be offsite. I had taught object oriented design and programming to several of their staff in the graduate program. I’m guessing they probably also wanted to learn more about our Extreme Programming practices. Cohabitating with their team further built the relationship between us. In October I approached their director of engineering about having Atomic build the client side of their next generation client/server end-of-line roll tester product. Incredibly, he accepted my proposal and we had our first customer.
I think the lesson of our first customer is a very important one. When you’re starting a consultancy as a developer, your first customer need only be someone who you convince to trust you, personally. As a developer, you have all the skills you need to deliver on your promises. Solving people’s problems well has a way of making them ask you to solve more problems. Pretty soon you have more problems to solve than one person can handle, so you ask a friend to help out. A company is launched.
Our first project lasted about a year. We continued working with that client for at least another five years, but we also found new clients in the critical first 12 months. One was an improv theater company in the suite next door. They needed a website, so we built a CMS and used it for a dozen or so clients before selling it. Another early customer was an e-commerce company that sold die cast model cars. They found us because I registered Atomic with a Sun Microsystems Java Developers directory. The second major customer we had, after Burke Porter, was a color measurement company in town that I met by networking through the local IEEE group. They were also experimenting with Extreme Programming. To this day I have never been more persistent in making a sale. I called and emailed way more times than I felt comfortable. They turned into another 5+ year client and the source of a lot of good work for us.
What challenges did Atomic Object face in the early years, and how did you deal with them?
None of us knew anything about business. 10 years of higher education and 10 years of teaching at university had given me an unconscious but strong belief that there’s a correct way to do things. Having no formal education in business, I had some worries that I wasn’t doing the business things the right way. This seemed like a handicap at the time, but I really enjoyed learning, so I just figured out what I needed to know. I used my confidence and semi-iconoclastic personality to do things that seemed right and effective to me regardless of whether it was the standard approach to business. On the policy front, I wanted to create a company where I’d like to work and where we could help people with our skills. On the business front, I applied my analytical engineering mindset and our knowledge of agile practices to modeling the business and establishing our offering to clients.
Nine months into Atomic’s existence I was doing all the things: coding, selling, networking, marketing, managing, accounting, paying bills, etc. I didn’t do any of them at the expert level, but I could do everything well enough to get by. Being a smart, curious, generalist is another aspect of my personality that proved very handy to starting Atomic. Those traits remain common ones for most Atoms and have served us very well for 20 years. But everyone has a limit, especially everyone with a house, two dogs, two little kids at home, and hobbies. I asked my wife in March of 2002 if she’d help me pay some bills. She wasn’t working at the time as she tried to figure out her next career move. That simple request kicked off a stream of work that’s grown to five people as she pioneered various roles in the company and hired people into those roles. Having a person I totally trusted handle the accounting, facilities, invoicing, and benefits of Atomic was a huge benefit to all of us. Mary’s still working full-time for the company.
Has the goal or vision of Atomic Object changed at all over the years?
What we do hasn’t changed much. We offer high-quality, custom, software product development for organizations in most industries who need software to grow revenue, expand market share, or run their business. How we do it has changed enormously over the years. And we’ve dropped some things we did opportunistically and in low volume in the early years like training and a CMS/hosting service. Our purpose has remained constant, though the language we use to describe it has ranged all over the map.
Atomic exists to be a source and a force. A source of fulfillment for Atoms, and a force for good for our clients and in our communities. I didn’t use that language from the start, but it nicely captures my motivation for starting the company and why I find Atomic to be deserving of hitting our long-term goal of being a 100 year old company.
What do you think sets Atomic Object apart from other agencies?
Michael Porter describes strategic positioning as the combination of your offering, your target market, your business activities which are distinct or which are done in a distinctive fashion, and the level of integration between those activities.
Some of our activities which are distinctive include:
- Operational excellence.(This is more of a theme of interconnected activities.) Everything we do is expected to be done well, with data and analysis supporting decisions, disciplined flexibility, and details that are thought through.
- Sales and scheduling. Sales are done by managing partners who are former makers, in a consultative fashion, relying on our marketing-driven strategy to bring leads in where they can apply our “how can I help?” attitude to sales. Scheduling and composition of teams is done by the same people doing sales, and those managing partners are responsible for the P&L of their office.
- Employee ownership. 45 Atoms of the current 80 hold shares through our Atomic Plan. Non-founder shareholders own 66% of the company.
- Hourly pay. Everyone in the company tracks their time closely and is paid for the hours they work. The data we derive from this is valuable for understanding where we spend time. Mistakes on projects can’t be made up for by extra unpaid work by salaried makers.
- 1/n profit sharing. Ten percent of our net profits every quarter are divided between all Atoms in equal shares.
- Generalist makers. Our designers and developers focus on honing their product development skills, not one particular language, tool, domain, or industry.
What practices does Atomic Object follow to ensure technical quality?
We started from the very beginning with XP writing automated tests at the unit, then integration, then system level. Our software testing followed the typical path of simple automation, then TDD, then continuous integration. We extended this philosophy of validating our work with usability testing of the product and user research for the feature set once we brought design into our agile process.
What are some key things you would tell a developer who is thinking of starting their own software agency?
- Take advantage of your development skills and grow your agency from doing solo contract work. This eliminates the need for much startup capital. Our companies can be bootstrapped, and that’s a wonderful thing.
- Build the company you want to work for, with the people you want to work with.
- Focus on being the best you can possibly be and not growth. Think about growth as a natural consequence of being good and a hard problem to solve.
- Inculcate a relentless dissatisfaction with the status quo into your culture.