Running a Business, Demystified
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 88 | |
Author | ||
License | CC Attribution - ShareAlike 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this | |
Identifiers | 10.5446/37333 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Producer | ||
Production Year | 2018 | |
Production Place | Pittsburgh |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
RailsConf 201827 / 88
9
14
16
19
20
22
23
26
27
28
34
35
36
37
38
39
41
42
46
47
53
57
60
62
63
64
69
72
80
85
87
00:00
Level (video gaming)Presentation of a groupPower (physics)Series (mathematics)Row (database)InformationTwitterSoftware developerPoint (geometry)Right angleQuicksortSpacetimeNP-hardDiagram
01:28
SoftwareSoftware developerProjective planeInternetworkingSoftware developerSoftware testingInformation technology consultingDoubling the cubeComputer animationLecture/Conference
02:13
Client (computing)EstimationSlide ruleSoftware developerSlide ruleComputer animationXMLUML
03:10
Series (mathematics)Enterprise architectureBoss CorporationComputer animation
03:41
Projective planeInformation technology consultingClient (computing)Data conversionMultiplication signSoftware developerProduct (business)SoftwareRepetition
05:13
Enterprise architectureClient (computing)Multiplication signPerpetual motionClient (computing)Java appletEnterprise architectureComputer animation
06:12
Asynchronous Transfer ModeSoftwareChannel capacityInformationClient (computing)Revision controlDatabaseCategory of beingChecklistCASE <Informatik>Discounts and allowancesGroup actionPoint (geometry)CalculationMixed realityRight angleFocus (optics)Proof theoryMultiplication signMereologyConfidence intervalPerturbation theorySoftware testingHypothesisProgrammer (hardware)Process (computing)Channel capacityService (economics)Asynchronous Transfer ModeProduct (business)Hydraulic jumpComputer animation
08:15
Software developerConstraint (mathematics)Bookmark (World Wide Web)Bit rateRight angleSoftware developerStructural loadSeries (mathematics)Computer animation
09:01
Radio-frequency identificationProduct (business)Software developerEndliche ModelltheorieDoubling the cubeSeries (mathematics)Software testingNumberRoundness (object)Computer animation
09:47
Stability theoryStability theoryPoint (geometry)Projective planeClient (computing)State of matterBitMultiplication signComputer animation
10:40
Endliche ModelltheorieClient (computing)Variety (linguistics)Remote procedure callComputer animationXML
11:16
PlanningSpacetimeOffice suiteInternetworkingMultiplication signComputer programmingTerm (mathematics)Computer animation
11:52
Radio-frequency identificationCore dumpData conversionMultiplication signVapor barrierXMLComputer animation
12:33
Level (video gaming)CodeResultantSoftware developerGame controllerCubeVariable (mathematics)ThumbnailProcess (computing)Client (computing)Meeting/Interview
13:32
Point (geometry)Regulator geneControl flowMeeting/InterviewComputer animation
14:26
TelecommunicationProjective planeCommunications systemDifferent (Kate Ryan album)Spoke-hub distribution paradigmRoboticsMultiplication signMessage passingComputer animation
15:07
Group actionInteractive televisionTerm (mathematics)Boss CorporationSpacetimeComputer animation
15:56
Source codePoint (geometry)Source code2 (number)JSONXMLUMLComputer animation
16:46
Computer networkSoftwareMultiplication signNumberTouch typingService (economics)Product (business)Group actionCustomer relationship managementComputer animation
17:44
Online helpSoftware testingSlide ruleMultiplication signRepetitionHypermediaInformation technology consultingPresentation of a groupGoodness of fitSoftwareFigurate numberTouch typingService (economics)Online helpProjective planeClient (computing)Doubling the cube
19:48
Multiplication signPoint (geometry)MomentumClient (computing)Resultant
20:19
Software developerDesign by contractSoftwareSoftware testingSoftware maintenanceProcess (computing)Real numberIndependence (probability theory)Medical imagingComputer animationXMLUML
20:53
Constraint (mathematics)Message passingSoftware testingConstraint (mathematics)Film editingSoftware testingWordPerspective (visual)Software developerActive contour modelInformation technology consultingMessage passingBitComputer animation
21:36
CodeWeb pageFlow separationPopulation densityCodeDoubling the cubeArithmetic meanWeb pageMereologyComputer animation
22:13
Bridging (networking)Online helpTwitterMotif (narrative)Data managementDoubling the cubeInformationProcess (computing)Bridging (networking)Repository (publishing)Branch (computer science)Mobile appAsynchronous Transfer ModeComputer animation
23:19
ConsistencyScaling (geometry)Medical imagingBitSelf-organizationComputer animation
23:55
Radio-frequency identification1 (number)Dependent and independent variablesData structureMathematicsMultiplication signDrop (liquid)Process (computing)Computer animationMeeting/InterviewUML
24:31
Data managementEndliche ModelltheorieMultiplication signMoment (mathematics)Heegaard splittingThermodynamic equilibriumComputer animation
25:14
DisintegrationBus (computing)Decision theoryFunctional (mathematics)Focus (optics)Point (geometry)INTEGRALMereologySelf-organizationSystem administratorTask (computing)
26:34
Web pageLattice (order)Prime idealEstimationSoftware testingTablet computerSoftwareQuicksortDistanceScale (map)Event horizonDisintegrationObject (grammar)Process (computing)Term (mathematics)Physical systemComputer animationXML
27:13
Data managementData managementStatisticsWebsiteStaff (military)Process (computing)Computer animation
28:25
Web pageServer (computing)Process (computing)Ferry CorstenPoint (geometry)Level (video gaming)Direction (geometry)Process (computing)Data managementClient (computing)Multiplication signComputer animation
29:33
Multiplication signProcess (computing)Fraction (mathematics)Data management
30:11
Scale (map)Data managementData managementCASE <Informatik>Computer configurationMoment (mathematics)Physical systemComputer animation
30:51
Source codeFocus (optics)Coma BerenicesError messageBranch (computer science)CodeNormed vector spaceInjektivitätVertex (graph theory)CircleLibrary (computing)Revision controlIntegrated development environmentOpen sourceMultiplication signSoftwareClient (computing)BuildingIntegrated development environmentStrategy gameLibrary (computing)Software frameworkInjektivitätProcess (computing)Cartesian coordinate systemSoftware maintenanceProjective planeComputer animation
32:02
Software testingRadio-frequency identificationTopological vector spaceOpen sourceSoftware testingLibrary (computing)Integrated development environmentType theorySoftware developerDifferent (Kate Ryan album)Process (computing)Task (computing)Stack (abstract data type)Formal languageProjective planeComputer animation
33:04
Software testingSpacetimeGame controllerProcess (computing)
33:44
Control flowRadio-frequency identificationGame controllerMultiplication signProcess (computing)Computer animation
34:23
Process (computing)Decision theoryProcess (computing)Point (geometry)Expected valueLevel of measurementDecision theoryComputer animation
35:08
Software testingSoftware developerClient (computing)Computer animationLecture/Conference
35:47
Dependent and independent variablesSoftware testingArchaeological field surveyComputer configurationComputer animation
36:21
Multiplication signPoint (geometry)Process (computing)Client (computing)Matrix (mathematics)SoftwareComputer animation
37:28
Computer networkCurve fittingIntegrated development environmentFerry CorstenStrategy gameProcess (computing)Metric systemSoftwareLevel (video gaming)Integrated development environmentMereologyProduct (business)Service (economics)Computer animation
38:48
Series (mathematics)Event horizonLattice (order)Line (geometry)Process (computing)Software developerMultiplication signVideo gameLevel (video gaming)Computer animation
39:45
Radio-frequency identificationPeer-to-peerComputer programmingMultiplication signMereologyArithmetic progressionOpen sourceVideo gameTablet computerData conversionProjective planeSoftware testingClient (computing)Computer animation
41:02
Row (database)Coma BerenicesBlock (periodic table)Data typeXMLComputer animation
Transcript: English(auto-generated)
00:14
I think a lot of people are probably gonna be filtering in from the exhibit hall right at the point where we're showing all of our marketing information
00:22
about our company and our Twitter handles and stuff, and that's why we're really here. So we got it brand hard. It's good to see everybody today. This is a lot of space between the stage and the first row of seats, so you look very small.
00:42
If you came here thinking that we were gonna do a Q&A with passing a microphone around, we're not, sorry. We're gonna be here all week, so if you do ultimately enjoy the talk and you have a question about running a business, there's almost nothing that Todd and I aren't comfortable answering. We'd love to talk to you and meet you.
01:00
Trying to figure out now how to go from this awkward series of spiels to actually starting in a meaningful way. Should we just power clap? Okay, this is starting, yay! All right, go! So the title of this presentation is Business on Rails.
01:22
It's a Q&A session of sorts about running a business as a software developer. Our company's name is called Test Double. We are on a mission to improve how the world writes software. How we work is our developer consultants pair up with developers like you on your work project to get stuff done,
01:42
but also to look for ways to improve things as we go. You can read more about us at our website. We are founded in 2011 by just us two developers, and we have zero prior experience running a business. This here is Todd, my business partner. He goes by Todd Kaufman on the internets. He likes beer and running and pugs.
02:04
I'm Justin, I go by my last name Surals on the internet. I like fruity cocktails and what I would more classify as jogging and corgis. And now the company's grown a bunch. We're actually 45-ish people now. We're serving 14 clients currently,
02:20
and we collectively have one experience running a business. As a result, all of our answers here, your mileage may vary. They are pretty specific to that one experience, but we're gonna do our best to provide as much value to you today as we can. Over the last two months, we've been accepting, soliciting your questions at testdouble.com slash business, and you all submitted some really,
02:41
really awesome questions and continue doing it today. I guess the first piece of business advice is that developers really suck at estimating because we hand-picked 35 questions we wanted to answer, and I went so far as to write slides for 25 of those questions, only to realize we could only fit 12 into 40 minutes.
03:01
So we got a lot of other content, bonus content, that we're probably gonna find a way to parcel or deliver to you in bite-sized chunks after the fact today, so stay tuned. And the first series of questions that we got were really about like, hey, I haven't started a company yet, but I've got an idea for it. And I thought the best first question we could ask is,
03:20
hey, Todd, why'd you decide to start a company? Yeah, thank you. People who know us probably think we started the company for the wrong reasons. Say we were trying to get rich. Maybe we were trying to get away from having to wear khakis at our enterprise clients, or we're just trying to become our own boss or get away from the pointy-haired bosses that we had worked with in the past.
03:41
That wasn't necessarily the case with us. Justin and I worked at a consulting company where we were commuting five hours to a client at the time, so it provided a lot of time for us to discuss what was wrong with that client. And the conversation expanded to what was wrong with the consulting company we worked at at the time. And from there, it went to other clients, other consulting companies,
04:01
and we started to pick up a common theme. One of the things that we saw were that people weren't compensated according to the value they provided. Oftentimes, at these consulting companies, there were extremely rich, well-commissioned sales reps, but they didn't always do what was in the best interest of the business. Oftentimes, they would set up a project just to get a commission check,
04:21
even though it was destined for failure. I had one story where a sales rep was showing off a picture of his new boat that he bought to the team that was working on his project. That team was working nights and weekends to try and bring this thing in. That didn't seem fair, so we didn't want to do that. The company we were at was heavily focused on agile at the time, so much so that we spent an inordinate amount of time
04:41
talking about user stories, and the product backlog, and estimation, and very little time actually writing software or applying test-driven development. Further, some companies treated developers like they were a commodity at the time. I had a CEO tell me at one point, one of the best developers I've ever worked with left, and he told me that he was replaceable.
05:01
He could find another developer on the street. Further, some of these clients were really toxic, and the goal wasn't to fix them. It was to become more pervasive in our work there, and that didn't sit well with us. We talked about building something that would be different. We would move away from these enterprise restrictions, like having to wear khakis,
05:22
or even any pants at all, in our case, as a remote company. We wouldn't have to work with Java EE anymore. We wouldn't do fixed-bid, fixed-scope projects, because they were really easy to sell, really hard to deliver. We wouldn't do perpetual client travel, so driving in a car with Justin for 10 hours
05:41
was definitely a good shove in the right direction here. We felt like we could set up a company that would have realistic expectations, both for our developers and for our clients. If those two things were in alignment, we would add a lot of value to both sides, and really build something that was different. So question for you, Justin. How long should I wait before quitting my day job?
06:02
When is the right time to launch my company? Great question. Well, it turns out, like legally and technically speaking, you can start a company without having to quit your job first. Point in fact, you might know Aaron's company Adequit, and you might think that it exists for some legitimate purpose,
06:20
but in fact, he just wanted to buy pork belly at wholesale prices, and the restaurant group would only give him the discount if he was incorporated. So, you know, anyone can start a business. But I think what people are really asking here is like, when can I quit my job and focus on this other thing that I wanna be doing? And when Todd and I started Test Double,
06:42
we were laser focused on one thing, and that was like figuring out how to build a runway so that we could have plenty of time to make the business stable and viable. What that looked like is a calculation in our heads, like given some hypothetical amount of revenue, how long could our savings last? And maybe if we were able to win some early revenue or get confident that maybe we could pull in
07:00
something early, that could stretch that runway out so that we could, you know, go a little bit further before having to call it quits if we weren't successful. You know, another thing I'd recommend you do is talk to who your potential customers are. If you think you wanna start a business, make sure that people are willing to part with their money first before you quit your job. Second, a lot of people like to work
07:21
in like a stealth mode capacity. Maybe you do proofs of concept, maybe you actually like start building your product on nights and weekends, or if your service is some people moonlight. That can work well for people, but just keep an eye on your offer letter because a lot of us in a lot of our current jobs have signed something that doesn't allow us to do that without assigning rights to our employer
07:41
or talking to them first, so be mindful of that. So before you launch, just a few things to remember. You know, make sure that, you know, your finance is in order, that you're gonna have a sufficient runway to get started, that you've validated that customers are willing to pay for your time or goods, and that you have the right mix of naivety and courage to take that leap of faith,
08:00
because to be perfectly honest, programmers are a really, really hot commodity right now, and even if you fail, you could probably turn around and get a higher salary as an entrepreneur. So really, the bar is really low, and it's a great time to take this jump if it's something you wanna do. Next couple questions we got were about like starting up a business logistically.
08:21
A couple of our favorites here. Todd, at what pace do you hire more developers? Are we a growth-obsessed startup, or do you constrain the rate of growth? Yeah, so this is a good question, and we see this a lot in our industry right now. Startups, especially VC-backed startups, appear to be growing just for growth's sake.
08:41
We know a founder of one of these companies back in Columbus, and he talked about changing their company motto to you gotta spend money to spend money, and I thought that was like really funny as he was like off trying to get a Series C, until we talked in more detail about what he was doing with that money. He's basically burning through loads of cash to throw developers at this problem,
09:01
and we know from past experiences as developers, Fred Brooks told us this 40 years ago, throwing people at a problem doesn't necessarily make it go faster. It doesn't necessarily result in a better product. So why are people so obsessed right now with growing? Just for growth's sake.
09:20
I think it makes sense when you think that some of these companies don't necessarily have a lot of customers yet. They may not have any revenue at all. So when they're trying to get that next round of funding, they have to show something to those investors to let them know that look, we're gonna be successful here. So one of the things they can climb onto is the number of developers they have.
09:42
So hey, I have 50 developers, that's great. Here's your Series C, you'll hire 100 more. That hasn't been Test Double's model at all. In the early going, it was just Justin and I working at one client, and at that point you have to grow for stability's sake. Like when we were just at one client, a resignation, an acquisition, anything like that
10:02
could cause our project to end early. That could literally put the company in financial peril in a relatively short amount of time. So we've made a couple of hires and they also wound up at that company. But that allowed us the freedom to start pursuing a little bit more aggressively more clients and more projects. And eventually you start to find them
10:21
and you start to hire people. And this keeps on going. So now we're at the state where if a couple of projects end unexpectedly, it's not necessarily a financial ruin for the company. In fact, we may still be very profitable that month. It may allow us to go pursue other opportunities we'd otherwise have to pass on.
10:40
So we've termed this kind of growth model as cautiously opportunistic. Those of you who know Justin and I well will understand that Justin is extremely cautious and I'm extremely opportunistic. So in this way we've worked pretty well together. But that has resulted in growth that I think has been very healthy for our business. We're nowhere near like the exponential growth that some of these companies talk about,
11:01
but we're also not linear. And now we're growing so that we can have a bigger impact at a larger variety of clients. Justin, this one's for you. Why did you start the company remote first? Any unexpected consequences? Yeah, we get asked this a lot. Truth is there was no master plan to be a remote company. We're victims of circumstance.
11:23
Todd and I live 10 miles away from each other in Columbus, which in commuting terms is like an hour and a half of billable hours that we wouldn't get if we insisted on co-locating. After the 2008 crisis, a lot of offices downsized their space. So instead of expecting all their contractors to come inside, they no longer had a place for them.
11:42
And then additionally, home internet was getting fast enough that pair programming was viable. And all of these things kind of mixed together to create the situation where just defaulting to remote seemed to make sense at the time. And it turned out to just be a really happy accident. We treated it like a liability for years, but now I think it's one of our core assets
12:01
that allows us to be really flexible in who we work with and who we hire. Just imagine people fly to the conference this week. Maybe you meet somebody that you'd really like to work with and you get as far as really deciding you're really passionate about what they're doing and you wanna work together. But then the next step in the conversation is, okay, great, now sell your house,
12:21
uproot your family, move to Reno. And that's, you know, co-location introduces a really high barrier of entry to collaborating and working together in this time where we have all these tools that make it so easy to collaborate and work together. So it's a shame. Another thing about, so basically, what we've been able to do though as a result of hiring everywhere
12:41
is get people in like 14 states, 16 states, and two Canadian provinces were all over the place and we'll hire a very narrow ideology of like developers who happen to like really agree with our mission and impression of how we might be able to improve this industry. And people at a great skill level that would be really difficult to like hire all within one zip code.
13:00
The other thing I really like about remote is it's autonomous by default. I've had way too many clients with like, you know, just like moldy cube farms with like executives who literally will scream at you and like somebody microwaving something funky like every day, being on their network and under their control, like being under the thumb of somebody else is like the easiest way to feel
13:21
like you don't have control over your work. And so when you're at home, you know, you control a lot more of the variables about when, where, and how you accomplish what you need to do your job. But there's still, there are plenty of challenges with being remote. It's not, you know, a panacea. We're all spread out and we don't get
13:41
to see each other all bare in the, oh, excuse me, wrong point. So we're all spread out, which means that we owe tax in a lot of places. We pay probably way more to our accountant than any other like 30-person, 40-person company. A ton, our tax returns are a total mess. So additionally when we go to Ohio and we're like, hey, can we get a tax abatement?
14:00
You're a successful startup in Columbus, isn't that great? They're like, yeah, no, because you're not gonna hire three more people in Ohio. You wanna hire them elsewhere and that's a fair point. Additionally, we've got people in like, employer regulations just haven't caught up. You know, we have Ali in Maryland and we had to buy these like gigantic employer regulation like placard notices
14:21
for him to hang in his break room. And we just did that and sent them to him because we didn't know what to do. We also have a hub-and-spoke communication system where everyone's on different projects and it's just a shame that people like Dave and Schoon might go months without having an excuse to talk to one another. So we created, instituted this thing called Coffee Time. It's a little robot that emails people at random
14:42
every week and you get a message and then you schedule time together and you talk and people actually do this and it's such a delight because you get to talk to people you wouldn't normally talk to and it doesn't necessarily have to be about work. Additionally, you know, like it's a shame that we don't get to actually see each other because we've disassembled this team,
15:00
people we really love working with that really like, you know, opportunities to collaborate don't happen by happenstance. And so we come together twice a year both to enjoy each other's company and camaraderie as well as be amazed at how big the company has gotten in the physical sense. It's hard to scale on like looking at a Slack sidebar. And we plan out together the vision for like the next six months of the company's planning as a group in person.
15:23
Additionally, we're all gonna be tough if you're an extreme extrovert and working days on end at home without a lot of interpersonal interaction is hard. Like there are, you know, you might try coworking spaces and ways to work around it but it's just not gonna work out for everybody. And if you're really, really introspective, you know, you might think that you don't want a boss breathing down your neck
15:41
but like in the absence of that, the negative self-talk that might occur in terms of worry about like whether or not you're doing a good job, like at least for me indicated like what I really wanted was like continuous positive reinforcement and it took me years to really get comfortable in my own skin as a remote worker. But overall, I don't have any fear of missing office. I, you know, I would not regret this.
16:03
I don't regret this at all and I wouldn't have made it any other way. I think for businesses like ours, this was a really, really great choice. Next couple questions are about like once you've reached a point of stability, like how do you go to market? How do you market and sell yourselves? First question here, Todd, I would love to know the answer to this one myself. How do we find clients?
16:21
What's been the most successful source of generating leads? Yeah, I think this is one of the, a great question. Just know that strangers oftentimes don't wanna hear your pitch, right? Elevator pitches are there because people don't wanna hear you talk for two minutes. They'll tolerate you for like 30 seconds. Cold calling people is really hard. Cold emailing people is hard.
16:41
Cold LinkedIn-ing people. All these things are really, really difficult. We felt from the early going that our success was gonna be predicated on the number of meaningful relationships in our network. So we've spent a lot of time trying to grow that network and trying to grow the meaningful relationships within that. It's no coincidence we're in front of you at a RailsConf.
17:02
Justin goes to a lot of conferences. We met at a user group eight years ago. So get out to user groups, get out to conferences. Even if you aren't speaking, you can meet people who share similar interests. LinkedIn, if you can tolerate the amount of recruiter spam that's on there, can be a really valuable tool for keeping up with past coworkers,
17:21
college friends and things like that and seeing how their careers evolve and finding occasionally somebody who may be able to benefit from your product and service. Eventually, you get big enough where you kinda need a tool to manage some of this stuff. Your network starts growing. Keeping in touch with everyone becomes difficult. We use Pipedrive as a sales CRM tool.
17:40
We like it a lot, but there's literally 30 of these things out there. It's important as you're trying to expand your network, though, that you're not selling people. People don't want to be sold. All right, one of the things I love about Justin's conference presentations, he's rarely doing it with the mindset of I want to pitch test double.
18:01
Instead, he's trying to put himself in the audience's shoes, understand what he can share that may add value to you all, and that's the right mindset. We're not all able to come up with 800 slide decks to deliver in a 40-minute presentation like Justin, though, so find your own thing. Maybe that's blogging.
18:20
Maybe that's social media. Maybe it's authoring a book, contributing to open source, whatever it may be. Figure out ways to help solve others' problems, to help share what you've experienced. One of the best sales reps I know doesn't focus as much on what I can do for him. Every time I meet him for lunch, he asks, what can I do for you?
18:40
Who can I connect you to? I think that mindset of service to others is why he's so effective as a sales rep. So even if you're just connecting two people at RailsConf who may have an opportunity and may be looking for a job, that good karma comes back to you eventually. I think as your network grows,
19:00
it becomes difficult to kind of keep in touch with everyone but these relationships take a lot of time and effort to build up. So basically, make sure that you're persistent with it. Make sure you're investing the time to help these relationships grow because it will take time. We eventually got big enough at Test Double where I think the strongest generator of sales for us
19:23
has been the awesome consultants that work for us. They do a lot of good work for our clients, so much so that when a project ends, our clients are often asking us, hey, can you take a look at this? I know of a project over here that could use your help. Further, when they leave their company,
19:41
Test Double's one of the first companies they think of and when they talk to their friends who work at other similar companies, they recommend us. So this is what Jim Collins called the flywheel principle in his book Good to Great. As we prepared the talk, we found out this is what a flywheel looks like. We never really knew what that was. But the concept holds true, right? This thing is hard to get moving.
20:01
It took us a long time to get to this point but now it has enough momentum where even when our outbound efforts for sales maybe aren't producing the results that we want, we have a lot of stuff coming in inbound from past clients and people that we've worked with who recommend us. So that's been huge for us lately. Thank you.
20:21
Justin, this one's for you. Test Double has a strong and quirky brand. Did that develop organically or intentionally and how do you maintain it? Todd's strong and I'm quirky. I'm a firm believer in brand for the job you want. There's a reason that when we started the company, I didn't just put our names up and say we were independent contractors for hire. I really wanted to at least put on a brave face
20:42
and pretend we were a real company and I called ourselves a studio, again even though we were working out of our bedrooms, to present the image that maybe will become a real thing someday. But unfortunately that exhausted everything I knew about branding and so we hired a company called Basecraft, a branding agency
21:00
and first things first, we needed a logo and I gave them a few constraints about the logo. Thing I hate about all logos in tech, I told them I don't want some Helvetica thing with a dingus on top, not gonna cut it. Next, we have the word test in our name so we probably should avoid reds and then finally, we kind of found ourselves
21:21
from a marketing perspective sandwiched between apathetic waterfall development and snake oil agile consultants and we wanted to provide a message of improvement that was indeed counter-cultural, so maybe a little bit cheeky. And they delivered, we have this really distinctive
21:40
logo mark, certainly it's not red, but a very, very bright green and if you look at our marketing copy and stuff, it's a little bit cheeky. In fact, I didn't even realize nice code was a double meaning until several years later. I'm dense. We also got a brand book, like 22 pages.
22:01
Here's how to not use your logo and I'm the one now who is the keeper of the brand book and I use it to shut down productive discussion whenever anyone has creative ideas because that's apparently a really important part of branding. We have internal branding too because it turns out when you start a company, you have a lot of stuff that you have to name internally and having a theme helps.
22:22
I had a contest on Twitter years ago asking like what should we call our employees and Leon Gersting won it. He said double agents which I thought was a fantastic thing we all love and so now we've taken the spy motif way too far. So our full-time employers are double agents, our subcontractors are special agents. People who leave the company we call sleeper agents which was a joke but then they tend to win us work
22:44
at their next employer anyway and so it's kind of true. Bridge agents are who help shepherd people through our recruiting process. We compartmentalize information between subcontractors, full-timers and managers in these separate repositories. Our first recruiting app was called Gumshoes.
23:02
We have two modes of management, the M branch for career management and Q branch for technical management and then when you join as a full-timer, you get your own double O designation. So internal branding, it's just fun and goofy and silly and we don't normally talk about it publicly but it's there.
23:21
Basic branding tips, these are the first lessons that that agency gave us. They said whatever you do, it doesn't have to be the best designed thing in the world it just has to be clear and distinctive. It needs to be consistent. The goal is to give a stimuli and then get a particular response, hopefully a positive one out of people so that's why the brand book guidelines are so strict
23:41
and it needs to just be repetitive. Just hammer it into people's skulls and eventually they'll think of you when they see some image. The next questions we got were a little bit about how to scale up as an organization once you've had some initial success. This one's also for you, Justin. How should founders split responsibilities when starting and how does the structure change and why?
24:02
Well, one of my least favorite questions is what do I do all day and Todd and I have had a really hard time answering this question for ourselves because it just seems like the time flies but when it comes to like how we divide these responsibilities between ourselves, the only thing that really matters to me is clarity. We understand what the job is, who's doing it,
24:22
make sure that no balls get dropped. Guess what every new business lacks? It's clarity as to like what the jobs that need to get done are and who should be doing them and so lacking clarity, we really just instead formed a consensus management model for the first several years of the business.
24:41
What that means is we would just, every time anything came up, we would argue about it even repetitively over and over again and that's a very slow and exhausting way to manage a business but it has benefits too because eventually after the fourth time that we like have that argument, the deviation, we reach an equilibrium state where we roughly are acting and normalizing
25:00
in our approach and then once that happens, it just becomes a battle of who cares more. So like Todd, you clearly care more about recruiting. Congratulations, you're in charge of recruiting now and that's the moment where we feel comfortable splitting up our duties. We wrote this like accountability chart of the basic functions of the organization that we need to keep operating
25:22
but back in like 2012, it was really just sales, delivery and some admin tasks and again, we paired on all that stuff but the next year, we started going more public and selling publicly to other people, marketing and so we paired on that too. Eventually, we got to a point where having somebody sit in an integrator role to make sure that all the parts
25:40
are talking to each other successfully became necessary and Todd took that task and 2015, we were old enough that we had to like consider, you know, like what's our vision, how do we articulate it internally and externally and I own that. In 2016, we've reached a point where we couldn't manage everything anymore. Todd and I were talking five, six hours a day sometimes just to keep everything straight
26:01
and so I stepped away from administration. That's why I don't know how to run payroll anymore, for example and Todd took a step back from marketing and then in 2017, we decided that every single seat in the accountability bus should have just like one person in it and so Todd backed off from sales
26:20
and I backed away from delivery a little bit. We're still really involved in these things but like each thing now has one person that's only accountable for decision making and stuff and you can see now how I have like a more external focus and Todd's got a more internal to the business focus but that's still not a job. Like we can't recruit somebody to replace us because we're still doing these three disparate things,
26:41
two of them poorly and we can't replace ourselves or really grow much beyond this without making some changes. There's too much of our face in this chart and so this year and moving forward, our objective is to divest ourselves of the jobs that we either don't want or aren't good at and instead sit on the seats that we want to be in the long term
27:00
but we got a long way to go. If you email hello at testdouble.com, you will still get either zero or two replies because we don't have a system in place for figuring out who already responded to stuff. Sorry about that but Todd, this question I loved because well, the statistic is unsighted
27:20
but it's a 90% of people who resign site for management. Have we had much turnover and what have we learned about managing people? Yeah, so our turnover through the years looks somewhat like this. First year, Justin and I could still tolerate working with each other. Two people we hired at the very end of the year, neither one left so that was good.
27:41
Second year, same thing. We had very little turnover, no turnover. Third year, we had our first person leave which wasn't great. We wished he would have stayed but that was still fine. We felt very proud that we'd only had one person move on to a different opportunity in the three years of running the business. We use this as marketing.
28:00
We would tell candidates in our process we've had like minimal turnover and that was just one misguided soul who left the company. We're an awesome place to work at. Then 2015 happened. Yeah, so that was not great. That was five of 20 people on our staff left in one year.
28:22
So you're probably wondering like look, what does it look like the last two years? Yeah, we don't talk about it as much anymore after 2015. We stopped sharing a lot of this data. Anytime you have something like that happen, you start to ask a lot of questions. We did exit interviews with everyone and to kind of answer the question like was this poor management,
28:41
that wasn't what came up in the exit interviews. Really they had different reasons for the most part. So we were trying to read the tea leaves and really understand how did we get there? How did we get to the point where five people left all in one year? And I think looking back at our organization, like it was very flat in the early going.
29:01
It was high levels of autonomy and no process really whatsoever. And we felt like these were strengths and they did serve us well when we were really small. As we scaled up, once we got to about 20 people, we started seeing that they also caused a lot of issues. People didn't feel like they had clarity, where the company was going, how they can help.
29:22
They didn't have direction. Even worse, they didn't have support so when client issues came up, they didn't feel like they could get time from someone to get through them. These are management issues. This is definitely a management problem and that fell directly on my shoulders at the time. I was the one doing all of our one-on-ones. I was trying to support 20 people doing their jobs
29:42
and that was like a fraction of my day. So I was failing as a manager. I didn't apply enough time to make it successful. So we've leaned harder into one-on-ones since then. We have four people conducting them now. They're more valuable, they're driving career growth,
30:00
they're driving support for our clients. We've become a lot more effective at this throughout the years and it has resulted in much less turnover. We've had one person leave in 2016 and 2017 total. So some of the things that we've learned as we've gone through this management rollercoaster, obviously it needs to scale. That's the lesson you should take away from our 2015.
30:23
And you probably want to scale it proactively and not wait until five people leave to then scale it. But this is in no way optional. I think one of the things that we felt early on was that we were hiring very experienced people so they may not need that much support. They may not need that much management and that's not the case.
30:41
The moment where you're going to hire a person, I don't care what their capabilities are, you need to start putting some systems in place and people in place to support them effectively. Justin, this one's for you. How do you manage open source? Is it based on employee interests or does it have a conscious business focus? So if our open source appears to be strategic,
31:03
that is a happy coincidence. In fact, it's probably just a signal that our people's personal and professional goals are well aligned. We hire a lot of people who want to make software better so they spend time building open source. We want to make software better so we work with clients doing the same. We have a lot of fun projects
31:20
like Scripty helps you wrangle your package JSON scripts. We recently adopted a dependency injection framework for Node.js called Dependable that's actually pretty good. I've put a lot of my heart and soul into TestDouble, which is a mocking library for JavaScript and the team's done a great job helping me. We have a legacy rescue or refactoring tool
31:40
for Ruby applications called Suture that's helped some teams out. Jason Karnes is the lead maintainer of Node ENV which is exactly like RB ENV but for managing Node.js environments and it's a really, really great project. But last year at the retreat somebody asked, so what's our open source strategy though? And I did not have an answer.
32:02
You know, sometimes we've jokingly referred to the dozen or so testing libraries that we maintain as the TestDouble stack but I don't think that really makes a whole lot of sense because there's just so much open source everyone needs. Somebody else suggested that we make a mocking library that's really opinionated for every single language
32:21
and that just sounded like a lot of pain and misery. But where I think that we are special is we are on all of these like so many projects every year starting up in different environments, solving different problems. We've gotten really good at curating dependencies and figuring out what are the best tools for different kinds of jobs. And so we don't have a solution quite yet
32:42
that we're ready to share but we have a lot of ideas about how we might become leaders and curators of helping other developers figure out what are the best tools for each different type of task I wanna do and understand that that's a constantly changing and churning kind of environment. So last but not least, we got a lot of questions asking
33:01
like basically what do we regret or what would we have done differently? Yeah, this one's for you. What's something you've had to give up control of? Yeah, so one thing that I refuse to give up control over is that whenever anyone spells our company name this way, I absolutely lose it. I can't stand it. I get really, really angry. That space is for some reason very important to me
33:22
because it's two words, not one. If you only learn one thing today, it's probably gonna be this now. But to be completely honest, growth requires that you let go and the weird thing about being a founder is you're finding yourself really stretched thin and all these jobs that you don't wanna do
33:40
and as the company gets bigger and bigger and bigger, you'll just pop if you hold on to all of them and so people often see me like following on Twitter, you see like I'm just complaining all day like I'm sad and I'm complaining about the stuff I don't wanna be doing and people are so kind and they're like can I help and so then I do the completely rational thing and I snap and then I say no and I must retain control of everything all the time
34:01
and so I've retrospected like why do I crave this kind of control? What makes me a control freak about these jobs I don't wanna be doing? And I think that the reason is that I'm only like, they're not my profession or my vocation. Like I only know them well enough to like do them just well enough to get by and that means I don't know them well enough to actually articulate what it is that I'm doing,
34:21
how to do it and share the work with others in a reasonable way. So we started operationalizing a lot of how we work. That means like understanding what we're doing and documenting it as some kind of process. Figuring out how to evaluate whether that job is being done well or not and then the hardest part, holding ourselves accountable to that level of measure and only really at that point is it at all fair
34:42
to like hand that work to somebody else because like if you just give them unclear expectations and then try to hold them to those without communicating, you're setting them up for failure. Todd, I'd love to know your answer to the question. What's the worst business decision that we've ever made? Yeah, that's a good one.
35:00
Does anybody remember our marketing towards the end of like 2016? Justin was getting out speaking at a lot of conferences leading up to RubyConf of 2016. We had this great pitch called Make Ruby Great Again. Like we were super excited about this. We bought a bunch of hats and stickers. Then two days before RubyConf, the election happened
35:20
and yeah, we threw all that stuff away. No, that's kind of a joking answer. Most importantly to Test Double, we're trying to improve what we feel is largely a broken industry. Software development is broken in a lot of ways. What we wanna do is show maybe some clients some of the things that we've learned
35:40
about attracting, hiring, retaining and empowering software developers. One of the ways our industry is broken is diversity. The EEOC data respondents there, about two thirds of people in tech respond to he or him. Around one third respond to she or her.
36:02
The EEOC survey doesn't actually give you another option. That's obviously not fantastic for our industry. How does Test Double stack up against that? Much worse. So don't follow our example here. At least learn from our mistakes though,
36:20
which we're happy to share with you. When we were starting off, we were extremely nervous. You get to a point where you're delighting a client, the two of us were doing a good job and they're asking for more people to help out. So we were really, really afraid of putting someone in front of this client who was gonna fail. And we didn't have a qualification process
36:41
or even a recruiting process at that time to rely on. So instead, we did what most people do in that case, to hire people they know. People from within their networks. There's only one issue with that. Our networks looked a lot like this. They looked a lot like us. So we hired in a lack of diversity in the early going.
37:02
And as we started to have more fast paced growth in those early years, we kept repeating this process. And at the point where the company was initially, it was Justin and I's networks were the company network, right, and it was largely a bunch of white men. And then as we hired eight other white men, guess what?
37:22
Now it's just the same problem times 10. Okay, we didn't think about this enough in the early going. So please learn from our mistakes here. Proactively build your network. Try to make your network resemble the level of diversity you wanna see in the company that you work at and the industry that we're a part of.
37:42
Beware of culture overfitting. It was easy for us in the early going to want to hire someone because we liked them. That's not good enough. You may like them because you share hobbies or a taste in IPAs, right? You need to make sure you're hiring people who align with your company values and who provide capabilities you need
38:01
for your product or your service. So get better at designing an interview process that has objective metrics measuring these things. We've worked really hard over the last four years to try and pull out any level of bias. Finally, Ash Dragan taught us this early on.
38:20
If you're going to focus on improving level of diversity of the company, start with making sure your environment's inclusive of underrepresented groups. It does you no good to get better at outreach and qualification if you're still a very broken company internally with regards to supporting people. Justin, when do we call it quits?
38:43
So when we founded the company, and to this day we do not have an exit strategy or a lifestyle business, and what a lot of our friends who founded companies, we've seen the same series of events repeat for them to where you start a company to do a certain thing.
39:02
We started this company to get back into software development. And then you grow and you run out of time to be able to do that thing. Todd and I no longer get to do very much software development. And so then you spend the rest of your life trying to figure out how to do that thing again, which is the stage that we're currently in. And it's a little bit miserable.
39:20
In fact, I talked about Runway earlier. The Runway, when we talk about it now, is really like how long can we keep doing this and make it sustainable? Because if I have 18 hours of meetings each week, my soul can only last doing this for a few more years. But if I can ratchet that way down and focus on some more like strategic stuff that's in line with what I wanna be doing,
39:40
then maybe this is a job that I never need to quit, that I can just do perpetually. And in fact, what I'm finding is that as we make iterative progress there, the stuff that I would do on Saturdays and Sundays, open source and peer programming with people, is starting to more and more resemble my Monday to Friday time. And so my hope is that it's just going to become something that's like a natural congruent part of my life.
40:03
And I would wish that for anyone else here who starts a business and has been as fortunate and lucky as we have been. Unfortunately, we are out of time. Like I said, we only have time for 12 questions. We've got a lot more. I hope we get to share a lot of the rest of them with you. I hope we get to have some conversations over the course of the rest of the week here.
40:21
Test double, we are still continuing to aggressively, conservatively grow. And I don't think there's ever been a time in the company's history where we have like a greater slate of client projects down the pike that we're really, really excited about. So if you've ever, if you know us and you've ever thought about joining,
40:41
now is a fantastic time to reach out and you can learn more about what it's like to work at testdouble.com slash join. So with that, thank you everybody. We're gonna be here all week. We'll give you a sticker or whatever and just we'd really like to meet everyone that we can. So thanks again for your time. Thanks.