Dan Martell - July 02, 2018


How To Avoid Being Held Hostage By Your Software Developers


Episode Stats

Length

11 minutes

Words per Minute

202.2753

Word Count

2,264

Sentence Count

84


Summary

Summaries generated with gmurro/bart-large-finetuned-filtered-spotify-podcast-summ .

Transcript

Transcript generated with Whisper (turbo).
00:00:00.000 Hi there, I'm Dan Martell, technology entrepreneur,
00:00:02.040 investor, and creator of SaaS Academy.
00:00:04.000 And in this video, I'm gonna teach you
00:00:06.000 how to get your product built without feeling
00:00:08.600 like you've been taken hostage by your development team.
00:00:11.040 And be sure to stay to the end where I share a link
00:00:13.240 for you to get my weekly sync process
00:00:15.640 so you can not only manage your team better,
00:00:17.720 but also ensure that your developers are actually
00:00:19.720 executing on the features you need to get built.
00:00:30.000 So maybe you're feeling frustrated that you've hired an external dev team and they've been
00:00:38.080 working and the scope's got out of control and it's costing you more and more money or
00:00:42.480 you hired a developer off of Upwork and you can't really seem to get a hold of him.
00:00:47.660 He's not communicating.
00:00:48.700 He's kind of like here and not there.
00:00:51.080 You're kind of unsure if he's actually doing the work or if he's just taking his time.
00:00:54.980 You're still paying him.
00:00:55.840 Things are getting built fixed but it's not moving to your liking.
00:00:59.660 Well, I'm gonna share with you some strategies
00:01:02.960 to help you feel absolutely certain
00:01:04.860 that the money you're investing in the product
00:01:06.960 is getting put to good use,
00:01:08.660 that you don't feel like if you had to swap out this developer,
00:01:12.200 or honestly, if anything happened to them,
00:01:14.400 that you wouldn't have to feel totally stranded,
00:01:18.220 or if you needed to bring somebody else to augment the team,
00:01:20.620 you could do that quickly if all of a sudden
00:01:22.120 you got a big customer order, et cetera.
00:01:23.960 You know, I've started off my career as a programmer,
00:01:27.620 So, technically speaking, I've never had this challenge.
00:01:31.120 I've coached many entrepreneurs, non-technical founders on
00:01:34.100 how to deal with this and a lot of the strategy I'm going to
00:01:36.100 teach you with today came from that process but I will say
00:01:40.400 from a financial point of view and maybe you can relate to
00:01:42.460 this as well is I'm not an accountant.
00:01:44.380 I did not go to school.
00:01:45.240 I do not have an MBA.
00:01:46.280 I've never graduated from university.
00:01:48.200 All of my understanding of financials came through just
00:01:51.240 doing, building, buying, investing in companies but what
00:01:54.020 I did maps to the same process as your development team.
00:01:57.380 The first thing is I made sure that all of the financial
00:02:01.280 systems, and this is back, you know, going over 15 years ago,
00:02:04.380 was up in a server.
00:02:05.480 Today you would use something like QuickBooks Online.
00:02:07.620 But I made sure that we consolidated,
00:02:09.500 that I had multiple people involved in the process so no
00:02:12.420 one person could take me out and I ensured that I brought in
00:02:16.260 experts to help me understand and teach myself at a high
00:02:19.240 enough level how I can get through understanding the
00:02:23.200 reports and also ensure that no one person could cause me
00:02:26.700 challenges so that's what I'm gonna walk you through as it
00:02:29.000 relates to your developers.
00:02:30.300 Step number one, cloud-based source repository.
00:02:33.800 Now if you don't know, you should ask but all great
00:02:37.200 developers and really any development team should have the
00:02:40.220 code, the programming language that you built your product in
00:02:45.120 up in the internet, in the cloud, the cloud is such a weird
00:02:48.420 word and essentially up on a server and some of the tools
00:02:51.920 and I'll link them below are sites like GitHub that allows
00:02:55.800 you to not only have everything in one spot,
00:02:58.100 but all developers can contribute to it.
00:03:00.000 You can deal with conflicts and as a business owner you can
00:03:03.500 actually see the change log of all the different changes that
00:03:06.280 are being made in real time.
00:03:08.720 Honestly, if every day you wanted to go check out the
00:03:10.540 change log and see what's being contributed or submitted to
00:03:13.460 the code repository, you could see that.
00:03:15.560 So that's number one is you got to get your code up in the
00:03:17.920 cloud and monitor it ideally on a daily basis to make sure
00:03:21.220 your developers are actually pushing new changes to the
00:03:24.460 repository. Number two, centralized access control.
00:03:28.460 So when it comes to authentication or logins you need a place
00:03:31.960 where all of these logins go there.
00:03:33.760 You have your administrative accounts on your servers,
00:03:37.060 in your source repository, all the different developer tools
00:03:40.460 that you might be using.
00:03:41.660 So the best way to do that is to use a product that allows you
00:03:45.260 to consolidate all those logins but then share them to
00:03:48.260 different people or roles or groups of people like your
00:03:51.520 development team so that they can use those logins especially
00:03:54.420 if you don't have the ability to sign new user access to it.
00:03:58.260 So tools like a 1Password Team Edition or many others,
00:04:02.760 you can look online, I'm gonna link some below
00:04:04.420 so that you can kind of see my favorite ones.
00:04:07.260 But doing that allows you to never feel like,
00:04:09.900 hey, if somebody got hit by a bus,
00:04:11.940 I don't even have the login to the server.
00:04:13.980 If I found somebody else to actually help me out,
00:04:16.400 I wouldn't even tell them how to get access to the system.
00:04:18.640 You need to take all of that out of the minds
00:04:20.740 of your development team and put it up
00:04:22.640 into a centralized access control solution.
00:04:25.640 Step three, documentation reviews.
00:04:28.940 Now, I'm gonna ask you to ask your developers
00:04:31.740 to document their changes.
00:04:33.040 At a minimum, when they're contributing new code
00:04:35.440 to the source repository, they should be writing some level
00:04:38.440 of description, they should be commenting their code.
00:04:40.740 But I think it just makes it easier if you just start off
00:04:43.740 as a culture and say, hey, every two weeks we're gonna sit
00:04:46.140 down and review the documentation.
00:04:48.440 And this could be everything from the database design,
00:04:51.040 This could be through some workflow diagrams.
00:04:53.300 This could be from pure code documentation.
00:04:56.120 But I think it not only ensures that it's getting done right
00:04:59.240 but it also lets your development team feel like
00:05:01.920 there's a reason for writing all this documentation
00:05:04.560 so that somebody's gonna see it
00:05:06.320 and you can also give them feedback and say,
00:05:08.120 I don't really understand this, can you explain it to me?
00:05:10.200 But that way you know if you brought somebody else in
00:05:12.460 they could get ramped up very quickly
00:05:14.000 because all the documentation is up to date and accurate.
00:05:17.000 Number four, pay for code reviews.
00:05:19.260 Now this is the one, I kind of stack them based on
00:05:22.360 absolutely must to more advanced things.
00:05:24.560 And pay for code reviews, I know you're like,
00:05:26.160 I'm already paying for the developer, Dan.
00:05:27.960 Why would I actually have to pay somebody else
00:05:30.100 to review his work?
00:05:31.100 Well the truth is, is just like in the financial example
00:05:33.600 I told you at the beginning, I need somebody else
00:05:36.180 that I trust to do a review.
00:05:38.220 And the good news is, is there's so many incredibly
00:05:40.980 talented programmers that might charge you 300 bucks an hour
00:05:43.980 that you might not be able to afford to write your code,
00:05:46.620 and trust me, there's way less expensive options,
00:05:49.620 but to have somebody in and just make it part of the process
00:05:52.360 and say, hey, every month I'm hiring a guy for four hours
00:05:55.560 to come in, review your code, give you some feedback,
00:05:58.740 give me some feedback on how we're building things,
00:06:01.040 the frameworks, are we building an extensible model,
00:06:03.240 like is it good programming code?
00:06:05.680 And that way for a few hours, a few hundred bucks,
00:06:09.240 you're gonna feel comfortable that it's being built right,
00:06:11.780 you're gonna have a second pair of eyes on the code base
00:06:14.780 and you'll know if all the other stuff I already suggested is
00:06:17.420 being followed.
00:06:18.420 So paying somebody else for a code review especially you can
00:06:20.980 get it for free if you build an advisory board.
00:06:23.060 I've got a video below on how to put that together so you can
00:06:25.460 watch that but having somebody come into your business, look at
00:06:29.320 the code, give you feedback on a monthly basis is an incredible
00:06:33.160 idea to never feel like your dev team's doing things wrong or if
00:06:37.400 they bounced and left that all of a sudden some new person is
00:06:39.880 going to come in and go holy moly, you've got a spaghetti
00:06:42.900 code, a rat's nest of features that really don't make any
00:06:47.580 sense, you just need somebody else to look it over.
00:06:50.280 Number five, succession planning.
00:06:52.400 So the best way to build it into the culture so it doesn't
00:06:55.920 catch somebody, you know, off guard because the truth is if
00:06:58.680 somebody's actually writing code and being good, the last thing
00:07:02.260 you want to do is say, hey, let's talk about like, you know,
00:07:05.220 who should take over your role.
00:07:06.660 The way I think about it is as a business you should just build
00:07:09.920 succession planning into the way you operate.
00:07:12.760 So that means for you as a CEO, your marketing person,
00:07:15.660 whoever else you have on the team,
00:07:17.020 you should always ask yourself what happens if somebody has a
00:07:19.960 baby, gets injured, gets sick, whatever it is takes another job
00:07:24.540 and look, no harm no foul.
00:07:26.140 We just need to plan for this and ideally on a quarterly basis
00:07:29.340 you're kind of just reviewing that and saying,
00:07:30.780 you know what, marketing point if something happened for a month
00:07:33.420 we would just transition the load or we'd hire this
00:07:35.240 contracting company and then from a development point of view,
00:07:37.980 well, we would probably have to work with this contractor
00:07:40.640 that we met, so why don't we just put the documentation
00:07:43.980 in place so that we can transition that.
00:07:45.720 So just the idea of talking about succession planning,
00:07:48.660 not specifically for your developer or your dev team,
00:07:51.460 but just broadly speaking for your business,
00:07:53.260 it's gonna help you get the same result
00:07:56.100 without isolating an individual.
00:07:58.900 So very important, get everything documented.
00:08:01.900 Ensure that we always pass the bus test.
00:08:03.740 What happens if somebody gets hit by a bus?
00:08:05.600 and then that way you'll sleep better at night.
00:08:07.960 Number six, continuous integration, or what's called CI.
00:08:11.540 So essentially the concept is simple,
00:08:13.640 is anytime somebody submits code to the source repository,
00:08:17.280 you know, up in the cloud, it builds the code to the,
00:08:21.780 you know, it goes to staging first,
00:08:23.620 so everything it needs to actually like take the code,
00:08:25.680 build it, deploy it to your staging server,
00:08:27.660 then you ideally would go in there,
00:08:29.320 make sure the features are good, everything's fun,
00:08:31.900 and then you deploy it to production.
00:08:33.520 So same thing but what happens is it automates that process
00:08:37.220 so you know that just the fact that if you needed to scale up
00:08:41.320 your web servers or scale up your database infrastructure,
00:08:44.120 the continuous integration process is gonna keep track of
00:08:47.620 dependencies so you never feel hostage to even just the
00:08:52.020 infrastructure.
00:08:52.820 There's the code that runs on the servers but then there's
00:08:55.620 your server configuration for your different environments.
00:08:58.020 You know developers usually build on their local environment
00:09:01.220 then they push it to codes repository.
00:09:02.620 That pulls it into staging.
00:09:04.020 Staging is where you test stuff and then that gets pushed
00:09:06.460 out to production where your customers interact with it.
00:09:09.260 So having that automatically deployed,
00:09:12.020 it's what it's called continuous deployment,
00:09:14.360 will allow you to feel comfortable that not only is the
00:09:16.660 code kind of centralized and documented and well built
00:09:20.640 through the steps one to five but now all of a sudden the
00:09:23.380 server infrastructure and the configuration and just
00:09:25.740 deploying new changes is automated.
00:09:28.540 It's gonna make you feel super, it's an advanced thing.
00:09:32.480 So you're gonna be like, man, we got CI,
00:09:34.180 we got continuous deployments.
00:09:36.360 But the truth is, is if you haven't done one to five,
00:09:38.120 start there.
00:09:39.060 At some point, somebody on the team's gonna bring it up
00:09:41.120 because it's just a great best practice for you
00:09:43.600 to really mature your development process.
00:09:46.060 So quick recap, step number one,
00:09:48.100 cloud-based source repository.
00:09:50.560 Number two, centralize access control.
00:09:53.760 Step three, documentation reviews.
00:09:57.300 Number four, pay for code reviews.
00:09:59.840 Number five, succession planning.
00:10:02.040 Number six, continuous integration or what's called CI.
00:10:06.040 As I mentioned at the beginning I want to share with you the
00:10:08.180 weekly sync framework.
00:10:09.840 It's below in the description below this video.
00:10:12.180 You can click the link to download that for yourself.
00:10:14.380 I'm going to go over a bunch of things that I do every week
00:10:17.120 with my team but specifically things like the scorecard so you
00:10:20.560 know what aspects to measure on each core function of your
00:10:24.600 business, the customer headline so you can actually have a place
00:10:27.800 to bring forward some wins that your rest of your team may not
00:10:30.900 even be aware of and things that they're building and
00:10:32.900 changing and then also I'm going to encourage you to rate
00:10:36.340 every meeting so that every person feels like they have the
00:10:39.440 opportunity to voice their concern if they're on a meeting
00:10:42.580 that they shouldn't be on or if it's not adding 100% value
00:10:45.340 for them.
00:10:46.340 These are 30 to 45 minute incredibly valuable must do
00:10:49.720 meetings you can click the link below in the descriptions to
00:10:51.580 download your copy.
00:10:52.920 If you like this video be sure to click the like button below.
00:10:56.160 Subscribe to my channel and leave a comment.
00:10:59.060 I'd love to hear from you.
00:10:59.900 What are you doing in your dev process
00:11:01.600 to ensure that it's just humming and rocking?
00:11:04.060 I appreciate you watching this video
00:11:05.480 and I'll see you in the next one.
00:11:09.720 Yeah, do that again.
00:11:10.720 Yeah.