320. How To Survive As A Solo Developer
Read full transcript 16 segments
-
What do you do when you're the only What do you do when you're the only developer at a company? What are the developer at a company? What are the developer at a company? What are the tips and tricks for getting the most tips and tricks for getting the most tips and tricks for getting the most done while not making an absolute mess done while not making an absolute mess done while not making an absolute mess out of things? out of things? out of things? Solo development is almost entirely a Solo development is almost entirely a Solo development is almost entirely a different field than development on a different field than development on a different field than development on a team. So, let's talk about the things team. So, let's talk about the things team. So, let's talk about the things you can do to survive and thrive in this you can do to survive and thrive in this you can do to survive and thrive in this type of environment in today's episode type of environment in today's episode type of environment in today's episode of Dev Questions. >> Software development is more than just >> Software development is more than just writing code. So, let's talk about the writing code. So, let's talk about the writing code. So, let's talk about the rest of it. Specifically, let's talk rest of it. Specifically, let's talk rest of it. Specifically, let's talk about being a solo developer. Now, about being a solo developer. Now, about being a solo developer. Now, before we get into how to survive and before we get into how to survive and before we get into how to survive and thrive in this type of environment, I do thrive in this type of environment, I do thrive in this type of environment, I do want to acknowledge that being a solo want to acknowledge that being a solo want to acknowledge that being a solo developer can look different from developer can look different from developer can look different from situation to situation. It could be that situation to situation. It could be that situation to situation. It could be that you're building a you're building a you're building a um a um a um a a product on your own or a business on a product on your own or a business on a product on your own or a business on your own, or it could be that you're a your own, or it could be that you're a your own, or it could be that you're a solo consultant working for a customer solo consultant working for a customer solo consultant working for a customer that doesn't have a development that doesn't have a development that doesn't have a development department, or it could be that you've department, or it could be that you've department, or it could be that you've been hired to build custom software been hired to build custom software been hired to build custom software full-time for a company where you're the full-time for a company where you're the full-time for a company where you're the only developer. Whatever the case may only developer. Whatever the case may only developer. Whatever the case may be, and I've done all of these myself, be, and I've done all of these myself, be, and I've done all of these myself, there are some constants that can help there are some constants that can help there are some constants that can help you out. And just to be clear, this you out. And just to be clear, this you out. And just to be clear, this advice can actually help teams of any advice can actually help teams of any advice can actually help teams of any size, but it's going to be especially size, but it's going to be especially size, but it's going to be especially helpful for a solo developer.
-
helpful for a solo developer. helpful for a solo developer. All right, number one. This is probably All right, number one. This is probably All right, number one. This is probably the biggest one and the one that's going the biggest one and the one that's going the biggest one and the one that's going to take the most work to work through, to take the most work to work through, to take the most work to work through, and that is you can only support a and that is you can only support a and that is you can only support a limited amount of code. limited amount of code. limited amount of code. That's It's a hard thing to acknowledge, That's It's a hard thing to acknowledge, That's It's a hard thing to acknowledge, and often people don't agree. And that and often people don't agree. And that and often people don't agree. And that may be the developer themselves, or it may be the developer themselves, or it may be the developer themselves, or it may be their management. Um but either may be their management. Um but either may be their management. Um but either way, this gets a lot of pushback. But way, this gets a lot of pushback. But way, this gets a lot of pushback. But here's the reality. here's the reality. here's the reality. At some point, you run out of ability to At some point, you run out of ability to At some point, you run out of ability to keep building. keep building. keep building. And honestly, this this happens for a And honestly, this this happens for a And honestly, this this happens for a team of one or a team of 200. There's team of one or a team of 200. There's team of one or a team of 200. There's only so much code that you can support. only so much code that you can support. only so much code that you can support. Because when you write code, you don't Because when you write code, you don't Because when you write code, you don't just write code, complete it, and never just write code, complete it, and never just write code, complete it, and never touch it again. touch it again. touch it again. That almost never happens, and it really That almost never happens, and it really That almost never happens, and it really only happens for very, very specific only happens for very, very specific only happens for very, very specific situations. situations. situations. For the most part, For the most part, For the most part, you are fixing bugs, you are making you are fixing bugs, you are making you are fixing bugs, you are making changes to how the code works, you're changes to how the code works, you're changes to how the code works, you're adding new features, you are updating it adding new features, you are updating it adding new features, you are updating it to work with newer operating systems or to work with newer operating systems or to work with newer operating systems or newer network environments or changes in newer network environments or changes in newer network environments or changes in the way you're doing storage or the way you're doing storage or the way you're doing storage or something else.
-
something else. something else. These things happen a lot. And so, when These things happen a lot. And so, when These things happen a lot. And so, when you write code, you're you write code, you're you write code, you're by design adding in some support time to by design adding in some support time to by design adding in some support time to your day your day your day for the rest of the time until that code for the rest of the time until that code for the rest of the time until that code goes away. goes away. goes away. So, it's kind of like So, it's kind of like So, it's kind of like building a building. I worked for a a building a building. I worked for a a building a building. I worked for a a a college once, and they they built this a college once, and they they built this a college once, and they they built this brand new, very large building. And brand new, very large building. And brand new, very large building. And during the discovery process of how much during the discovery process of how much during the discovery process of how much it's going to cost and how much money it's going to cost and how much money it's going to cost and how much money money we need to raise and and all that money we need to raise and and all that money we need to raise and and all that thing that work, one of the things they thing that work, one of the things they thing that work, one of the things they found that was a consistent across a found that was a consistent across a found that was a consistent across a number of different organizations that number of different organizations that number of different organizations that had built large buildings like this was had built large buildings like this was had built large buildings like this was that you need to set aside a significant that you need to set aside a significant that you need to set aside a significant amount of money for every year for amount of money for every year for amount of money for every year for maintenance. maintenance. maintenance. And so, their suggestion was at least And so, their suggestion was at least And so, their suggestion was at least put 10% of the cost of the building put 10% of the cost of the building put 10% of the cost of the building aside aside aside and make sure that's for maintenance. and make sure that's for maintenance. and make sure that's for maintenance. And that should be building interest or And that should be building interest or And that should be building interest or some other way to put money in and some other way to put money in and some other way to put money in and continue that fund because maintenance continue that fund because maintenance continue that fund because maintenance it the business the building isn't free, it the business the building isn't free, it the business the building isn't free, right? You build this brand new right? You build this brand new right? You build this brand new building. Think of your house. You build building. Think of your house. You build building. Think of your house. You build a brand new house. It doesn't matter if a brand new house. It doesn't matter if a brand new house. It doesn't matter if it's brand new. It something's going to it's brand new. It something's going to it's brand new. It something's going to break. Something's going to go wrong.
-
break. Something's going to go wrong. break. Something's going to go wrong. You're going to need to do some type of You're going to need to do some type of You're going to need to do some type of work. I just put a whole bunch of money work. I just put a whole bunch of money work. I just put a whole bunch of money in my house because I had a septic pipe in my house because I had a septic pipe in my house because I had a septic pipe break. So, I had a septic pipe replaced break. So, I had a septic pipe replaced break. So, I had a septic pipe replaced and the digging and the all this stuff. and the digging and the all this stuff. and the digging and the all this stuff. This is normal home ownership stuff. This is normal home ownership stuff. This is normal home ownership stuff. Well, the same is true for code. Well, the same is true for code. Well, the same is true for code. Things are going to break. Things are Things are going to break. Things are Things are going to break. Things are going to are going to be maintained. And going to are going to be maintained. And going to are going to be maintained. And so, you need to put aside a budget of so, you need to put aside a budget of so, you need to put aside a budget of time to maintain that thing. Which means time to maintain that thing. Which means time to maintain that thing. Which means at some point the entirety of your time, at some point the entirety of your time, at some point the entirety of your time, because it is finite, because it is finite, because it is finite, the entirety of your time will be the entirety of your time will be the entirety of your time will be dedicated to maintenance, which means dedicated to maintenance, which means dedicated to maintenance, which means nothing new, in theory, can be built. nothing new, in theory, can be built. nothing new, in theory, can be built. Now, companies don't like to admit this, Now, companies don't like to admit this, Now, companies don't like to admit this, whether it's a building or a piece of whether it's a building or a piece of whether it's a building or a piece of software. They don't like to admit that software. They don't like to admit that software. They don't like to admit that there is any cost beyond the upfront there is any cost beyond the upfront there is any cost beyond the upfront cost. cost. cost. They think that when they when they buy They think that when they when they buy They think that when they when they buy the initial thing, that should be it.
-
the initial thing, that should be it. the initial thing, that should be it. But, that's not how life works. But, that's not how life works. But, that's not how life works. So, So, So, when you start building code and you when you start building code and you when you start building code and you write this really cool application that write this really cool application that write this really cool application that supports this department. supports this department. supports this department. Great. That's awesome. Great. That's awesome. Great. That's awesome. But, what you're doing then is you are But, what you're doing then is you are But, what you're doing then is you are saying, "I now have 5% less time in my saying, "I now have 5% less time in my saying, "I now have 5% less time in my week because of maintaining that one week because of maintaining that one week because of maintaining that one thing." thing." thing." Which means if I do that Which means if I do that Which means if I do that 20 times, I'm out of I'm out of work. 20 times, I'm out of I'm out of work. 20 times, I'm out of I'm out of work. Like, I I have no more ability to create Like, I I have no more ability to create Like, I I have no more ability to create new things. new things. new things. This is, and we'll probably talk about This is, and we'll probably talk about This is, and we'll probably talk about in a separate week, but this is in a separate week, but this is in a separate week, but this is opportunity cost. opportunity cost. opportunity cost. You've said yes to one thing, which You've said yes to one thing, which You've said yes to one thing, which means you're actually saying no to means you're actually saying no to means you're actually saying no to something else. something else. something else. And I know we've all been there where And I know we've all been there where And I know we've all been there where our bosses just don't understand that our bosses just don't understand that our bosses just don't understand that and they say, "Well, I want you to say and they say, "Well, I want you to say and they say, "Well, I want you to say yes to this, yes to this, yes to this, but also that." but also that." but also that." And we'll talk more about how to And we'll talk more about how to And we'll talk more about how to maintain that and manage that, you know, maintain that and manage that, you know, maintain that and manage that, you know, in other points. But, it's really in other points. But, it's really in other points. But, it's really important that you understand important that you understand important that you understand that there's only so much code that you that there's only so much code that you that there's only so much code that you can support. And yes, I know there's AI can support. And yes, I know there's AI can support. And yes, I know there's AI now and they can do wonderful things.
-
now and they can do wonderful things. now and they can do wonderful things. That doesn't change the fact. That doesn't change the fact. That doesn't change the fact. Now, yes, AI might be able to make you Now, yes, AI might be able to make you Now, yes, AI might be able to make you faster as a developer if you use it faster as a developer if you use it faster as a developer if you use it correctly. correctly. correctly. But, that doesn't mean that you're just But, that doesn't mean that you're just But, that doesn't mean that you're just have unlimited maintenance now. have unlimited maintenance now. have unlimited maintenance now. It just means that you might have a It just means that you might have a It just means that you might have a slightly bigger pool to work with for slightly bigger pool to work with for slightly bigger pool to work with for maintaining. So, you might be able to do maintaining. So, you might be able to do maintaining. So, you might be able to do a few more projects before you're out of a few more projects before you're out of a few more projects before you're out of time again. time again. time again. So, what's the conclusion here? Well, So, what's the conclusion here? Well, So, what's the conclusion here? Well, don't just build everything you can don't just build everything you can don't just build everything you can build. build. build. Build things that are the most Build things that are the most Build things that are the most important. important. important. And [snorts] you know what? Sometimes And [snorts] you know what? Sometimes And [snorts] you know what? Sometimes the best solution is to say, "Let's not the best solution is to say, "Let's not the best solution is to say, "Let's not build something. Let's buy something." build something. Let's buy something." build something. Let's buy something." I run my own company. I write a lot of I run my own company. I write a lot of I run my own company. I write a lot of the software that we run we use. the software that we run we use. the software that we run we use. And that's something that's important to And that's something that's important to And that's something that's important to me as well because I know that the more me as well because I know that the more me as well because I know that the more code that I have written, the more time code that I have written, the more time code that I have written, the more time I spend maintaining that code, the less I spend maintaining that code, the less I spend maintaining that code, the less time I spend teaching. time I spend teaching. time I spend teaching. And my primary goal is to be teaching, And my primary goal is to be teaching, And my primary goal is to be teaching, which means I am very limited in how which means I am very limited in how which means I am very limited in how much code I can write. In fact, I've had much code I can write. In fact, I've had much code I can write. In fact, I've had my team tell me for years now, "We want my team tell me for years now, "We want my team tell me for years now, "We want this. We want that." I would love to this. We want that." I would love to this. We want that." I would love to build these things. I don't have the build these things. I don't have the build these things. I don't have the time.
-
time. time. I don't have the time to build it I don't have the time to build it I don't have the time to build it initially, but more more than that, I initially, but more more than that, I initially, but more more than that, I don't have the time to maintain it. don't have the time to maintain it. don't have the time to maintain it. And that's why we have a mobile app for And that's why we have a mobile app for And that's why we have a mobile app for finally for our um our students who finally for our um our students who finally for our um our students who purchase courses. So, if you purchase a purchase courses. So, if you purchase a purchase courses. So, if you purchase a course, you can get the mobile app on course, you can get the mobile app on course, you can get the mobile app on iOS or Android. But, I didn't write iOS or Android. But, I didn't write iOS or Android. But, I didn't write that. that. that. I had somebody else that wrote that, and I had somebody else that wrote that, and I had somebody else that wrote that, and then I just pay for it. I pay annually then I just pay for it. I pay annually then I just pay for it. I pay annually for it. Because it's easier for me to to for it. Because it's easier for me to to for it. Because it's easier for me to to pay for that and say, "You know what? pay for that and say, "You know what? pay for that and say, "You know what? This is cheaper than me spending time This is cheaper than me spending time This is cheaper than me spending time maintaining it." maintaining it." maintaining it." So, you got to think about buy versus So, you got to think about buy versus So, you got to think about buy versus built. built. built. Okay? So, number one, it's really Okay? So, number one, it's really Okay? So, number one, it's really important to understand this. You only important to understand this. You only important to understand this. You only can support a limited amount of code. can support a limited amount of code. can support a limited amount of code. Number two, Number two, Number two, automate everything, which kind of feels automate everything, which kind of feels automate everything, which kind of feels like it goes against number one, but it like it goes against number one, but it like it goes against number one, but it doesn't. So, you need to look at your doesn't. So, you need to look at your doesn't. So, you need to look at your entire job and say, "What can I entire job and say, "What can I entire job and say, "What can I automate?" And try to automate automate?" And try to automate automate?" And try to automate everything you can.
-
everything you can. everything you can. So, let's look at this from a purely So, let's look at this from a purely So, let's look at this from a purely software standpoint. software standpoint. software standpoint. When you write software, let's say you When you write software, let's say you When you write software, let's say you write Maybe you're writing a desktop app write Maybe you're writing a desktop app write Maybe you're writing a desktop app for a company. for a company. for a company. When you write that code, maybe you make When you write that code, maybe you make When you write that code, maybe you make a change to it. What happens then? a change to it. What happens then? a change to it. What happens then? In a lot of companies, what happens is In a lot of companies, what happens is In a lot of companies, what happens is you go to Visual Studio, you say you go to Visual Studio, you say you go to Visual Studio, you say publish, and then you publish to an publish, and then you publish to an publish, and then you publish to an executable, and then you put the executable, and then you put the executable, and then you put the executable on in a place in the drive, executable on in a place in the drive, executable on in a place in the drive, or maybe you use a MSI, and then you you or maybe you use a MSI, and then you you or maybe you use a MSI, and then you you push that out the network. It's a lot of push that out the network. It's a lot of push that out the network. It's a lot of manual steps. manual steps. manual steps. Automate that. Continuous integration, Automate that. Continuous integration, Automate that. Continuous integration, continuous deployment. continuous deployment. continuous deployment. It should be that when you write that It should be that when you write that It should be that when you write that code and say, "Yes, let's commit that to code and say, "Yes, let's commit that to code and say, "Yes, let's commit that to our repository into the production our repository into the production our repository into the production branch branch branch or into the production, you know, we or into the production, you know, we or into the production, you know, we mark it as production, whatever you want mark it as production, whatever you want mark it as production, whatever you want to do as far as how you designate it, to do as far as how you designate it, to do as far as how you designate it, but when you say this goes to but when you say this goes to but when you say this goes to production, production, production, automation should take it from there automation should take it from there automation should take it from there until it gets all the way into until it gets all the way into until it gets all the way into production as much as possible. production as much as possible. production as much as possible. Automate as much of your job as Automate as much of your job as Automate as much of your job as possible. That way, it's always possible. That way, it's always possible. That way, it's always consistent. That way, you're not trying consistent. That way, you're not trying consistent. That way, you're not trying to remember and missing steps every once to remember and missing steps every once to remember and missing steps every once in a while, which causes more support in a while, which causes more support in a while, which causes more support issues. That way, you make sure that you issues. That way, you make sure that you issues. That way, you make sure that you are not doing any more grunt work, any are not doing any more grunt work, any are not doing any more grunt work, any more repetitive work than past than more repetitive work than past than more repetitive work than past than humanly possible, so that you have more humanly possible, so that you have more humanly possible, so that you have more time time time to support code.
-
to support code. to support code. Because the more time you have, the more Because the more time you have, the more Because the more time you have, the more code you can support. code you can support. code you can support. Number three, Number three, Number three, write simpler code. write simpler code. write simpler code. Now, as a senior developer, this is Now, as a senior developer, this is Now, as a senior developer, this is something that you should be doing something that you should be doing something that you should be doing anyway. But, anyway. But, anyway. But, this also means writing simpler code this also means writing simpler code this also means writing simpler code sometimes means not doing all the cool sometimes means not doing all the cool sometimes means not doing all the cool stuff. stuff. stuff. Uh Uh Uh >> [snorts] >> [snorts] >> [snorts] >> for a while I worked for a company where >> for a while I worked for a company where >> for a while I worked for a company where we were um rewriting our UI, which was we were um rewriting our UI, which was we were um rewriting our UI, which was an ASP.NET um an ASP.NET um an ASP.NET um uh just ASP pages. Um that's ASP or it uh just ASP pages. Um that's ASP or it uh just ASP pages. Um that's ASP or it web forms. It's web forms. Um I didn't web forms. It's web forms. Um I didn't web forms. It's web forms. Um I didn't spend a lot of time in them. Um but, we spend a lot of time in them. Um but, we spend a lot of time in them. Um but, we were rewriting those into Angular. And were rewriting those into Angular. And were rewriting those into Angular. And Angular can do a lot of cool things. Angular can do a lot of cool things. Angular can do a lot of cool things. But, instead of doing all the cool But, instead of doing all the cool But, instead of doing all the cool things you could do, I really trimmed it things you could do, I really trimmed it things you could do, I really trimmed it down to just a few things. down to just a few things. down to just a few things. Because it was easier to maintain. Because it was easier to maintain. Because it was easier to maintain. Instead of having things all over the Instead of having things all over the Instead of having things all over the place, or instead of, you know, having place, or instead of, you know, having place, or instead of, you know, having this complex setup that's, you know, this complex setup that's, you know, this complex setup that's, you know, {quote} unquote right, {quote} unquote right, {quote} unquote right, I made a simpler setup because it was I made a simpler setup because it was I made a simpler setup because it was faster to maintain.
-
faster to maintain. faster to maintain. And because it was faster to maintain, And because it was faster to maintain, And because it was faster to maintain, it was easier to maintain, we could it was easier to maintain, we could it was easier to maintain, we could maintain more code. maintain more code. maintain more code. So, write simpler code. Just because you So, write simpler code. Just because you So, write simpler code. Just because you can, doesn't mean you should. can, doesn't mean you should. can, doesn't mean you should. Okay? Just because you can write Okay? Just because you can write Okay? Just because you can write something complicated, or just because something complicated, or just because something complicated, or just because you can have all these different layers you can have all these different layers you can have all these different layers to make sure that everything has its own to make sure that everything has its own to make sure that everything has its own specific uh delineation, there's specific uh delineation, there's specific uh delineation, there's separation of concerns everywhere, separation of concerns everywhere, separation of concerns everywhere, doesn't mean you always should. doesn't mean you always should. doesn't mean you always should. Number four, set clear expectations. Number four, set clear expectations. Number four, set clear expectations. When you're talking to your boss, when When you're talking to your boss, when When you're talking to your boss, when you're talking to the people you're you're talking to the people you're you're talking to the people you're building applications for, you need to building applications for, you need to building applications for, you need to set clear expectations. set clear expectations. set clear expectations. You need to be clear about what you can You need to be clear about what you can You need to be clear about what you can do, what you can't do, and what the do, what you can't do, and what the do, what you can't do, and what the costs associated are. costs associated are. costs associated are. When you're working as a solo developer When you're working as a solo developer When you're working as a solo developer at a company where you're a full-time at a company where you're a full-time at a company where you're a full-time salary employee, often people think that salary employee, often people think that salary employee, often people think that your time is free. your time is free. your time is free. And it it's not. Refer back to point And it it's not. Refer back to point And it it's not. Refer back to point one. You can only support a limited one. You can only support a limited one. You can only support a limited amount of code. So, when you are talking amount of code. So, when you are talking amount of code. So, when you are talking about the cost of something, you should about the cost of something, you should about the cost of something, you should be talking including the opportunity be talking including the opportunity be talking including the opportunity costs. Hey, if I build this marketing costs. Hey, if I build this marketing costs. Hey, if I build this marketing app, then I won't have time to build app, then I won't have time to build app, then I won't have time to build this sales app.
-
this sales app. this sales app. Hey, if I if I build this marketing app, Hey, if I if I build this marketing app, Hey, if I if I build this marketing app, I'm not going to have time to maintain I'm not going to have time to maintain I'm not going to have time to maintain or fix the bugs in this other app. or fix the bugs in this other app. or fix the bugs in this other app. Okay? So, you're setting up clear Okay? So, you're setting up clear Okay? So, you're setting up clear expectations about what's the priority expectations about what's the priority expectations about what's the priority here. Because that's the priority, here. Because that's the priority, here. Because that's the priority, that's what I'll do. that's what I'll do. that's what I'll do. But here's what you're going to lose. But here's what you're going to lose. But here's what you're going to lose. Here's the costs associated. Here's the costs associated. Here's the costs associated. So, set clear expectations. So, set clear expectations. So, set clear expectations. Set clear expectations on your time. Set clear expectations on your time. Set clear expectations on your time. You know, it if a project is going to You know, it if a project is going to You know, it if a project is going to take you 100 hours, you should not quote take you 100 hours, you should not quote take you 100 hours, you should not quote 2 weeks. 2 weeks. 2 weeks. You may say, "Well, I can push a little You may say, "Well, I can push a little You may say, "Well, I can push a little bit extra. You know, 10 hours extra a bit extra. You know, 10 hours extra a bit extra. You know, 10 hours extra a week, 50 hours a week, 2 weeks." week, 50 hours a week, 2 weeks." week, 50 hours a week, 2 weeks." No, don't do that. Don't do that. Set No, don't do that. Don't do that. Set No, don't do that. Don't do that. Set clear expectations and say, "This is clear expectations and say, "This is clear expectations and say, "This is going to take 100 working hours." going to take 100 working hours." going to take 100 working hours." Every meeting I have takes away from Every meeting I have takes away from Every meeting I have takes away from that. that. that. Every time I get pulled aside to do a a Every time I get pulled aside to do a a Every time I get pulled aside to do a a bug fix bug fix bug fix takes away from that. And I only have at takes away from that. And I only have at takes away from that. And I only have at most 40 hours a week to start from.
-
most 40 hours a week to start from. most 40 hours a week to start from. So, that means 2 and 1/2 weeks even So, that means 2 and 1/2 weeks even So, that means 2 and 1/2 weeks even isn't realistic because I have isn't realistic because I have isn't realistic because I have five meetings a week, you know, an hour five meetings a week, you know, an hour five meetings a week, you know, an hour each meeting. So, that's 5 hours where each meeting. So, that's 5 hours where each meeting. So, that's 5 hours where I'm not doing this. And I have to I'm not doing this. And I have to I'm not doing this. And I have to respond to email and and talk to respond to email and and talk to respond to email and and talk to coworkers and and all these other things coworkers and and all these other things coworkers and and all these other things they're going to take another 10 hours a they're going to take another 10 hours a they're going to take another 10 hours a week. So, now I'm down to 25 hours a week. So, now I'm down to 25 hours a week. So, now I'm down to 25 hours a week. That means 4 weeks to do this week. That means 4 weeks to do this week. That means 4 weeks to do this project. And then if you pull me aside project. And then if you pull me aside project. And then if you pull me aside to do something else, that takes away. to do something else, that takes away. to do something else, that takes away. If you're clear about those expectations If you're clear about those expectations If you're clear about those expectations and clear about what it's going to cost, and clear about what it's going to cost, and clear about what it's going to cost, then it's clearer when they pull you then it's clearer when they pull you then it's clearer when they pull you aside for a meeting that they're saying aside for a meeting that they're saying aside for a meeting that they're saying yes to the meeting means no to this yes to the meeting means no to this yes to the meeting means no to this project. project. project. Doesn't mean that the project goes away, Doesn't mean that the project goes away, Doesn't mean that the project goes away, it just means that project gets pushed it just means that project gets pushed it just means that project gets pushed off because of the meeting. off because of the meeting. off because of the meeting. So, setting clear expectations will So, setting clear expectations will So, setting clear expectations will really be helpful. really be helpful. really be helpful. Number five, be transparent about what Number five, be transparent about what Number five, be transparent about what you do. you do. you do. Too often, Too often, Too often, people think that software developers people think that software developers people think that software developers are this black box, right? Where the are this black box, right? Where the are this black box, right? Where the requirements go in and application comes requirements go in and application comes requirements go in and application comes out. And maybe don't don't bug the out. And maybe don't don't bug the out. And maybe don't don't bug the developer or you know, kind of just poke developer or you know, kind of just poke developer or you know, kind of just poke them with a stick and hope that things, them with a stick and hope that things, them with a stick and hope that things, you know, you know, you know, come out that you want to come out. Um, come out that you want to come out. Um, come out that you want to come out. Um, don't do that. Make sure that people don't do that. Make sure that people don't do that. Make sure that people understand what you do and how you do understand what you do and how you do understand what you do and how you do it. Now, obviously you're not going to it. Now, obviously you're not going to it. Now, obviously you're not going to be teaching them Well, maybe not, but be teaching them Well, maybe not, but be teaching them Well, maybe not, but you probably won't be teaching them you probably won't be teaching them you probably won't be teaching them software development. You probably won't software development. You probably won't software development. You probably won't be teaching them all the parts of the be teaching them all the parts of the be teaching them all the parts of the process you go through. But, you should
-
process you go through. But, you should process you go through. But, you should be making sure they know as much as be making sure they know as much as be making sure they know as much as possible about why you do what you do, possible about why you do what you do, possible about why you do what you do, about why it takes the time that it about why it takes the time that it about why it takes the time that it takes, about how when you give them a a takes, about how when you give them a a takes, about how when you give them a a demo UI, that that's not just ready for demo UI, that that's not just ready for demo UI, that that's not just ready for production. Like, and this is also production. Like, and this is also production. Like, and this is also where, side note, demo UIs should not where, side note, demo UIs should not where, side note, demo UIs should not look like they're actually usable. They look like they're actually usable. They look like they're actually usable. They should be If they're not actually drawn should be If they're not actually drawn should be If they're not actually drawn out on something, you should get a tool out on something, you should get a tool out on something, you should get a tool that makes it look like a sketch. Don't that makes it look like a sketch. Don't that makes it look like a sketch. Don't make it a real application. Um, make it a real application. Um, make it a real application. Um, you know, maybe even easier, um, the you know, maybe even easier, um, the you know, maybe even easier, um, the fact is people will misunderstand that. fact is people will misunderstand that. fact is people will misunderstand that. You want to be transparent about what You want to be transparent about what You want to be transparent about what you do, not be confusing about what you you do, not be confusing about what you you do, not be confusing about what you do. do. do. You need people to understand why it's You need people to understand why it's You need people to understand why it's going to take extra time when they ask going to take extra time when they ask going to take extra time when they ask for something later. You need to be be for something later. You need to be be for something later. You need to be be about how a change now near the end of about how a change now near the end of about how a change now near the end of the process really changes the entire the process really changes the entire the process really changes the entire application, not just a little tweak. application, not just a little tweak. application, not just a little tweak. Be transparent about what you do because Be transparent about what you do because Be transparent about what you do because they don't know what you do. And so when they don't know what you do. And so when they don't know what you do. And so when you come back with something they don't you come back with something they don't you come back with something they don't expect, like "Hey, it's just a little expect, like "Hey, it's just a little expect, like "Hey, it's just a little project. Just a little project." And you project. Just a little project." And you project. Just a little project." And you say, "That's 3 months of work."
-
say, "That's 3 months of work." say, "That's 3 months of work." They don't just feel like you're pushed They don't just feel like you're pushed They don't just feel like you're pushed them off, they feel like you're being them off, they feel like you're being them off, they feel like you're being honest about the fact that it's a lot honest about the fact that it's a lot honest about the fact that it's a lot bigger than I expected. And tell them bigger than I expected. And tell them bigger than I expected. And tell them why. why. why. Tell them why it's not just as simple as Tell them why it's not just as simple as Tell them why it's not just as simple as a little UI here and or there and all of a little UI here and or there and all of a little UI here and or there and all of a sudden the application's done. a sudden the application's done. a sudden the application's done. Okay? So, make help them understand what Okay? So, make help them understand what Okay? So, make help them understand what you do because if you're a solo you do because if you're a solo you do because if you're a solo developer, developer, developer, there's probably no one at the company there's probably no one at the company there's probably no one at the company that knows exactly what you do or how that knows exactly what you do or how that knows exactly what you do or how you do it. And so if they don't know you do it. And so if they don't know you do it. And so if they don't know what you do, what you do, what you do, then they're not going to have good then they're not going to have good then they're not going to have good expectations about what you should be expectations about what you should be expectations about what you should be doing or if you're even doing or not. doing or if you're even doing or not. doing or if you're even doing or not. So, be transparent. So, be transparent. So, be transparent. Number six, and I think this is, you Number six, and I think this is, you Number six, and I think this is, you know, life advice for everybody, but know, life advice for everybody, but know, life advice for everybody, but really applies here as well. So, let's really applies here as well. So, let's really applies here as well. So, let's let's make sure we're clear about it. let's make sure we're clear about it. let's make sure we're clear about it. Don't be a jerk. Don't be a jerk. Don't be a jerk. There you go. That's There you go. That's There you go. That's If you had to have one piece of life If you had to have one piece of life If you had to have one piece of life advice for everything, just don't be a advice for everything, just don't be a advice for everything, just don't be a jerk. But in this jerk. But in this jerk. But in this place specifically, it's really place specifically, it's really place specifically, it's really important because you have the important because you have the important because you have the opportunity to be a jerk.
-
opportunity to be a jerk. opportunity to be a jerk. When you're the sole developer in a When you're the sole developer in a When you're the sole developer in a company, company, company, sometimes the company feels like you sometimes the company feels like you sometimes the company feels like you kind of have a stranglehold on them kind of have a stranglehold on them kind of have a stranglehold on them because if you left, like what would because if you left, like what would because if you left, like what would happen? Like things would fall apart. Oh happen? Like things would fall apart. Oh happen? Like things would fall apart. Oh my goodness, we wouldn't know what to do my goodness, we wouldn't know what to do my goodness, we wouldn't know what to do because we don't know what you do. because we don't know what you do. because we don't know what you do. So, you have the opportunity to be that So, you have the opportunity to be that So, you have the opportunity to be that jerk who, you know, everybody kind of jerk who, you know, everybody kind of jerk who, you know, everybody kind of hates, but you have to put up with hates, but you have to put up with hates, but you have to put up with because because because you have no other choice. Don't be that you have no other choice. Don't be that you have no other choice. Don't be that person. person. person. Because that leads to resentment, not to Because that leads to resentment, not to Because that leads to resentment, not to working together as a team member. working together as a team member. working together as a team member. That leads to them trying to figure out That leads to them trying to figure out That leads to them trying to figure out how to get rid of you instead of being how to get rid of you instead of being how to get rid of you instead of being thrilled that you're there. thrilled that you're there. thrilled that you're there. Okay? Don't be a jerk. It's going to Okay? Don't be a jerk. It's going to Okay? Don't be a jerk. It's going to make your life easier. If you're a make your life easier. If you're a make your life easier. If you're a consultant, it means you probably get consultant, it means you probably get consultant, it means you probably get called back for the next job, right? If called back for the next job, right? If called back for the next job, right? If if you are a full-time employee, if you are a full-time employee, if you are a full-time employee, maybe you you miss out on the layoffs, maybe you you miss out on the layoffs, maybe you you miss out on the layoffs, right? Like right? Like right? Like there's a really there's a really there's a really it's important to understand that it's important to understand that it's important to understand that just because you're a software developer just because you're a software developer just because you're a software developer doesn't give you a license to doesn't give you a license to doesn't give you a license to be a bad person. Okay? Don't be a jerk.
-
be a bad person. Okay? Don't be a jerk. be a bad person. Okay? Don't be a jerk. Being a solo developer can be a great Being a solo developer can be a great Being a solo developer can be a great job. I I have loved it through my job. I I have loved it through my job. I I have loved it through my career. I like I said, I've done it a career. I like I said, I've done it a career. I like I said, I've done it a number of different ways and number of different ways and number of different ways and it's a lot of fun. But it's you can also it's a lot of fun. But it's you can also it's a lot of fun. But it's you can also make a mess out of it, okay? Use these make a mess out of it, okay? Use these make a mess out of it, okay? Use these tips to survive and thrive in the role tips to survive and thrive in the role tips to survive and thrive in the role of software developer. of software developer. of software developer. Thanks for listening. As always, I am Thanks for listening. As always, I am Thanks for listening. As always, I am Tim Corey.
Summary
This episode of Dev Questions focuses on the unique challenges and strategies for solo developers. It highlights that software development is more than just coding and emphasizes the crucial takeaway that a single developer can only support a limited amount of code. The practical conclusion is to acknowledge this limitation and manage scope to effectively survive and thrive.