Detailed Notes
This Building Better Developers podcast episode focuses on a crucial and often tricky aspect of the developer journey—pricing and estimation. As developers progress in their careers, they eventually move beyond short-term tasks and need to estimate project-level work. This includes their own time and the time of other team members, system requirements, and environmental needs. Understanding how to accurately price and estimate a project is vital to ensuring both the success of the project and a healthy client relationship.
Read more ... https://develpreneur.com/estimation-essentials-how-to-nail-pricing-for-development-projects
Stay Connected: Join the Developreneur Community
We invite you to join our community and share your coding journey with us. Whether you’re a seasoned developer or just starting, there’s always room to learn and grow together. Contact us at [email protected] with your questions, feedback, or suggestions for future episodes. Together, let’s continue exploring the exciting world of software development.
Additional Resources
* https://develpreneur.com/ * https://school.develpreneur.com * https://www.youtube.com/channel/UCZOuFN_LhczvGyT2KSItH_g/featured
Follow- us on:
* https://facebook.com/Develpreneur * https://twitter.com/develpreneur * http://linkedin.com/develpreneur
Transcript Text
[Music] to howdy everybody we are back um I don't know why I always throw my hands up like that I just do well because right now not on the podcast side so uh let's see so thinking about this podcast now one of the things did you see the note I put out in slack I did and I'm I sort of like that but one of the things I'm thinking about just BEC which so maybe that's like the next episode another one was I thinking about talking through pricing pricing a project is actually like looking at something from a and sort of estimating because this is it was something that's actually a question I got in part of of a discussion I had earlier today but it's how do you figure out what it is you're putting together if you're putting together software which I think is a developer thing that we tend to forget because we just like throw stuff out on we've got a development machine sometimes it is Way Beyond what anybody else has got and then we're like well this works great on my machine and then you put it somewhere else and it's like you know put it on a little tiny AC you know ec2 thing and it doesn't even run and you're like wait a minute it's it's runs great on my machine so there's it's the the hardware side and then also the like what how do you figure out what you're going to put into if you have to estimate a project and you don't have you know necessarily all the requirements and stuff like that or like talk a little bit about how we do that and maybe some ways that we can protect ourselves that's what I was thinking and and then I I do think maybe the next one we get into is we just say like let's talk a little bit about teamwork and how do you move stuff forward in that advocating versus arguing type of an of an approach and how do you make that work because it is I think a challenge that you run into particularly when you start getting to like a senior or if you're managing a team or something like that yeah I like that especially with the arguing and the augmenting especially from testing because when you it it that kind of gets into you know the augmenting is you want the best project right you want the best practices you want a quality product but that's not always the same mentality when you're just turning out code or trying to meet demands and there is a actually that's probably a good place to go too because there is definitely a um a level of reality that's in that as well because there's some that's again something I was talking about earlier today with some people I'm like well this is the ideal but the ideal you never get basically or almost never because you you don't have unlimited time unlimited resources and all that stuff you have to you know figure out the best you can do with what you've got so all right we'll start with that we'll start with the whole estimating in general and we will work our way from there and I'm GNA because let's see make sure that I've got this on do not disturb just to be sure and make sure that I don't get hit with at this time so here we go hello and welcome back we are continuing our season of the developer Journey this is developer ner this is building better developers I am Rob Broadhead one of the founders of developer ner and a founder of RB Consulting where we take all of the nastiness of technology and turn it into a nice pretty little you know fuzzy little thing with a bow on top through integration uh integration simplification automation all those shuns that you need so you don't have to shun your technology uh I just came up with fly so I apologize if that was like too cringy but that's one of the things that we do is that we basically find a way to help you help yourself with the the technology you have whether that is building something custom or using tools that are out there such as the kinds of tools that we do talk about very often here on developing or in a good thing bad thing World um let's see what is a good good and a bad thing that has happened today so bad thing this is this is one of those things that like sticks in my craw is I got a I got a statement from an account and it's one of these things it's like a you know loan credit card kinds of things and it's one of these where you're paying and if you pay extra at the if you pay at the wrong time they essentially add it on to instead of working with whatever your monthly amount is that you're supposed to pay you know say You're supposed to pay $10 a month and so you send $10 in but they don't put it on the right date so they just say oh well you just paid extra on the prior month and then they end up whacking you the next month with the late fee it's like well wait a minute that's not how it went so the bad news is I get one of those it's like oh come on it hit on that day I'm looking at all this stuff why doesn't it add up I with that I'll give the good news just so I can keep that concise is that they're like you know what you're right this shouldn't have happened this way we'll we'll wave your fees we'll take care of it and all that kind of stuff and I was just like okay cool okay cool on the other side of the internet is Michael let you go ahead and introduce yourself and uh how's your day gone in the or last couple days gone in the good and the bad sense hey everyone my name is Michael Mage I'm one of the founders of developer n building better developers I'm also the founder of Invision QA where we help mid to small businesses conition help you kind of walk through the your current software stack make sure it's working for you and if it's not we help you build or find the systems you need to make your business run smoother and improve your daily processes good and bad uh good getting real close to the end of a current project with a vendor and I'm really excited for the next phase uh and things are going well on the bad side similar to you uh except slightly different I was reconciling uh my ledgers and found out I had a couple weird charges on a debit card well come to find out Banks don't like to reconcile and reimburse you when your debit cards get hacked what's annoying is the freaking debit card has been sitting in my office this whole time not sure how they got this one uh but similar thing happened a week after I opened the account immediately I started getting unauthorized charges on the account didn't buy anything so uh finally got that reconciled got new cards again everything's happy again but that's just a pain in the butt because if you get hacked you have to go find oh what are all my auto pays and get all that reconciled again the bank's response get a credit card and my response to that is are you paying for my fees so this episode what we want to get into is sort of along those same lines is pricing and estimating there's two things that we get into as we get further into when we get to a certain point as developers we have to we look at project project level stuff we're not estimating just like what we're doing in the next week or two it's something that's a little bit more complicated because we end up in a situation we're trying to estimate for our employer or for our customer not only our work but the work of others and what is the system or the environment that's going to be needed and then maybe even uh along with all this like what is the uh what's the overall team structure kind of look like and all of this that without maybe necessarily having all of the requirements that we need particularly now when we go into you know go into like an agile kind of world where you're you're starting out you've got you've got requirements if you don't back up go get requirements you need to have some level requirements before you start or else you just it's a recipe for disaster you got to know where you are to some extent and have at least an idea of where you're going otherwise you're spinning your wheels so if You' got some level but you may not have all of them and the whole idea of agile is that yes we may end up changing course somewhere along the way and so if we do so then what the heck is that going to mean to dates and costs and estimates and the time that's involved the uh the people that are involved the you all of that kind of good stuff so with all of these unknowns where do you go with this and the way to do this is I found and this is just my Approach there are a lot of different approaches do it I found that you sort of do it in a turn it into like groupings or buckets or things like that and so I can take if I'm looking at a project I can take pieces of it and I can give a rough estimate because I don't think anybody's going to hold you to hopefully they're not going to hold you to a specific estimate on something when you don't have all the details now depending on how much time you've spent Gathering requirements and things like that you do need to like you need to get better than some huge ballpark you can't say this project is going to cost between one and four billion dollars when you've spent some time Gathering requirements you're G to have to like narrow that sucker down now one of the ways that I found that is the probably the easiest way to do it because it simplifies the math and gets you away from getting too deep in the details is start with what is the scope of what you're building it's from the software side what is the scope of what you're building roughly what kind of a team are you thinking you're going to need to get that done in the time frame required so if you've got a project that's going to take you don't have to you know you can probably guesstimate even like this project is going to take 5,000 man hours okay 5,000 man hours and you may be looking at it well it's going to be a thousand is a junior developer and a thousand is a tester and a thousand is an architect and a thousand is a database administrator or however you do that is then when you've done that now it's like okay here's you know the 5,000 hours of the project now I've actually put some of these into buckets because I sort of know because I've looked at what I've got to do I can say well this is roughly how much effort's going to be here roughly how much effort's going to be there the challenge with this is figuring out what that effort is when it's not you and so what I tend to do here is either if it depending on how you're going to build it and things like that how you're pricing it what I may do is I may use myself as the the one as as like the at the the level so something if somebody's going to be able to do it faster than me then I'll give them a greater you know they'll basically be able to do that then in less hours for my rate if it's somebody that's lower that's not as effective then maybe it's going to be something where I'm going to say okay it's going to take them more hours but I'm going to be able to assume that they're going to be able to you those hours sort of fall within my rate so if I'm you know just giving a nice numbers like let's say I've got a $10 an hour AR rate well if there's somebody that I'm looking at it's like they're probably going to take four or five times as long then I'll just be like okay I'm going to take the 100 hours that I would have taken and I'm going to say that's going to take them 500 but now I'm going to back it off to the rate so guess what it's in go if they end up five times as much but they've got a fifth of my rate then it's just it equals zero so what you can do is you can figure it out based on what it will take you to do it now if you're really really good or really really bad this is going to be very difficult but if you're wherever you're at you should have a feel for where other people are going to be roughly with regard to you and getting some of these things done now if it's an area that you have no idea like let's say you're a developer and you just really don't get hours involved in a devops piece of a project go talk to somebody that does that it's it's not cheating to go out there and get information from people that are out in the world to get some feedback and say here this is roughly what we're doing what would be your estimate on your time to get something like this done and if you even need to know it's like what kind of rate would this be or if they're a really high or really low rate then figure out the rate that's in yours and say well if somebody was at this rate level what do you think it would take them because those kinds of ballpark things those numbers are going to be very helpful to your customer because now what you've done is let's say you've taken that 5,000 Hour project you've now broken it down you've sort of assigned a value to some level like if it's a thousand broken it into five ways then you have a value for each of those fifth of it so if one's at 10 and that's $10,000 total another's at $100 an hour so it's $100,000 total you can add all that stuff up and what you've got now is a ballpark now what you want to do a caveat or a caution to this is that you want to make sure that you do not underbid it that you don't go into this unless you have complete control over it don't go in there and be like all right I'm going to undersell this thing because it's a side hustle and I'm doing this project for somebody and I want to make sure that it's really successful and I want to make sure that they accept the project I want to win this project the problem is that may work fine if it's a one-week project if it's a nine Monon project and you're not getting paid enough during that time and you didn't get enough money so everybody else is getting paid enough you're you're going to be in trouble you're going to you're going to hate yourself everybody's going to hate you haters everywhere not good so make sure that you're looking at what is typical Market rates because it's always going to be easier particularly if you estimate High to find ways to like you know win with the customer and say well we said it was going to cost $10,000 and it only cost $9,000 and even if you initially you know if you initially estimated five but you told them 10 and you got it done in nine they think all right that was less than what I was expecting to pay because that's what all of us want to do if we're told this is what you're expected you know what you should expect and it comes in lower we're always happy because we've already set our expectations there if it's higher we're more the higher it is the more likely we are to complain do that with the hours as well be generous with those hours uh sometimes a developer there's a rule that I found honestly probably is still underestimating is it take any developer estimate and double it and I've even heard triple it doubling it I have seen many many times where that still is not even close to what it actually takes so be aware of your your blind spots in estimating stuff and take others estimates with a grain of salt before I jump toss to Mike I do want to real quickly take the same thing from a hardware point of view it is very easy to get into something that says we're going to build out this solution here's what it's going to be these servers or these services and you know all of these pieces and you can sit down with if it's a Cloud solution almost all of them have tools so you can walk through it and say I'm going to have eight different servers and this is the size and blah blah blah and it'll spit out this is what your monthly cost is going to be all of that stuff is great but if you haven't even started with your project if you don't have constraints around your project that those numbers are junk the things you need to understand in order to get to some sort of an idea of what is it going to be what is it going to take to support this is you're going to have to ask a lot of questions you're going to have to understand how many people are we talking about on this system how many people concurrently are we talking about on this system how diverse are the people is it all over the globe is it local is it a Cloud Server is it something that's a local server to somewhere are there networking considerations as far as how fast does this data need to go uh space considerations like are we are we downloading are we storing videos for every single user that could very quickly add up to a lot of space or is this like a very simple you know contct management app where we could have a billion people in there and it still not be that much data because we're only keeping track of you know an address an email address and first last name or something like that those are just the start of it you need to under you need to get from the requirements you need to have at least getting into an idea of how big is this how big is a user base what are their expectations and what are their what is the usage of it and by expectations and usage it's things like is this a web application where for example they're expecting less than two seconds response time for every page which is sort of you know industry standard is this some sort of a batch kind of thing or a a fire it off and then you'll get an email later reporting kind of thing where time isn't as big an issue is it something where people are only going to run this once a year and so if it takes an extra 10 minutes who cares or is it something going to run a thousand times a day and if it takes an extra 10 minutes and they it is unusable to them those are all factors that you're going to have to put together before you decide on what this solution is and there it is unfortunately one of those things that may be a little bit of a chicken and an egg problem as well sometimes because you need to actually start looking at the structure of the solution what kind of an architecture are we talking about what kind of an overall design are we talking about because we need to have some of those pieces before we can put some of these estimates together my last thought as I pass it over will be don't be afraid to keep stuff in a Range it you know like I said it needs to be better than between one and four billion dollars in two days in Infinity but bring it down but don't be afraid to provide ranges where sometimes that high in make it very high because with the idea that you're thinking that as you get forward into it you're going to be able to bring that down you're really going to be underneath whatever that top end is and be honest with this stuff where it's like hey this is what we know here's like some of the cautionary stuff and particularly even though I don't know how many times I've had people just gloss over it make sure you have you know bullet points or something that here's what our assumptions are and here are some of the things that we see that could cause a big change in this I've thrown quite a lot out of there I'm going to take a deep breath and a glass of water and I'm going to let you sort of throw your two cents and then some up to four billion dollar worth into this conversation go for it Mike thanks Rob yeah you really gave us a lot to start with and I'd like to build onto that so one of the things initially I'll start with a personal story is starting out you know being a developer spending years working for for companies branching out and kind of building my own business you start out you kind of always have that in between period where you start doing those side hustles you start picking up small projects for people and like Rob said sometimes they're like a onewe project so it's real easy to kind of like guesstimate what it's going to cost to do the work however as these projects grow and you start going from the mindset of oh this isn't such a side hustle anymore this is a business those numbers need to change and I'm still bad at this uh and I still get blown up from time to time because you always want to I run into the habit of I always want to help the customer I always want to help solve a problem and it's kind of those philosophical things where it's like you you more want to help than kind of take but you do need to get paid for what you do and your time is has a value you know you're not doing other things you're not playing video games spending times with family you're working for someone so you need to get compensated for that and that's kind of where this comes in you have to really think about what's at work to you now the whole point of my start of this where to Circle back around is is as this is a side hustle then you're going to be a little bit less you know you be more than what you're currently making but you're not really going to be thinking about all the underlying costs it's like hey it's a payche I want to make some money it's a task you can put some time to that if you're looking to make this a business you now need to think about all the things you don't think about so if you're an employee comp your employer pays your Social Security it pays your Medicare it pays your insurance yes you pay into it but they pay more into it there are other hidden costs that you don't see in your paycheck so you may make 40 50,00 a year but the business is actually probably paying higher for you to be employed with that business and those hidden costs are what you now need to figure out tack into your rate and that is what you need to charge as part of your package if you want this to be a full-time gate so if you're making $40 an hour you don't want to build $40 an hour if you're a full-time employe you're probably going to be charging more like double that maybe even triple that depending upon what it is that you're doing so that's just one small little business thing I want to throw in there because it's one of those things we don't think about and a conversation you and I had just recently was the other things we don't think about when we're developing software and that is the time that you spend working in your business not necessarily working on the business as you're working on these projects and building this software especially if you have software teams there's that underlying cost of doing the work you know if you're doing agile you have all those team meetings you have you have your retrospectives you have your um you know uh refinements your daily scrums these things take time and you need to account for those times in your cost if you work solo all the time and then you start moving to a team structure you start hiring people on you're not necessarily immediately going to think about that and you're going to cut your time which will impact the cost and your budgets that and your estimates that you give the customer so you have to be very careful about that when you start to grow your business or when you start to a branch out from a side hustle to a business so these are some things to keep in the Forefront because they will bite you and you don't want to be stressing when you finally have that old moment and you're like crap and then you're like ah can I do this and you don't want the haters you want to make sure that you're well prepared for what's coming now I want to throw it back to you Rob because there's some things uh I kind of want your point of view on if we're starting out with the project we have some requirements but necessarily we don't know the full requirements when we get down to deploying you mentioned Hardware that's fine but what about things like testers low testing uh user acceptance all that other stuff that is overlooked as well that you didn't touch on how do you kind of think about those if you don't do those typically in a regular side hustle business or just typical projects I think it's there is definitely there are definitely a lot of places you can go to find U rule of thumb kinds of estimates of like how Pro how a development project should go how much time should be in development how much time should be in testing in deployment and things like that and it's it's generally I think it's like 20% in design you know 60% in implementation 20% in testing or something like I forget all the those will give you at least something to go on now for yourself as you're getting into these things there are this is where I actually find agile works really well in the Sprint world of it because if you have a if you're running Sprints then for example let's say you run a let's say run a onewe Sprint you will know that in a given week There's the development time but there's also going to be the backlog refinement time there's going to be the Sprint review there's going to be the retrospective there's going to be the daily standups those things are all time that is going to come out of every week that is stuff that whatever you're doing in development there is this additional piece of project management types of tasks or testing tasks or these other things and it's you can use a a rough brush on these where you could say for example let's go back to our 5,000 development hours I have found I've worked with a lot of different companies and I found a lot of times they'll say that like five or 10% will be project management and meeting costs I think that's actually too low because when you look at it it's very easy to have a meeting with your entire team and if it goes an hour that is all all of those hours go right into that project management bucket so think about what a as you're going into this project it's not just what you're developing but what does the team Dynamic look like are we going to do daily standups are we going to do a monthly te or let's say a weekly team meeting are we going to do depending on what our Sprints are like you know what is it at the end of the Sprint like are we gonna do reviews are we gonna do retrospectives are we gonna go do spend some time doing some sort of backlog pruning and things like that what sort of um design kind of time are we going to have are we going to have design resources that somebody's going to work on user experience do we need to deal with those do we need to have specific testers or are we going to have people testing that because all of that we want to we want to have those things in mind and if we the first time or two you do it it's going to be rough because it's just going to be uh I think it's roughly this it may work like this it may be that but make sure you're keeping track of that stuff so that as you move forward you will from Project to project to project you will get better with such things you're going to be able to sit there and say hey this thing was you know 10% of my hours last time and I only guessed it I estimated it at five maybe 5 percent so I'm going to bump that up or this thing I I put testing in at 10% and I got to the end and realized I really needed more time in testing so typically what I'm going to do there is you get your bucket of development and then you start tacking on I years ago it's probably out somewhere on developing 's site somewhere if not I'll find a way to get it out there is I put together a little spreadsheet and it was built it was for me to just do quick estimates it was basically I knew roughly how long I was going to I had sort of estimates like if I'm going to build a page for an app what's it typically take me to build just a page and then there's like the guts behind the page and if I have to design a database and I'd had all this stuff that would help me figure out hours and just sort of like you know a rough estim hours for development and then I had all these other things am I going to use user documentation what kind of testing am I going to do is there going to be uh are there going to be weekly meetings are there going to be demos and those things would tack on you know some sort of a percentage or something like that so I'd get here's my hours and then here's all the other things which literally is going to be a lot of times an extra 20 to 25% of your hours are going to be into those other areas it's going to be all of these other things now that's to give you the the quick answer I do want to actually step back one thing when you do your own business if you are taking that step to from side hustle to you know super hustle full hustle or whatever it is Kung Fu Hustle whatever it is that you've got to take into account things like professional development business development holidays vacation days and things like that so if you're sit there and you go okay I need to earn you know I earn $50,000 a year on a salary well to get that $50,000 from a business point of view you're probably going to have to bill something to bring in you're going to have to bring in probably 65 or $70,000 for just that salary typically markets you know the typical market cost including up you know over their like margins and stuff like that because they include things like sales and marketing and all that stuff it's typically going to be for a Consulting type 40 or 50% above whatever the salary is so if it's which would be like just keep it nice simple numbers if you're making $50,000 a year it's probably going to be $775,000 a year that you're going to have to bring in which means if you build through the year you know roughly you know almost 40 $40 an hour now remember that you know if you're going to like calculate all this out it is not 52 weeks times 40 hours because you're probably going to have you're going to have sick time you're going to have holidays even if you don't want holidays if you're like I never get sick I never take a vacation there will be holidays and so you're going to have those that are going to be taken off there's going to be stuff that you're not going to work the full year and this is just us if you go outside of the US you get in these other countries where they've got all of these they've got more holidays or they've got you know vacation times and stuff like that that are effectively mandatory or if they go to a four-day Work Week there's a lot of factors that go in there that you want to make sure you're thinking realistically about what is it that I have to replace if I'm going to now be my own employer and it does step into things like you know it is the payroll stuff but then it's all the other stuff around that it's things like is there are there software subscriptions that I need to have what does it cost to replace my computer you know if I got to have a computer if I have to have high-speed internet if I have to have a cell phone and now I have to pay up my my companies not those things all add up and you need to take a look at it and you that does not mean that you're first customer needs to pay all of that crap for you because it should be able to be something that you can now like you know spread over that year or whatever it is but those are things to take care of I will give you sort of a closing thought hopefully that answered your question a little bit it it did and just a couple additional things to add on to that you know don't forget like clothing your car you know there look at everything that you use every day that you might need in your business that that's a cost make sure you account for that in addition make sure you account for your time in the bonus section I'll throw out some additional things but make sure you track your time find some way to keep track of everything that you do because time does have a cost and if you're not spending time with loved ones or doing the things that you love to do you know your business might be but you still need to pay the bills and put a roof over your head so make sure you account for that and take care of yourself you know yes it is business yes this is something we do but we need to keep track and take care of ourselves and you can help us take care of ourselves by sending an email to info@ developer.com or jumping out to developer.com and sending us anything you want like all kinds of feedback we're happy to have through the uh contact us form on the the devel preneur site you can leave us comments here whether you're watching this on YouTube or whether it's whatever your favorite podcast app is leave us a review leave us a you know like us don't like us whatever we really want more you know a five star review would be great but more probably better more important to us would be some feedback of we like this we don't like that or even better yet hey here's a topic we would love to hear you guys talk about or talk more about because that helps us help you and that's what we want you can't figure out requirements without talking to your customer and guess what this time you guys are the customer so help us help you that being said we are not done with this season we are going to continue just chugging right along but for now we're going to wrap this one up you guys go out there and have yourself a great day a great week and we will talk to you next time [Music]
Transcript Segments
[Music]
to howdy everybody we are back um I
don't know why I always throw my hands
up like that I just do well
because right now not on the podcast
side so uh let's see
so thinking about this podcast now one
of the
things did you see the note I put out in
slack I did and I'm I sort of like that
but one of the things I'm thinking about
just BEC which so maybe that's like the
next episode another one was I thinking
about talking
through pricing pricing a project is
actually like looking at something from
a and sort of estimating because this
is it was something that's actually a
question I got in part of of a
discussion I had earlier today but it's
how do you figure out what it is you're
putting together if you're putting
together software which I think is a
developer thing that we tend to forget
because we just like throw stuff out on
we've got a development machine
sometimes it is Way Beyond what anybody
else has got and then we're like well
this works great on my machine and then
you put it somewhere else and it's like
you know put it on a little tiny AC you
know ec2 thing and it doesn't even run
and you're like wait a minute it's it's
runs great on my machine so there's it's
the the hardware side and then also the
like what how do you figure out what
you're going to put into if you have to
estimate a project and you don't have
you know necessarily all the
requirements and stuff like that or like
talk a little bit about how we do that
and maybe some ways that we can protect
ourselves that's what I was thinking and
and then I I do think maybe the next one
we get into is we just say like let's
talk a little bit about teamwork and how
do you move stuff forward in that
advocating versus arguing type of an of
an approach and how do you make that
work because it is I think a challenge
that you run into particularly when you
start getting to like a senior or if
you're managing a team or something like
that yeah I like that especially with
the arguing and the augmenting
especially from testing because when you
it it that kind of gets into you know
the augmenting is you want the best
project right you want the best
practices you want a quality product but
that's not always the same mentality
when you're just turning out code or
trying to meet
demands and there is a actually that's
probably a good place to go too because
there is definitely
a um a level of reality that's in that
as well because there's some that's
again something I was talking about
earlier today with some people I'm like
well this is the ideal but the ideal you
never get basically or almost never
because you you don't have unlimited
time unlimited resources and all that
stuff you have to you know figure out
the best you can do with what you've
got so all right we'll start with that
we'll start with the
whole estimating in general and we will
work our way from there and I'm GNA
because let's see make sure that I've
got this on do not
disturb just to be
sure and make sure that I don't get hit
with at this time
so here we go hello and welcome back we
are continuing our season of the
developer Journey this is developer ner
this is building better developers I am
Rob Broadhead one of the founders of
developer ner and a founder of RB
Consulting where we take all of the
nastiness of technology and turn it into
a nice pretty little you know fuzzy
little thing with a bow on top through
integration uh integration
simplification automation
all those shuns that you need so you
don't have to shun your technology uh I
just came up with fly so I apologize if
that was like too cringy but that's one
of the things that we do is that we
basically find a way to help you help
yourself with the the technology you
have whether that is building something
custom or using tools that are out there
such as the kinds of tools that we do
talk about very often here on developing
or in a good thing bad thing World um
let's see what is a good good and a bad
thing that has happened today so bad
thing this is this is one of those
things that like sticks in my craw is I
got a I got a statement from an account
and it's one of these things it's like a
you know loan credit card kinds of
things and it's one of these where
you're paying and if you pay extra at
the if you pay at the wrong time they
essentially add it on to instead of
working with whatever your monthly
amount is that you're supposed to pay
you know say You're supposed to pay $10
a month and so you send $10 in but they
don't put it on the right date so they
just say oh well you just paid extra on
the prior month and then they end up
whacking you the next month with the
late fee it's like well wait a minute
that's not how it went so the bad news
is I get one of those it's like oh come
on it hit on that day I'm looking at all
this stuff why doesn't it add up I with
that I'll give the good news just so I
can keep that concise is that they're
like you know what you're right this
shouldn't have happened this way we'll
we'll wave your fees we'll take care of
it and all that kind of stuff and I was
just like
okay
cool okay cool on the other side of the
internet is Michael let you go ahead and
introduce yourself and uh how's your day
gone in the or last couple days gone in
the good and the bad sense hey everyone
my name is Michael Mage I'm one of the
founders of developer n building better
developers I'm also the founder of
Invision QA where we help mid to small
businesses conition help you kind of
walk through the your current software
stack make sure it's working for you and
if it's not we help you build or find
the systems you need to make your
business run smoother and improve your
daily processes good and bad uh good
getting real close to the end of a
current project with a vendor and I'm
really excited for the next phase uh and
things are going well on the bad side
similar to you uh except slightly
different I was reconciling uh my
ledgers and found out I had a couple
weird charges on a debit card well come
to find out Banks don't like to
reconcile and reimburse you when your
debit cards get hacked what's annoying
is the freaking debit card has been
sitting in my office this whole time not
sure how they got this one uh but
similar thing happened a week after I
opened the account immediately I started
getting unauthorized charges on the
account didn't buy anything so uh
finally got that reconciled got new
cards again everything's happy again but
that's just a pain in the butt because
if you get hacked you have to go find oh
what are all my auto pays and get all
that reconciled again the bank's
response get a credit card and my
response to that is are you paying for
my
fees so this episode what we want to get
into is sort of along those same lines
is pricing and estimating there's two
things that we get into as we get
further into when we get to a certain
point as developers we have to we look
at project project level stuff we're not
estimating just like what we're doing in
the next week or two it's something
that's a little bit more complicated
because we end up in a situation we're
trying to estimate for our employer or
for our customer not only our work but
the work of others and what is the
system or the environment that's going
to be needed and then maybe even uh
along with all this like what is the uh
what's the overall team structure kind
of look like and all of this that
without maybe necessarily having all of
the requirements that we need
particularly now when we go into you
know go into like an agile kind of world
where you're you're starting out you've
got you've got requirements if you don't
back up go get requirements you need to
have some level requirements before you
start or else you just it's a recipe for
disaster you got to know where you are
to some extent and have at least an idea
of where you're going otherwise you're
spinning your wheels so if You' got some
level but you may not have all of them
and the whole idea of agile is that yes
we may end up changing course somewhere
along the way and so if we do so then
what the heck is that going to mean to
dates and costs and estimates and the
time that's involved the uh the people
that are involved the you all of that
kind of good stuff so with all of these
unknowns where do you go with this and
the way to do this is I found and this
is just my Approach there are a lot of
different approaches do it I found that
you sort of do it in a turn it into like
groupings or buckets or things like that
and so I can take if I'm looking at a
project I can take pieces of it and I
can give a rough estimate because I
don't think anybody's going to hold you
to hopefully they're not going to hold
you to a specific estimate on something
when you don't have all the details now
depending on how much time you've spent
Gathering requirements and things like
that you do need to like you need to get
better than some huge ballpark you can't
say this project is going to cost
between one and four billion dollars
when you've spent some time Gathering
requirements you're G to have to like
narrow that sucker down now one of the
ways that I found that is the probably
the easiest way to do it because it
simplifies the math and gets you away
from getting too deep in the
details is start with what is the scope
of what you're building it's from the
software side what is the scope of what
you're building roughly what kind of a
team are you thinking you're going to
need to get that done in the time frame
required so if you've got a project
that's going to take you don't have to
you know you can probably guesstimate
even like this project is going to take
5,000 man hours okay 5,000 man hours and
you may be looking at it well it's going
to be a thousand is a junior developer
and a thousand is a tester and a
thousand is an architect and a thousand
is a database administrator or however
you do that is then when you've done
that now it's like okay here's you know
the 5,000 hours of the project now I've
actually put some of these into buckets
because I sort of know because I've
looked at what I've got to do I can say
well this is roughly how much effort's
going to be here roughly how much
effort's going to be there the challenge
with this is figuring out what that
effort is when it's not you and so what
I tend to do here is either if it
depending on how you're going to build
it and things like that how you're
pricing it what I may do is I may use
myself as the the one as as like the at
the the level so something if somebody's
going to be able to do it faster than me
then I'll give them a greater you know
they'll basically be able to do that
then in less hours for my rate if it's
somebody that's lower that's not as
effective then maybe it's going to be
something where I'm going to say okay
it's going to take them more hours but
I'm going to be able to assume that
they're going to be able to you those
hours sort of fall within my rate so if
I'm you know just giving a nice numbers
like let's say I've got a $10 an hour AR
rate
well if there's somebody that I'm
looking at it's like they're probably
going to take four or five times as long
then I'll just be like okay I'm going to
take the 100 hours that I would have
taken and I'm going to say that's going
to take them 500 but now I'm going to
back it off to the rate so guess what
it's in go if they end up five times as
much but they've got a fifth of my rate
then it's just it equals zero so what
you can do is you can figure it out
based on what it will take you to do it
now if you're really really good or
really really bad this is going to be
very difficult
but if you're wherever you're at you
should have a feel for where other
people are going to be roughly with
regard to you and getting some of these
things done now if it's an area that you
have no idea like let's say you're a
developer and you just really don't get
hours involved in a devops piece of a
project go talk to somebody that does
that it's it's not cheating to go out
there and get information from people
that are out in the world to get some
feedback and say here this is roughly
what we're doing what would be your
estimate on your time to get something
like this done and if you even need to
know it's like what kind of rate would
this be or if they're a really high or
really low rate then figure out the rate
that's in yours and say well if somebody
was at this rate level what do you think
it would take them because those kinds
of ballpark things those numbers are
going to be very helpful to your
customer because now what you've done is
let's say you've taken that 5,000 Hour
project you've now broken it down you've
sort of assigned a value to some level
like if it's a thousand broken it into
five ways then you have a value for each
of those fifth of it so if one's at 10
and that's $10,000 total another's at
$100 an hour so it's $100,000 total you
can add all that stuff up and what
you've got now is a ballpark now what
you want to do a caveat or a caution to
this is that you want to make sure that
you do not underbid it that you don't go
into this unless you have complete
control over it don't go in there and be
like all right I'm going to undersell
this thing because it's a side hustle
and I'm doing this project for somebody
and I want to make sure that it's really
successful and I want to make sure that
they accept the project I want to win
this project the problem is that may
work fine if it's a one-week project if
it's a nine Monon project and you're not
getting paid enough during that time and
you didn't get enough money so everybody
else is getting paid enough you're
you're going to be in trouble you're
going to you're going to hate yourself
everybody's going to hate you haters
everywhere not good so make sure that
you're looking at what is typical Market
rates because it's always going to be
easier particularly if you estimate High
to find ways to like you know win with
the customer and say well we said it was
going to cost $10,000 and it only cost
$9,000 and even if you initially you
know if you initially estimated five but
you told them 10 and you got it done in
nine
they think all right that was less than
what I was expecting to pay because
that's what all of us want to do if
we're told this is what you're expected
you know what you should expect and it
comes in lower we're always happy
because we've already set our
expectations there if it's higher we're
more the higher it is the more likely we
are to complain do that with the hours
as well be generous with those hours uh
sometimes a developer there's a rule
that I found honestly probably is still
underestimating is it take any developer
estimate and double it and I've even
heard triple it doubling it I have seen
many many times where that still is not
even close to what it actually takes so
be aware of
your your blind spots in estimating
stuff and take others estimates with a
grain of salt before I jump toss to Mike
I do want to real quickly take the same
thing from a hardware point of
view it is very easy to get into
something that says we're going to build
out this solution here's what it's going
to be these servers or these services
and you know all of these pieces and you
can sit down with if it's a Cloud
solution almost all of them have tools
so you can walk through it and say I'm
going to have eight different servers
and this is the size and blah blah blah
and it'll spit out this is what your
monthly cost is going to be all of that
stuff is great but if you haven't even
started with your project if you don't
have constraints around your project
that those numbers are junk the things
you need to understand in order to get
to some sort of an idea of what is it
going to be what is it going to take to
support this is you're going to have to
ask a lot of questions you're going to
have to understand how many people are
we talking about on this system how many
people concurrently are we talking about
on this system how diverse are the
people is it all over the globe is it
local is it a Cloud Server is it
something that's a local server to
somewhere are there networking
considerations as far as how fast does
this data need to go uh space
considerations like are we are we
downloading are we storing videos for
every single user that could very
quickly add up to a lot of space or is
this like a very simple you know contct
management app where we could have a
billion people in there and it still not
be that much data because we're only
keeping track of you know an address an
email address and first last name or
something like
that those are just the start of it you
need to under you need to get from the
requirements you need to have at least
getting into an idea of how big is this
how big is a user base what are their
expectations and what are their what is
the usage of it and by expectations and
usage it's things like is this a web
application where for example they're
expecting less than two seconds response
time for every page which is sort of you
know industry standard is this some sort
of a batch kind of thing or a a fire it
off and then you'll get an email later
reporting kind of thing where time isn't
as big an issue is it something where
people are only going to run this once a
year and so if it takes an extra 10
minutes who cares or is it something
going to run a thousand times a day and
if it takes an extra 10 minutes and they
it is unusable to them those are all
factors that you're going to have to put
together before you decide on what this
solution is and there it is
unfortunately one of those things that
may be a little bit of a chicken and an
egg problem as well sometimes because
you need to actually start looking at
the structure of the
solution what kind of an architecture
are we talking about what kind of an
overall design are we talking about
because we need to have some of those
pieces before we can put some of these
estimates together my last thought as I
pass it over will be don't be afraid
to keep stuff in a Range it you know
like I said it needs to be better than
between one and four billion dollars in
two days in Infinity but bring it down
but don't be afraid to provide ranges
where sometimes that high in make it
very high because with the idea that
you're thinking that as you get forward
into it you're going to be able to bring
that down you're really going to be
underneath whatever that top end is and
be honest with this stuff where it's
like hey this is what we know here's
like some of the cautionary stuff and
particularly even though I don't know
how many times I've had people just
gloss over it make sure you have you
know bullet points or something that
here's what our assumptions are and here
are some of the things that we see that
could cause a big change in this
I've thrown quite a lot out of there I'm
going to take a deep breath and a glass
of water and I'm going to let you sort
of throw your two cents and then some up
to four billion dollar worth into this
conversation go for it Mike thanks Rob
yeah you really gave us a lot to start
with and I'd like to build onto that so
one of the things initially I'll start
with a personal story is starting out
you know being a developer spending
years working for for companies
branching out and kind of building my
own business you start out you kind of
always have that in between period where
you start doing those side hustles you
start picking up small projects for
people and like Rob said sometimes
they're like a onewe project so it's
real easy to kind of like guesstimate
what it's going to cost to do the work
however as these projects grow and you
start going from the mindset of oh this
isn't such a side hustle anymore this is
a business those numbers need to change
and I'm still bad at this uh and I still
get blown up from time to time because
you always want to I run into the habit
of I always want to help the customer I
always want to help solve a problem and
it's kind of those philosophical things
where it's like you you more want to
help than kind of take but you do need
to get paid for what you do and your
time is has a value you know you're not
doing other things you're not playing
video games spending times with family
you're working for someone so you need
to get compensated for that and that's
kind of where this comes in you have
to really think about what's at work to
you now the whole point of my start of
this where to Circle back around is is
as this is a side hustle then you're
going to be a little bit less you know
you be more than what you're currently
making but you're not really going to be
thinking about all the underlying costs
it's like hey it's a payche I want to
make some money it's a task you can put
some time to that if you're looking to
make this a business you now need to
think about all the things you don't
think about so if you're an
employee comp your employer pays your
Social Security it pays your Medicare it
pays your insurance yes you pay into it
but they pay more into it there are
other hidden costs that you don't see in
your paycheck so you may make 40 50,00 a
year but the business is actually
probably paying higher for you to be
employed with that business and those
hidden costs are what you now need to
figure out tack into your rate and that
is what you need to charge as part of
your package if you want this to be a
full-time gate so if you're making $40
an hour you don't want to build $40 an
hour if you're a full-time employe
you're probably going to be charging
more like double that maybe even triple
that depending upon what it is that
you're doing so that's just one small
little business thing I want to throw in
there
because it's one of those things we
don't think about and a conversation you
and I had just recently was the other
things we don't think about when we're
developing software and that is the time
that you spend working in your business
not necessarily working on the business
as you're working on these projects and
building this software especially if you
have software teams there's that
underlying cost of doing the work you
know if you're doing agile you have all
those team meetings you have you have
your retrospectives you have your um you
know uh refinements your daily scrums
these things take time and you need to
account for those times in your
cost if you work solo all the time and
then you start moving to a team
structure you start hiring people on
you're not necessarily immediately going
to think about that and you're going to
cut your time which will impact the cost
and your budgets that and your estimates
that you give the customer so you have
to be very careful about that when you
start to grow your business or when you
start to a branch out from a side hustle
to a business so these are some things
to keep in the Forefront because they
will bite you and you don't want to be
stressing when you finally have that old
moment and you're like crap and then
you're like ah can I do this and you
don't want the haters you want to make
sure that you're well prepared for
what's coming now I want to throw it
back to you Rob because there's some
things uh I kind of want your point of
view on if we're starting out with the
project we have some
requirements but necessarily we don't
know the full requirements when we get
down to deploying you mentioned Hardware
that's fine but what about things like
testers low testing uh user acceptance
all that other stuff that is overlooked
as well that you didn't touch on how do
you kind of think about those if you
don't do those typically in a regular
side hustle business or just typical
projects I think it's there is
definitely there are definitely a lot of
places you can go to find U rule of
thumb kinds of estimates of like how Pro
how a development project should go how
much time should be in development how
much time should be in
testing in deployment and things like
that and it's it's
generally I think it's like 20% in
design you know 60% in implementation
20% in testing or something like I
forget all the those will give you at
least something to go on now for
yourself as you're getting into these
things there are this is where I
actually find agile works really well in
the Sprint world of it because if you
have a if you're running Sprints then
for example let's say you run a let's
say run a onewe
Sprint you will know that in a given
week There's the development time but
there's also going to be the backlog
refinement time there's going to be the
Sprint review there's going to be the
retrospective there's going to be the
daily standups those things are all time
that is going to come out of every week
that is stuff that whatever you're doing
in development there is this additional
piece
of project management types of tasks or
testing tasks or these other things and
it's you can use a a rough brush on
these where you could say for example
let's go back to our 5,000 development
hours I have found I've worked with a
lot of different companies and I found a
lot of times they'll say that like five
or 10% will be project management and
meeting costs I think that's actually
too low because when you look at it it's
very easy to have a meeting with your
entire team and if it goes an hour
that is all all of those hours go right
into that project management bucket so
think about what a as you're going into
this project it's not just what you're
developing but what does the team
Dynamic look like are we going to do
daily standups are we going to do a
monthly te or let's say a weekly team
meeting are we going to do depending on
what our Sprints are like you know what
is it at the end of the Sprint like are
we gonna do reviews are we gonna do
retrospectives are we gonna go do spend
some time doing some sort of backlog
pruning and things like that what sort
of um design kind of time are we going
to have are we going to have design
resources that somebody's going to work
on user experience do we need to deal
with those do we need to have specific
testers or are we going to have people
testing that because all of that we want
to we want to have those things in mind
and if we the first time or two you do
it it's going to be rough because it's
just going to be uh I think it's roughly
this it may work like this it may be
that but make sure you're keeping track
of that stuff so that as you move
forward you will from Project to project
to project you will get better with such
things you're going to be able to sit
there and say hey this thing was you
know 10% of my hours last time and I
only guessed it I estimated it at five
maybe 5 percent so I'm going to bump
that up or this thing I I put testing in
at 10% and I got to the end and realized
I really needed more time in testing so
typically what I'm going to do there is
you get your bucket of development and
then you start tacking on I years ago
it's probably out somewhere on
developing 's site somewhere if not I'll
find a way to get it out there is I put
together a little spreadsheet and it was
built it was for me to just do quick
estimates it was basically I knew
roughly how long I was going to I had
sort of estimates like if I'm going to
build a page for an app what's it
typically take me to build just a page
and then there's like the guts behind
the page and if I have to design a
database and I'd had all this stuff that
would help me figure out hours and just
sort of like you know a rough estim
hours for development and then I had all
these other things am I going to use
user documentation what kind of testing
am I going to do is there going to be uh
are there going to be weekly meetings
are there going to be demos and those
things would tack on you know some sort
of a percentage or something like that
so I'd get here's my hours and then
here's all the other things which
literally is going to be a lot of times
an extra 20 to 25% of your hours are
going to be into those other areas it's
going to be all of these other things
now that's to give you the the quick
answer I do want to actually step back
one thing when you do your own
business if you are taking that step to
from side hustle to you know super
hustle full hustle or whatever it is
Kung Fu Hustle whatever it is that
you've got to take into account things
like professional
development business
development holidays vacation days and
things like that so if you're sit there
and you go okay I need to earn you know
I earn $50,000 a year on a salary well
to get that $50,000 from a business
point of view you're probably going to
have to bill something to bring in
you're going to have to bring in
probably 65 or $70,000 for just that
salary typically markets you know the
typical market cost including up you
know over their like margins and stuff
like that because they include things
like sales and marketing and all that
stuff it's typically going to be for a
Consulting type
40 or 50% above whatever the salary is
so if it's which would be like just keep
it nice simple numbers if you're making
$50,000 a year it's probably going to be
$775,000 a year that you're going to
have to bring in which means if you
build through the year you know roughly
you know almost 40 $40 an hour now
remember that you know if you're going
to like calculate all this out it is not
52 weeks times 40 hours because you're
probably going to have you're going to
have sick time you're going to have
holidays even if you don't want holidays
if you're like I never get sick I never
take a vacation there will be holidays
and so you're going to have those that
are going to be taken off there's going
to be stuff that you're not going to
work the full year and this is just us
if you go outside of the US you get in
these other countries where they've got
all of these they've got more holidays
or they've got you know vacation times
and stuff like that that are effectively
mandatory or if they go to a four-day
Work Week there's a lot of factors that
go in there that you want to make sure
you're thinking realistically about what
is it that I have to replace if I'm
going to now be my own employer and it
does step into things like you know it
is the payroll stuff but then it's all
the other stuff around that it's things
like is there are there software
subscriptions that I need to have what
does it cost to replace my computer you
know if I got to have a computer if I
have to have high-speed internet if I
have to have a cell phone and now I have
to pay up my my companies not those
things all add up and you need to take a
look at it and you that does not mean
that you're first customer needs to pay
all of that crap for you because it
should be able to be something that you
can now like you know spread over that
year or whatever it is but those are
things to take care of I will give you
sort of a closing thought hopefully that
answered your question a little bit it
it did and just a couple additional
things to add on to that you know don't
forget like clothing your car you know
there look at everything that you use
every day that you might need in your
business that that's a cost make sure
you account for that in addition make
sure you account for your
time in the bonus section I'll throw out
some additional things but make sure you
track your time find some way to keep
track of everything that you do because
time does have a cost and if you're not
spending time with loved ones or doing
the things that you love to do you know
your business might be but you still
need to pay the bills and put a roof
over your head so make sure you account
for that and take care of yourself you
know yes it is business yes this is
something we do but we need to keep
track and take care of
ourselves and you can help us take care
of ourselves by sending an email to
info@ developer.com or jumping out to
developer.com and sending us anything
you want like all kinds of feedback
we're happy to have through the uh
contact us form on the the devel preneur
site you can leave us comments here
whether you're watching this on YouTube
or whether it's whatever your favorite
podcast app is leave us a review leave
us a you know like us don't like us
whatever we really want more you know a
five star review would be great but more
probably better more important to us
would be some feedback of we like this
we don't like that or even better yet
hey here's a topic we would love to hear
you guys talk about or talk more about
because that helps us help you and
that's what we want you can't figure out
requirements without talking to your
customer and guess what this time you
guys are the customer so help us help
you that being said we are not done with
this season we are going to continue
just chugging right along but for now
we're going to wrap this one up you guys
go out there and have yourself a great
day a great week and we will talk to you
next time
[Music]