Mike Calhoun
How I Corrupted Survey Results and (Maybe) Ruined a Business

Summarized using AI

How I Corrupted Survey Results and (Maybe) Ruined a Business

Mike Calhoun • November 10, 2016 • Cincinnati, OH

In this talk titled "How I Corrupted Survey Results and (Maybe) Ruined a Business," presented by Mike Calhoun at RubyConf 2016, he shares a candid account of his first job experience, highlighting the challenges of navigating a toxic work environment and the pressure of high expectations. The narrative revolves around a critical project involving a survey application that he ultimately corrupted, which could have dire consequences for the client’s business.

Key Points Discussed:

  • Introduction of Personal Background: Mike briefly introduces himself as the CTO of a small company called Life iio and describes his anxious personality traits, which contributed to his experiences.

  • Toxic Work Environment: He describes the oppressive atmosphere of his first job at a micro consultancy in Manhattan, where his boss's aggressive management style instilled fear and prevented open communication among employees.

  • The Project: Mike recounts his assignment to create a straightforward survey application with limited knowledge of programming. The application, made with PHP and MySQL, suffered from critical flaws, including a high drop-off rate and lack of proper data validation.

  • Cover-Up Strategy: Instead of seeking help or admitting failure, Mike implemented a time-intensive and unethical cover-up plan by fabricating survey responses to meet client expectations and avoid potential job loss.

  • Consequences of Actions: He later reflects on the guilt associated with his actions as the client relied on the corrupted data to make critical business decisions. Mike noted that the consequences of such an environment could ultimately lead to the downfall of a business.

  • Lessons Learned: Mike emphasizes the importance of fostering a supportive work culture that encourages collaboration, transparency, and constructive feedback. He advocates for creating an environment where employees feel safe to ask for help and learn from mistakes without fear of retribution.

  • Positive Work Culture: He contrasts toxic workplaces with productive environments where teamwork, accountability, and mentorship thrive, suggesting that such atmospheres lead to superior outcomes for both employees and clients.

  • Call to Action: In closing, he urges the audience to reflect on their own work environments and promote practices that foster collaboration and growth rather than fear and isolation.

How I Corrupted Survey Results and (Maybe) Ruined a Business
Mike Calhoun • November 10, 2016 • Cincinnati, OH

RubyConf 2016 - How I Corrupted Survey Results and (Maybe) Ruined a Business by Mike Calhoun

It was the perfect storm of events and circumstances: a first job, naïveté of inexperience, a fear of getting fired, and a loud boss prone to yelling. One morning, I realized that the first web “project” of my first job in my new career had gone horribly off track. What came to pass in the following weeks was the most involved and tense coverup I’ve undertaken in my life. This experience can tell us all about how we communicate with each other. How we can create environments where people can ask for help and how an atmosphere of pressure and tension can ruin a business.

RubyConf 2016

00:00:16.400 Uh, hi everybody! Hey Jerry.
00:00:21.600 Please, uh, okay this is a talk about how I corrupted survey results and maybe ruined a business.
00:00:27.160 'Maybe' is in smaller letters. I think I did, but I'm not positive.
00:00:34.000 Firstly, I'd like to thank the conference organizers who are here. All the other speakers have been amazing.
00:00:39.920 I've attended so many great talks since I've been here, unfortunately many more that I missed.
00:00:45.039 And thank you to everybody here for spending a piece of your morning listening to me talk about my biggest professional failure.
00:00:52.399 So, with that said, let's talk about me for a minute.
00:00:57.879 There's a big risk in talking about yourself at a conference like this.
00:01:03.920 People might think this is just some elaborate exercise in egoism. I swear this isn't an ego booster for me.
00:01:11.200 If I were going to do that, I'd talk about something I was proud of, probably.
00:01:17.640 But this story is about a terrible thing that I did, not something that happened to me.
00:01:22.840 Since I was complicit in it, it was totally preventable.
00:01:29.159 I'd like to believe that if I had heard a talk like this, it could have been avoided. No guarantees, though.
00:01:36.079 More briefly about me, I'm the CTO of a company called Life iio.
00:01:41.520 We're a small company based out of Philadelphia. We're not hiring right now, but it doesn't mean we're not fun to talk to.
00:01:47.799 I have some team members here as well—they're awesome. Okay, we like to talk about code every so often.
00:01:53.040 I live with my wife and our two cats in Vancouver, Washington, which is just outside of Portland.
00:01:59.119 The cats are not as thrilled about the holidays as we are. I'm 35 years old.
00:02:04.960 I’ve been programming for about nine years, most of it Ruby at this point. I think I finally flipped that switch last year.
00:02:12.440 I have loved my career, with one noted exception, which we're going to talk about.
00:02:17.519 In that time, I've come to understand two traits about myself that are pretty fundamental to this story.
00:02:24.680 It's also probably relevant for background about me. I'm a lot higher strung than I'd like to be.
00:02:29.920 It's probably coming through right now; I'd like to pretend it's not there sometimes, but it seems to manifest unexpectedly.
00:02:36.800 It's made interviews very hard for me in my career.
00:02:41.959 I'd go to the interview and start placing such high importance on it, thinking, 'This is the job I need to have.'
00:02:47.440 And if I don't get it, I don't know what I'm going to do; who's going to hire me if I don't get this one? They all talk to each other.
00:02:53.120 Then if I do get the job, that becomes even harder because I spend all my time convinced I'm about to get fired.
00:02:59.319 There's always this dagger hanging over me. It's not the best feeling, I swear.
00:03:07.200 It's led to a higher level of output for me—probably not sure if that's good.
00:03:13.519 It's definitely put me in uncompromising situations.
00:03:18.760 I tend to commit to things I shouldn't commit to, saying I've got a Herculean level of work covered, then work constantly for weeks on end.
00:03:27.920 I also don't handle confrontation well.
00:03:33.239 Not to say I'm constantly screaming at people and losing my temper left and right—it's quite the opposite.
00:03:40.040 I'll retreat wholesale and just check out of that conversation.
00:03:45.200 I don't want to do it. It's not a passive-aggressive issue; it's really the idea of two adults screaming at each other in a professional context.
00:03:50.319 I think the only noted exception might be my sister and me at the holidays. Thanksgiving is just around the corner; she's coming to visit.
00:03:58.040 I know these are not particularly unique characteristics; they're probably very relatable to a lot of people in the room.
00:04:03.159 But for the purpose of this story, I think they're worth noting.
00:04:08.799 So let's get through it. In 2006, Ruby was version 1.9.
00:04:14.640 Rails was at version one—it might not be completely accurate on my notes.
00:04:20.799 Beyoncé had just released her second album, and I had just completed earning a Master's of Library Science.
00:04:27.080 You know, a rocket ship to South Dakota—I was going places with that.
00:04:32.400 So I started to look for jobs. I had been working somewhat with programming in the background.
00:04:38.680 There was some tangential intersection in the library science program; a lot of those schools are now called Masters of Information.
00:04:45.000 I found a job programming for a small micro consultancy in Manhattan.
00:04:52.800 I say micro consultancy; you know, we're 16 people at Life, so I say a small company where there were five people total counting me.
00:05:01.320 We sat in this weird perfectly square office with one office behind us.
00:05:06.720 I got this job in Manhattan; it was a short train ride from my apartment in Brooklyn.
00:05:12.840 I was excited—more than excited, really. I was elated!
00:05:18.759 I moved past the fear my parents had that I'd always be in school, which felt good.
00:05:26.560 I was realizing a lifelong dream, so to speak. I grew up in upstate New York and wanted to move to New York City.
00:05:34.600 My parents were terrified of New York City, and I was determined to go.
00:05:40.120 I was really excited to start programming! There was no dress code, and I could ride the train to work.
00:05:47.479 Reading way too intellectual books for my weight class—I loved it.
00:05:53.280 That optimism disappeared real quick; this was a terrible environment for me. I'll never forget the first time this happened to me.
00:06:06.919 We sat in this perfectly square office with a door behind me to my boss's office.
00:06:12.039 It was like the third day, and all of a sudden, I just hear this billowing yell coming from behind me.
00:06:18.199 It was directed at the person who sat caddy corner to me, and she was getting dressed down for what I now know to be a pretty insignificant bug.
00:06:25.160 At the time, I thought, 'Oh, she really messed up—that's terrible; I'm never going to do that.' Yet, I ended up doing it quite a bit.
00:06:31.360 Everybody was severely isolated; we sat in this weird square office with four corner desks all facing the walls.
00:06:37.319 Say what you will about the open office plan, but creating a circumstance where we're in one room yet can't talk to each other is bizarre.
00:06:43.560 It's even more bizarre when you consider that the boss would kind of monitor us in this Orwellian fashion.
00:06:51.000 If we heard cross-talk, like, 'Hey, how was your weekend?' or 'What are you working on?'
00:06:56.639 I remember routinely hearing him say, 'You guys not have enough to do? You got time to talk. What's going on there?'
00:07:03.960 I was like, 'Oh sorry, I'll go back to my corner; that's fine.' Anecdotally, I was told not to waste my time on Ruby.
00:07:11.479 I kind of wonder if he's typing into the livestream right now—that would make my day, honestly.
00:07:18.599 I was chastised for asking for help.
00:07:24.280 There was a time I was working on something, and he was bragging about how good he was at JavaScript.
00:07:30.360 I'm terrible at JavaScript, so I said, 'Can I get some help with this? I'm not very good at JavaScript.'
00:07:36.680 He replied, 'Well, you need to get better.' I was like, 'Oh okay, well I thought that's what I was trying to do.'
00:07:42.480 I was also criticized for not seeking help. If something took too long, I'd be told, 'You should have asked for help sooner.'
00:07:48.280 In a book called 'The Wizard of Oz and Other Narcissists,' there’s a concept called the double bind that narcissists engage in.
00:07:55.360 They present one set of rules, and if you don't accomplish your task, the rules change—which makes it impossible to win.
00:08:01.800 So, I'm criticized for asking for help and criticized for not getting help.
00:08:06.199 I figured I’d just not talk to anybody—that seems like the way to go.
00:08:11.800 I was called home on one occasion after taking a sick day with laryngitis.
00:08:18.560 I sent an email saying, 'Hey, I can't make it in today.' He literally called me and asked, 'Where are you?'
00:08:25.040 I was like, 'I can't come in; you hear my voice—it’s terrible!'
00:08:32.159 It was an overall terrible environment for an anxious librarian who hates confrontation.
00:08:39.000 It was pretty rough, but you got to pay the bills, and I made an okay go of it.
00:08:45.000 I got to be competent; I would say it's probably not how I thought of it at the time.
00:08:51.360 I keep thinking of this notion of 'sink or swim.' We say that phrase a lot, but what it really gets at is life or death.
00:08:57.680 So if you don't die, you live, and that seems pretty important.
00:09:04.000 So if I’m succeeding in my version of it in this atmosphere where it's hard to succeed, I start telling myself I'm amazing at this.
00:09:11.360 I was doing things a lot of developers do as they start to level up.
00:09:18.200 I started to pursue more learning opportunities where they presented themselves.
00:09:24.360 I went to meetups; I was an active participant in a Drupal forum. I read a book, despite being told not to waste my time.
00:09:30.600 I think I started to piece through the first pickaxe book.
00:09:37.600 I learned enough to, in hindsight, be really dangerous.
00:09:43.080 This brings me to the project. After a couple of months, I got my first solo project.
00:09:49.920 It was a straightforward survey application. The client needed to make decisions about their business for the coming year.
00:09:56.240 To do that, they were going to aggregate feedback from users by asking them 25 questions spread across five pages.
00:10:02.560 You’re probably thinking, 'Oh, I know this is going to be a breeze!' And it is! We had a lot of tools now for this.
00:10:11.040 Nowadays, we could probably just do it in Survey Monkey, but Survey Monkey didn't exist back then.
00:10:18.720 I was in a position where Ruby wasn't on my radar, Rails wasn't there, and Erlang wasn't a choice.
00:10:24.000 I was terrified to ask for help. The only things I knew were PHP and MySQL.
00:10:31.240 So you can guess where this is probably going. The thing I built was complete and utter trash.
00:10:36.760 I'm kind of bummed that Patterson is not in the room because I could brag about this being a true marvel of modern engineering.
00:10:42.360 But it was seven PHP pages, where each one submitted to the next page.
00:10:49.560 Every page that a user loaded in its browser, like survey1.php and survey2.php, began with a chunk of custom PHP.
00:10:56.639 And MySQL was writing directly to the database. The HTML of the questions pulled answers out of the query string.
00:11:01.800 It was really bad; there was no validation happening.
00:11:08.120 There was nothing remotely resembling an object. And probably most importantly, nothing verified the data ever saved.
00:11:14.480 So it was a complete failure.
00:11:19.639 It took me about a week to realize how badly it was broken.
00:11:25.040 When the user began the survey, a marker would take off in the database saying 'survey begun.'
00:11:30.920 When they finished, there’d be a marker that ticked 'survey ended.'
00:11:36.279 So I knew when a user started and finished the survey but didn’t drop off.
00:11:42.720 I expected a certain number of answers to correspond, but I realized I didn’t have all the answers; those were getting lost.
00:11:49.079 There was this record of 100 surveys being taken. After the first week, I think it was actually more than that, which is terrifying.
00:11:55.079 I had a record of 100 surveys being taken, but the drop-off rate was about 30%.
00:12:01.679 So for every 100 surveys, I had about 70 sets of answers.
00:12:05.880 This was bad! The client paid us for something that fundamentally didn't work.
00:12:12.519 They were going to base their business off of this.
00:12:18.720 I should have stopped; I should have paused, taken it down, apologized to my boss and the client.
00:12:24.040 I needed to say, 'We’re going to fix the problem. I need a little help because I don’t know what's wrong.'
00:12:30.680 I wasn't as good as I thought I was.
00:12:36.680 Again, I was terrified. I was anxious. I thought, 'This is going to be the thing that gets me fired.'
00:12:41.839 So I hatched a plan. I realized I could come in early and stay late.
00:12:48.720 I spent a big chunk of my day every day monitoring these results as they came in.
00:12:56.519 When I realized that something got dropped, like when users started and finished without answers, I just made them up.
00:13:03.519 I could insert the values directly into the database. I thought, 'This person wanted this and this and this.'
00:13:09.279 It seemed a lot better than getting yelled at.
00:13:16.959 So, I was making up these answers, saving them to the database for the survey that the client was using to inform their business direction.
00:13:24.480 So again, I say I maybe ruined a business. All I know is they don’t exist anymore; that’s all I can confidently say.
00:13:30.720 There was none the wiser at the end of it. I worked constantly for that whole month that the survey ran.
00:13:36.000 In fact, this is really the first time I talked about it. No one ever knew about this.
00:13:42.680 I got increasingly fast at covering it up. It was pretty intense in terms of stress.
00:13:48.720 But at the end, the client was happy, given what they knew.
00:13:55.560 Let me rephrase that: the end result that made everybody happy was that my boss got paid.
00:14:02.320 Not long after that experience, I left that company; it was a bad environment for me.
00:14:08.840 I don't think there's any debating that the guilt of this was with a client.
00:14:14.279 We continued to work with them, and the guilt of sporadically interacting with them was hard.
00:14:20.320 I'd say, 'Hey, based on survey results, we want to build this thing,' and in my head, I’d just groan.
00:14:26.920 So, yeah, the bad environment was a good enough reason to leave.
00:14:32.040 But I really couldn't handle the guilt of interacting with that client on an ongoing basis.
00:14:38.000 I was hired at another consultancy that wasn't without its own set of problems.
00:14:43.920 But those were problems that we worked to solve as a team.
00:14:49.800 Let's take a look at what, if anything, we can learn from this.
00:14:55.680 The really obvious thing that comes out first and foremost is: never hire me.
00:15:03.800 I mean, I'm up here literally telling you how I drove a client out of business and how bad an employee I was.
00:15:12.720 But maybe not; I like to think I bring this experience wherever I go.
00:15:19.839 It's certainly something I’ll sporadically consider in a lot of circumstances.
00:15:26.320 And I promise I won't ever intentionally sabotage a project again.
00:15:31.399 I mean, I wrote 'sabotage' here, and I really mean intentionally. Sure, I may make accidental mistakes.
00:15:37.120 We all make mistakes, but I won't scream at people if they do make mistakes.
00:15:42.720 And I'll never cover it up—especially when I know I've made it, I'll just say something.
00:15:48.720 I know what I want to be as a manager. You know, I'm a CTO now, which is still a weird concept to think of.
00:15:55.480 But I know what I don't want to be in that position; I'm still trying to learn what I want to be.
00:16:02.319 But there's also a bigger concept to consider in all of this: let's consider environments for a minute.
00:16:08.199 In isolation, it's hard to understand why something exists the way it does.
00:16:14.200 To explain why this picture of me is so ridiculous, put it into an environment—it starts to make sense.
00:16:20.640 You're like, 'Oh, okay, I get it—they're at a soccer game.' However, it's still pretty ridiculous.
00:16:26.920 But I think importantly, it's important to remember that I think software is really a product of the environment it was built in.
00:16:32.920 The wells of business opportunity, talent, and user happiness can be very shallow.
00:16:41.040 If you're in an environment where condescension, fear, selfishness, and egoism dictate how things are run.
00:16:46.440 You'll start to experience issues with retention. And when I say retention, that seems like I'm only concerned about people working there.
00:16:54.399 It extends to employees, clients, and users. Clients can go out of business—not your fault, maybe your fault.
00:17:00.560 Users won’t want to use the product.
00:17:07.159 These problems will manifest in ways we can't anticipate; they’re unknown unknowns.
00:17:14.440 Conversely, what about a communicative, educational, transparent, and positive environment?
00:17:20.880 Something more collaborative? You’re going to build great things there!
00:17:27.159 I never hear a successful product owner give an interview saying, 'Well, at our office we don't encourage people to work together; they're not allowed to talk.'
00:17:32.640 And if a mistake is made, I dress them down thoroughly. Maybe Elon Musk, I don't know.
00:17:41.720 But I genuinely believe that people love using software that was built by people who love what they do and where they do it.
00:17:49.240 In my story, I think about the time I spent on an insane cover-up. I didn't love doing that work.
00:17:55.560 It was, 'Any minute now I’m going to get found out, and it's going to be terrible. I'm a fraud; and you deal with so much from that.'
00:18:02.720 If I could have just had help or some positive guidance—a mentor, somebody to collaborate with.
00:18:09.040 However, we do need to remember that collaboration is tricky; it's a double-edged sword, so to speak.
00:18:16.680 It means different things to different people.
00:18:24.239 What if I was forced to work with the person who was making my life miserable? You're going to get collaboration, but it’s from the worst person you know.
00:18:32.320 So, you need to learn how you work best and figure out a way for you all to work together.
00:18:39.000 Share feedback about feedback. Paul ATL talked about this yesterday. It was a great talk.
00:18:46.320 We don't only need code reviews; we also need feedback about how we work together and how we’re doing towards each other.
00:18:54.719 While fostering collaboration, let’s encourage learning.
00:19:01.239 I mean, go beyond a company's book club or attending a meetup, which are great things.
00:19:08.360 If you confine learning to just those areas, it’s harder to extend it everywhere.
00:19:15.919 So make it a part of your everyday practice.
00:19:22.840 Some level of cross-training—check in with people. Ask them, 'Hey, could you tell me about what you think of this?'
00:19:30.720 I do this all the time. I ask people for a second set of eyes on an issue because I'm not sure of my approach.
00:19:37.320 Naming things is impossible. So what do you think of this word? Why did you choose that approach?
00:19:43.600 Offer help in a non-condescending manner. Sometimes, people give signs they could use help but are afraid to ask.
00:19:50.800 You can say, 'How's that survey you're working on going? If you need anything, I'm available.'
00:19:57.520 Somebody asking me that question would have made me grateful.
00:20:03.320 Build a culture of code reviews and insight and teaching.
00:20:10.200 I feel a little awkward saying this: we just got done with a big sprint and know we’ve sacrificed some of these standards.
00:20:18.559 But we made our promise to ourselves that we’d come back and fix them later.
00:20:24.560 Thinking back on this story, I was a pretender. It's really hard to find an image for that.
00:20:31.520 Then I remembered I love The Pretender, so that worked out.
00:20:37.120 That sink or swim mentality led to some learning, but what kind?
00:20:44.840 Going back to the life or death comparison, I was swimming; I felt like I was KD Lei.
00:20:51.760 In reality, I was probably one of those people on the Titanic, taking everybody down with me as I flailed about aimlessly.
00:20:58.840 I learned to be very dangerous and not do my job well.
00:21:06.440 I came in boy coding at that next consultancy, and that was immediately shut down.
00:21:12.400 They weren't going to scream at me; they were going to fix the problem.
00:21:18.240 I was put in something that resembled a mentorship program, and that was great for me.
00:21:24.239 I've built off of that, and that needs to be kept in mind.
00:21:30.640 We make mistakes, and we learn from them.
00:21:36.160 Some of the best learning I've done has been through getting confused with something and hacking around until it works.
00:21:42.080 Then I improve it. I think we have a pattern for that: red-green-refactor.
00:21:48.240 But beyond that, I think there's so much phenomenal and motivated talent coming into our communities.
00:21:56.239 More experienced people are getting to work with new people and new perspectives.
00:22:02.560 Megan T made a great point about this in her talk last Thursday; go back and watch that one.
00:22:10.240 More experienced people are learning the work of being a leader, and that's tough.
00:22:17.600 A great talk yesterday discussed how senior developers need to learn to be leaders in their organization.
00:22:22.480 New developers can learn a lot as well. It goes beyond coding; it's about the experience of working in software.
00:22:28.959 Classroom learning doesn't always reflect real-life application.
00:22:36.240 They need to gain experience in real-world practices and understand the occasional compromises that business requires.
00:22:42.800 We all have the opportunity to be on ambitious, thoughtful teams where feedback is given constructively.
00:22:48.720 Know that you are a part of a culture and that you are contributing to it.
00:22:55.199 Wherever you go, you're joining a new culture and contributing to it.
00:23:01.440 You should be expected to contribute to it—it's kind of your obligation.
00:23:07.360 When considering a company, you can ask questions about promoting personal growth and what values are valued.
00:23:14.159 Were you the first person to bring up culture in an interview? That might be a concern.
00:23:21.599 In my interview for that terrible job, I was too nervous to think about these things.
00:23:28.200 We need to be aware of what’s happening around us and trust our instincts.
00:23:35.960 If you walked into a weird room where four people were pointing into corners, that's a warning sign.
00:23:43.120 You might ask, 'Is everyone sharpening daggers?' If they look bored, that might be a concern.
00:23:49.920 In a remote interview, pay attention to certain markers. Is there more than one person on the call?
00:23:57.119 And if so, how are they interacting with each other? Is it tense?
00:24:04.239 Usually, in our first intro interview, it’s me and another person who are probably more nervous than the applicant.
00:24:10.960 We tend to be jokey about it, which is a good reflection of us as a company.
00:24:17.520 In summary, I think we can practice obtrusive collaboration.
00:24:24.200 Go back to learning—figure out how you work, learn what makes you comfortable, and how co-workers work.
00:24:30.160 Allow free communication; don't cut off people from asking for help.
00:24:36.080 Be aware of language that can prevent help. Avoid using phrases like, 'just put that in a PHP file.'
00:24:42.479 Foster growth—if you create a safe environment, it will snowball into something amazing.
00:24:49.360 But remember, parts will fall off, so ensure you keep it together.
00:24:55.839 Reflect on the environment you've created. If issues boil up in your software, users are dropping off.
00:25:04.000 Before filling the gaps, look at what's causing everyone to leave.
00:25:09.479 If you have a lot of bugs, assess what's causing those bugs to arise.
00:25:18.160 Treat the actual disease, not just the symptoms.
00:25:25.920 Don't engage in massive cover-ups. That is effort and talent misused.
00:25:31.920 Don't sabotage other businesses unless they're competitors, which might be worth considering.
00:25:37.320 But in general, don’t do it if they’re nice people.
00:25:43.162 Thank you all very much for spending your time at RubyConf hearing me share my most humiliating professional experience.
00:25:49.600 I really hope you got something from this, or perhaps just caught up on emails you meant to send while you were here.
00:25:56.440 Either way, I’m happy to take some questions.
00:26:02.760 My name is Mike again, coic01 on GitHub and Twitter.
00:26:08.639 Twitter is not anything meaningful, and I think that's probably true for most people these days.
00:26:14.579 But thank you!
00:26:40.639 So, the question was: does the micro consultancy still exist?
00:26:48.520 Could they find out about this from the talk? The answer to both questions is yes.
00:26:54.600 There are a few people who know the company I'm talking about.
00:27:01.240 It's funny because they’ve made no effort to update their presence since 2006.
00:27:08.480 Their footer still says copyright 2006, but they're still there.
00:27:15.440 Conceivably, they could find this out.
00:27:20.560 I'm less worried about it these days.
00:27:27.000 The joke was, on my flight here, I connected in Salt Lake City, and there was a guy who looked exactly like my boss.
00:27:34.960 I started to have a panic attack right there on this plane.
00:27:41.440 He was at the conference, and I said, 'Wait, no, what is happening?' I talked to him.
00:27:47.920 He said, 'No, I'm not your old boss; I'm someone entirely different.' People tend to look alike sometimes.
00:27:55.720 So, that was a good question.
00:28:01.560 Do you have any advice for preventing these types of failings?
00:28:06.600 If you’re the only developer in the company?
00:28:12.720 That's tricky; it depends on your skill level.
00:28:20.560 If a company needs a developer and they hire an entry-level developer to do all the work, that could point out problems.
00:28:26.560 You might want to consider bringing in a consultant to help to leverage your resources.
00:28:35.919 You can lean on the community; they help.
00:28:42.080 In Portland, we have a Slack channel where people regularly post help questions.
00:28:48.560 Being your own person is important.
00:28:54.560 As the sole developer, the biggest challenge I faced was knowing how to expand and grow.
00:29:01.080 I would talk to my partners and say, 'Guys, I messed this up; I need to figure out how to do it correctly.'
00:29:07.840 I might need to bring in outside help, and as we grew, I kept this experience in mind.
00:29:14.240 I was going to be a big part of ensuring that less experienced people had a better support structure.
00:29:21.680 That's a bit tricky for being a lone wolf.
00:29:29.200 If you live in San Francisco, you're literally on an island!
00:29:36.640 So the question is: do you have any advice for management to fix that situation?
00:29:44.720 I can speak from my personal experience.
00:29:51.720 Try to encourage people to ask questions first and foremost.
00:29:58.720 I don’t want to do it in a way that's overbearing; I want other opinions and thoughts.
00:30:05.840 If multiple people are present, talk about each other's code and approaches.
00:30:12.560 When mistakes happen, make sure it’s clear that they can say it and feel safe.
00:30:19.200 Your job's literally not on the line; you should have regular check-ins.
00:30:26.640 Encourage learning and questions.
00:30:34.200 Thank you, everyone, for your time!
Explore all talks recorded at RubyConf 2016
+82