Detailed Notes
In the dynamic world of software development, managing projects effectively and setting appropriate pricing can be challenging. In our latest podcast episode, we delved into project management and pricing, drawing on the experiences and insights of seasoned developer Michael.
Initial Project Assessment and Agile Development Michael highlighted the importance of conducting a thorough initial assessment before embarking on a project. This involves understanding the client’s needs, potential challenges, and scope of work. Offering options such as a free assessment or a short bid can help align expectations and ensure clarity from the outset. Moreover, Michael emphasized the value of agile development methodologies, especially when working with clients unfamiliar with the software development process. Regular checkpoints, stand-ups, and clear communication help keep clients informed and mitigate potential misunderstandings or scope creep.
Dealing with Unexpected Challenges and Scope Changes Despite meticulous planning, projects often encounter unexpected challenges or changes in scope. Michael shared his approach to addressing these situations, advocating for transparent communication with clients. Whether it’s renegotiating terms, adding a service contract for additional support, or adjusting timelines, open dialogue is key to navigating such complexities.
Setting Pricing and Handling Competitive Bidding Setting fair pricing is essential for sustaining a successful software development business. Michael provided practical advice on determining hourly rates based on salary, adjusting for taxes and other factors, and staying competitive in the market. He also discussed the challenges of competitive bidding, cautioning against undervaluing services and emphasizing the importance of delivering quality over price.
Lessons Learned and Future Considerations Reflecting on past experiences, Michael shared anecdotes of clients who underestimated the value of proper project management and pricing. From outdated systems to indecisiveness, he encountered various challenges but learned valuable lessons along the way. Setting clear expectations, maintaining professionalism, and recognizing the worth of one’s skills are vital takeaways for developers navigating the industry.
In conclusion, effective project management and pricing strategies are essential for success in the competitive software development landscape. Developers can build strong client relationships, deliver quality solutions, and ensure sustainable business growth by prioritizing clear communication, transparency, and fair pricing.
Get Involved We value your input! If you have recommendations for future podcast topics or questions you’d like us to address, please email us at [email protected]. Your engagement keeps our content relevant and valuable to our audience. For more insightful discussions on software development and project management, be sure to check out our video content. Whether you’re a seasoned developer or just starting in the field, there’s always something new to learn and explore. Until next time, drive safely, and have a great day!
Project Management and Pricing Resources * Personal Project Management – Small Scale, Big Value https://develpreneur.com/personal-project-management-small-scale-big-value/ * 6 Agile Project Management Approaches For Your App Development https://develpreneur.com/6-agile-project-management-approaches-for-your-app-development/ * Balance Your Time in a Busy World: Tools and Techniques https://develpreneur.com/balance-time-busy-world/ * Atlassian (https://www.atlassian.com/) is a great tool for managing your projects. * WaveApps (https://www.waveapps.com/) is a free accounting and invoicing.
Transcript Text
[Music] well hello and welcome back we are once again here and we are checking things out we are moving along in our series of of discussions and figure out what we wna you sort of like how do we what we want to be when we grow up to some extent this episode I want to change gears a little bit from the uh step out a little bit from the develop andur changes and talk about a topic we touched on a few times but I really want to revisit it because I conversation yesterday with a customer that makes it relevant I think or is a is a good lesson learned and this goes into pricing we have talked about pricing a lot Michael and I in particular we've talked about both our uh particularly when we got into our our classes and how much you want to you know how much do you charge for that content and what does that look like and then also our services and our products that we whether it's Vision QA that is building out or areb Consulting and I think a lot of developers run into this same problem where we don't charge enough sometimes is that and then some people are just going to go nuts and they're going to charge you a billion dollars and they're going to but I think if you're a true developer love doing this work and so this is something that's fun and it's really more about getting paid so you can pay the bills and not really because you're doing this to become rich if we do none of us complain it's not like we're GNA say oh man those bags of money somewhere else but we do I think struggle with that and it's it's hard to figure out what what should I charge you know what actually makes sense for me to charge for my service and particularly at whatever level I'm at whether I'm starting out or whether I'm further along and before I go into my story I want throw it to you m any thoughts on pricing that you want to throw out there yeah we just had a conversation on that this week because um in the co-starter class that I'm involved in right now to help boost uh Envision QA one of the other students was looking to Branch out their business and they're a bakery and you wouldn't think Tech really goes with a bakery but they had some ideas that they wanted to pursue outside of the brick and morar and it led to some discussions on you know what do they need in that but the key issue you run into with anything really even when talking to customers is sometimes when you're having a conversation with someone they don't really know what they want so trying to piece together what type of software they need what type of application they want can be difficult and the price can be really high at the start and then you can kind of stream it or filter it down to something that's a little more feasible but when a customer comes to you and say hey I want something like uh Airbnb or I want something I want someone to build me something like Facebook you're not going to tell them yeah I can do this for $5,000 no way um a lot of them will come to you and say hey can you build this for $5,000 and the answer is going to be um you're crazy and that's because they typically don't understand what really goes into it what's involved so what I like to do uh is typically start at the high level try to get the requirements that they want in like a on- hour session and if I can summarize that and send it to them first and then get feedback on that then it helps us get a little bit closer to that price tag but typically though it it's hard you know when you really don't know what they want or if the customer unclear what they want then when you you know make a bid or you give a price for one thing you could really get yourself in trouble either you're going to be too high or too low yeah and that's exactly where really it's exactly what I ran into with this C was originally we when I first started working with him a few weeks ago a month ago um it was sort hey here's our budget and we want to rewrite it was essentially we want to read a rewrite a system here's our budget and I was like that's your budget we can assuming that these things are in place and then it was one of those what was there enough to say okay that could make sense that's to do it from scratch then we could probably do it it seemed like a simp fairly simple application however getting into it and starting to dig into the various components and the way it was built it became something was much more complicated and so the initial you know it's initially it's a time frame about four to six weeks and that would work out with their budget and everything else and that all sort of like it's one of those that they said this is what I've got this is the box that I'm putting you in it's like okay we'll find a way to get something into that box well going into it and talking to them we started finding out that no the not going to be able to fit this in the box so it was one of those you I think a lot of people sort of shy away from those conversations where it's like hey I went to you I said this is what it was going to take it's going to take something else or we're gonna have to change stuff quite a bit and that was how the conversation went it was like hey here's these a couple key areas they are not going to be full featured like you know sort of had planed planned initially those things are going to have to be rained in quite AIT bit because as we and it was really as a kind of stuff where he was General early on and then he got more specific about what he wanted and it's like oh wait there's a difference between for example you use like a make me Airbnb or Facebook it's like or Google it's like hey if if you want me to make you a page that all you do is you enter something it gives you some search results but it's not searching the Internet it's searching some little database then sure we can do that all day long now if you rest of the project and there's a reason that they've had multiple Engineers paid multiple money a lot of a lot of money for a lot of years to get to where they're at that's you know I think where we run into sometimes you have people that just have unrealistic expectations but sometimes and particularly when you are as clear as you can be about this is what we are this is as a developer what I am seeing that you want and you set those expectations from the the start and they get to say yes that's what I want or they'll say no here's some additional things I want or those things that you mentioned I don't really need then you can get that clearer picture and that allowed through just really clear communication along the way when we had this conversation to say look this is where we're at this is what we're seeing this is how far we can get but I don't think it's going to get you where you need to be and it turned out to be a really good conversation because he said yeah I get that okay okay I didn't realize that the situation the stuff we had quite as bad as it was that's happened more than a few times that I've dealt with people and then you end up with something where now it's like okay it turned out to be a good enough thing because we're just going to extend the product project out and be able to get for what they need now that being said there are some things that can go completely off the rails and even in those cases it is worth it to have that conversation because sometimes you need to decide whether you're going to continue because you you know whatever estimation or whatever you did if you said it was going to be a you know 100 Hour project and see that now something it's going to be a 500 project as you're getting into it not when you get to hour 99 but when you start seeing that thing going off the you need to start having the communication of hey this doesn't seem like I think we're going to run into problems and that com that conversation and that communication is going to at least help you when you get there to either say hey I can't afford to give you 400 hours that I think I'm suddenly going to have so we need to figure this out hey I'm going to donate a bunch of hours and get you there I've talked a lot so I think I want to get a little bit of your thoughts on this uh you know currently here Michael where we're where we're at some of the things I've laid out and maybe some experiences you've had like that sure so I've heard a couple things there so one I heard um you know you having a difficult conversation with the customer you know when you've started a project you've taken a bid on a project and you start getting in and you start realizing things aren't the way they were presented and you figured out either very quickly that okay the initial estimate is not going to work or what you were proposed to do is not feasible or is going to take anely amount of time compared to what you were bid on um then I heard that you know as you got through the project you ran into something where you're further down not quite at that you know last hour but further along into the project where okay now you've already burned half the budget and now you might have encountered something or scope has creeped in or the process has changed um and in that case then you have to go back and have another conversation of okay this is not what we originally discussed uh so now we're kind of going a different direction so you have your your initial where the project uh you bid on is not quite what you expected you have one where scope has changed or the direction has changed and then you run into a situation uh which I think we talked about before where you get to the end and you get ready to do the deployment and now you run into a technology or a kind of a deployment issue like either be it through like the Apple store or Google store so there's kind of three ious with that so the first I would like to talk about how I would handle kind of the initial assessment so when I go into like a lot of projects contracts whatever uh I try to have that initial conversation and I know you do too before we even take on a customer we try to get some information about what the project is now that's not always clear because in the customer's mind sometimes they hit someone else do they know what the product is supposed to be but that's not necessarily what the product is uh and in that situation well we could do the like a free assessment take a look at it kind of maybe spend an hour go through it or give them a short bid like hey for maybe 50 100 bucks I'll take a quick look at what you have see if that's what you're telling me it is and then I can give you a better estimate or I'll accept your full bid for the full project As you move into the project though one of the things I think that we've talked about throughout developing and our projects in that is you get into that rhythm of software development you get into that agile uh kind of situation where you kind of go through small iteration changes but with some customers it's hard because they don't know software development maybe they're not a software shop they just need a software product so they don't understand the workings of software development they don't understand agile and getting them to do standups or to do daily scrums or even weekly scrums to kind of do touch points to be oh here's where we're at here's what we discussed and here is the direction we are going is this what you still want and have smaller checkpoints along the way might help avoid some of those pitfalls but then when you get to the end like we talked about with with like the mobile apps and that you run into the situation where you kind of run into things are out of your control and at that point you're going to have to have the conversation with the customer and say look we've run into some roadblocks that weren't potentially there when we talked about at the beginning so is that something that we need to renegotiate or just slide it into the current system some of those that I've done is I've actually tacked on kind of a customer service or a service uh little contract on top of that for like maybe six months like hey for like couple hundred doll or a couple thousand dollar I'll give you a couple hours of support that will kind of wrap into this to get us across the finish line but it still be there for you you know for a couple calls for a couple hours additional after that so there's a little bit of Revenue tacked on to the end not a lot but enough to at least kind of not break bread but at least leave things in a better place than you know be confrontational at the end yeah and I think it comes back to uh really to communicating is that and it is sometimes you're G to have you're just going to have diffic the kind where things aren't going right you're not happy as a developer because you know if you're like me you hate being stuck in the like configuration hell where you're just trying to figure out how to get everything to line up it should work but there's a library that's broken or that's out of sync or something weird like that or cash that needs to be refreshed or something just ridiculously out of your control until you find it and you go oh that's why that works or now it works but it's communic things and it is making sure that up front you set those those clear you know here's our objectives here's what we're going to do here's our time frames and our milestones and along the way make sure that those are Milestones that as you're going through you're either hitting them or you're letting them know that hey we've slipped and sometimes you slip it Forward sometimes it's back usually it's back but it's also it's one of those like hey we've you we've hit some snags so this is where the trajectory is going don't try to and I've been in in projects gone bad where people have either tried to to hide it or you know they they start throwing other features in on top because they're like hey we need to do an extra week of work to catch up well what we're going to do is we're going to throw a couple features on and settle them on those features and then in that we're going to sneak in doing that extra week of work but then what you've done is you've added scope and now you're still trying to for it those things just those never work I've also seen the kind where people start cutting stuff out and they're just like oh well they're not going to really worry about this or they're not gonna you know testing is always awesome like we're not going to test that or we're going to you this this grand scheme that we initially had we're going to just get rid of all of it and they don't they're not really going to know that we're not doing as complex a backup that we're doing or something like that that stuff will bite you so be clear about it and particularly if you start reading somewhere if you're if you're cutting a corner have that conversation so that they know hey we're running we're trying to find a way to make this work and just be honest to them so they can make that decision and either say yes cut that corner or as a conversation I had it's like no we're not going to cut Corners we're not going to reduce scope I need that I have a you in cases sometimes it's an there's an MVP I have a minimally viable product that I have to get out the door and so some of those features that you would cut they can't because they realize that that's critical to the the the Complete product at that point I did want to swing back a little bit because I mentioned pricing and I I don't want people I don't want to get away from like the most basic thoughts of that before we we move on to some of the other things that we've talked about here is getting think about it the best way I've heard it was somebody was like and it was a lawyer of all people uh one time I was like hey people come to him all the time and would can you about this legal thing or that legal thing and yeah as a lawyer in particular and I think doctors and that it's the hey can you take a look at this kind of syndrome and we get that all the time we have our family members and people like that that're like hey my PC is broke can you go work on that but we also we'll have customers that will throw that at us it's say hey we've you know I know you're developing this but we've got this other thing can you go take a look at that and this attorney this lawyer told me it's like one of the things it's like think about it as a as a taxi driver for those of you who you know maybe are too young there's this thing before Uber and lift that was taxi drivers and they're still there in some places and what they do is they flick their little you know they hit the little switch so once you get in there the meter's running and that is sort of what we need to is that we need to be we can do stuff for free in pro bono but we also should be paid for our skills in our time now an easy of thumb is if you got is if you've got a salary you should be able to effectively build Bas on that salary so and it's it's not that very it's not hard to figure what that is is you basically take the number divide it in half and that's your hourly rate and I'm not talking your annual salary but it's to keep it simple an example would be your annual salary is 50,000 let's say and let's divide and you divide it by the number of hours which is typically they do 2,000 which makes it easy because 50 divided 2,000 is just 25 100 divided 2,000 is 50 10 divided 2,000 is so that would be your hourly rate makes it real simple to do the math if and that's sort of like your your break even so your minimum that you should be looking for if for example let's say you know nice even numbers if you're making $40,000 a year your minimum should be $20 an hour if you go below that then you're like you're you're killing yourself but that's the minimum and usually it's something that you're going to do for uh like if you're building out for example uh your your upwork or your Guru place or something like that that you're building out your profile you want to have some references um you may do some pro bono work in that case you may go down to your you know your local grocery store and help them out with the system or or some local you know e-commerce person that you've you've run into help them out with their tools but you're doing that for the reference you're doing that and that's part of the deal it's like hey I'm going to give you a rate that's either free rate discount rate and this is what I'm going to expect from you so they understand that it's sort of a you know a barter type system otherwise you know keep an eye for that because you don't want to be in a situation where you've you've undersold yourself and now you're working long hours and you're not making enough money for it and so that's like I said your minimum usually you're going to run attack at least 10 or 20% onto that because it's going to cover like taxes and all that kinds of other crap and the fact that you're you know sometimes it's a fact that you're now doing you you're giving up your Saturday so you can go spend eight to 10 hours working on this project and so spe specifically when we get into the side hustle don't undersell yourself on the side hustle and then end up you know having allowing it to bite you particularly if that side hustle grows because now you know if you've been charging 10 bucks an hour when you suddenly go to fulltime they're still going to want to do that for 10 bucks hour like why did you suddenly jump from you know 10 to 20 bucks an hour and you're like well now I need that money to feed myself before it was just you know icing on the cake they don't see it that way that's just money that's going out the door for them so now suddenly you've changed the the arrangement quite a bit so make sure that when you're doing your pricing you look at that and in particular look if you know if you're not sure where your salaries if you think you're underpaid or overpaid or something like that there are all kinds of places you can go like glass door.com and places like that that have they do I think most of them do at least quarterly definitely at least annually and a lot of them will do it quarterly so you can see what for my industry for my skill set what should I be charging just a little of extra price bonus stuff in there it goes back to Now sort of swing back conversation it's having those conversations it is is as Michael said it's like having these smaller you know if it's agile you can do it every sometimes even more often that do and often it is having that conversation and making sure that they are up to dat as much as possible with what's going on now you mentioned some of those a little interesting side note there is so sometimes there's you have a customer that doesn't understand software development you the one I I lefted out with this one is somebody that understands that they've been in it for a while they know the you know sort of the intricacies of it sometimes you have a customer that doesn't so I wonder if you got do you have any good stories about where you've tried to like you know set them up and say hey here's something that we do reason we do it is X or something along those lines and and they just don't do it or they they you you send them a saus or you you invite them to meetings and they never show up you have you run anything because I sense that maybe you have the way you said that have you run anything like that that you want to share some stories with h actually I had a couple uh projects couple years ago that were like that um I actually had a friend that had a welding business and um you walk into their shop and basically initially they brought me in because their computer was virus infected and everything was not working and they had been hacked uh got all that cleaned up and then started helping them uh get their systems in place just for using software um they weren't even using the right applications within office and windows just to do their bookkeeping but looking around every customer that they dealt with they literally typed up a Word document or a handwritten note or something somewhere on a Post-It note for what the customer wanted what was going to be done and what the agreed price was it was so informal it was scary how they even made money um it's like walking into those old gas stations and you have one those punch registers not even a digital register it's like how are you keeping track of that for your bookkeeping so we actually had had a week-long discussion on how to get their systems in place to be more automated more digital uh and kind of get it out of the mind of the owner he basically had all the numbers for how much it took to do a job how much parts were nothing was in the computer it was all in his head we spent a week we designed on paper a very simple system for how to kind of get that out of his head and into the computer so basically they could hire someone to talk to the customers to maybe hire a salesperson to go out and uh go look for work so it's not all on him and he can actually go do the jobs and make the money long story short uh we spent a week on that three months went by four months went by a year went by then they came back and said okay now we want to do this because we're going to sell the business and I'm thinking okay here's how much it's going to be they're like well never mind we're going to sell the business um so it that was very challenging and the flip side of that is I had another uh business similar to that it was a nonprofit uh for uh like habitat uh but for uh animals it was uh kind of um a Humane Society type nonprofit they again uh had a Antiquated system that they did a lot of stuff was on paper all their uh customer memberships were all on index cards so if I came in to buy something they had to look through index cards to pull it out to say oh here you are here's how many things spent months with them um and ultimately at the end of the day they were like well we didn't have the money okay I did a little pro bono got them up to speed but then they were like no not ready to pull the plug not ready to pull the plug and then a year later when I'm six contracts in busy they're like oh we need this like yesterday and it's like sorry I can't do it I mean it's just one of those things you know that is wow that that last little bit is one that that happens very often where it's yeah you a lot of companies are like this you like just run and run and run and go and go and go and then they'll stop particularly if you get to a point where it's like okay now we need you to like sign on the DAT of line like you need to sign a statement of work or we need to sign off on this and so the work's going to start you're going to get build you're going to be you're going to be invo and we're going to be expected to be paid on you know whatever that schedule is and a lot of times oh wait a minute now I got to figure out how to pay for this essentially or yeah that's right okay we'll we'll come back to a little bit we're not quite ready or they get busy there's like sometimes they just it's not even money it's just they've got too many other things going on and it times you will see that as a developer you're saying okay I've got to have five people in the next week to be able to get some requirements and I know no those five people are available at all and it's just like hey let's you know let's just like put a little bookmark on this let's come back to it later and then we can where we can actually go through this conversation with these people it'll be time that's where it's worth it to have that clear communication because if it's something they're going to start up and they're going to bring it back you know it's going to go to sleep and to come back in six months those conversations are great times to say hey we can do that I'll you know tell you I'll go find the work however if we have to start it back up in six months that it's going to there's going to be cost related to the startup and know sometimes we don't want to do that because we're like hey I've got more work and I can just jump back in it's very good to have that on to say yes we can pause however there's going to be a cost to pausing and then coming back that's in addition to all of this other stuff that it's going to change some of our or sometimes it's as simple as you know those estimates we put together those May change in six months because the last thing you want to do is be in a situation where you know you go and put together a bunch of pricing and I've seen this a few times they come back a year later they're like Yep this like well great but we changed our rates six months ago because things go up you prices go up so here's what it's going to take or the technology a lot of has changed so it's something where it's like you know we could have done that for that price then however because of the changes now it's going to be very different or now you were working on version one of that there version three we need to redo you know recope the entire project because you don't want to do a you don't want to have a ver we could we could build that but it's going to cost you more and now you're gonna almost immediately going to have to upgrade that so if you run into issues with uh competitive bidding where they come to you they go price around and then they come back yeah I've done that a lot too where it's you know I and that's even You' sort of alluded to where we'll come in and do uh like sort of an initial hey I'll spend a few hours we'll do sort of like a either an assessment or an audit or an initial I even done stuff for it's initial uh essentially requirements Gathering the point of an RFP I mean I've even put stuff together to a level of like going through an RFP process for them and saying hey here's what's out here and here's what it looks like and and they'll come back later they'll get to the end and they'll say we'll think about it and sometimes they'll think about it and they'll take you know what I put together and they'll go off run off somewhere else and find somebody that says hey we'll do it for half the price um you know they do that sometimes they come back and they'll they'll try to you know sort of beat you down on your prices and say hey I found this other group that said they would do it for you know $2 an hour less or you know whatever that is and those are those are difficult those very difficult conversations but a lot of times that's where I'm going to stick to my guns and say hey this was priced based on what we what our rates are and things like that if you can find somebody can do it you know cheaper then go ahead by all means go ahead and do it cheaper I usually say hey but or did they include this and this and this and this or sometimes it'll be did they just look at what we you know what we presented you and then they just you know you just talked them into a lower price how much do they know that how much are you confident that they're going to actually be able to produce on based on that and it's it's not necessarily to talk bad about them it's more to just say hey make sure you've like covered you know you've actually covered all of your bases when you do this and you're not just looking for the you know the lower price because yeah you're going to get in the end you usually are going to get what pay for and if you do that good luck and I've had a couple back you know a year or two years sometime further down the road and said oh you know we went with this other group and they were great and then it ended up not working at all so can you help us out I like yeah and then they usually will give you stob story of like well we've spent all our money and it's like well I'm sorry I I would and sometimes I've had people that have come to me after you know after they've gone through all that and I said I wish I could have talked to you earlier but you know I can't you know my company can't pay for your mistakes it's my people can't take pays because you guys you know a crappy company get it out of that crappy company get them to do stuff but don't come to me and expect me to be able to you know like make you whole when wasn't my fault and I think that as Engineers a lot of times we feel like hey we we want to swoop in and be you know the hero but you also you have to remember you're running a business and so you have to you know figure out going conversations like what am I comfortable with what do I need to pay my bills to be able to put food on the table to do the things that I need to do as a developer and as you know so I can provide people you know a good resource and a a good solution as opposed to you know 80 hours a week to try to make all the ends meet and it's because partially because I'm just not charging enough for uh and this is honestly this is in any business there's a lot of businesses a lot of people I've talked to that they are working themselves ragged because they're not charging enough for service so yeah I've run it out more than a few times thoughts yeah the biggest one I've run into is I've had some people you know walk away you know take what I give them for the RFP and they say no uh but I've had people come back and it has actually cost more to fix the problem uh and I've had to redo the rfps and the bids even at at the current rate but it's going to take longer to fix it and that might be an interesting little bonus topic we can talk about afterwards but um it's something to consider when you're doing your pricing and when you're talking to your customers leave it with them if you want to take it somewhere else you want to shop around that's fine um if things don't work out you can come back to me but this will not be the same conversation this will be a different conversation and possibly a different price rate so that's one thing you can kind of set the expectations when leaving with the customer leave on a good note leave it o the door open for them to come back but set the expectation that it's not I'm not going to either a give you the same rate or B I'm not going to clean up someone else's mess for the same price yeah that's that's always one it's just you know you don't really want to to set the tone and and suggest go bad but just sort of say hey this is you know this is where now things are going to change things are going to move on so we may have a different discussion and maybe it'll be the exact same conversation and same estimates but maybe not because things change it's just like everything else you know if you want to get a house built today you're get a certain price and and quote but if you come back a year from now it's possibly possibly and probably different and you have to take those into account that'll wrap this up from the the podcast side I think it's we've got plenty here for you guys U as always shot us info uh email at info developer.com if you have recommendations anything like that for future topics or any questions that we may actually effectively read that question out online and and go head and make a whole discussion that uh you can always check us out on the video side as well if you're the video side then hey we've got a couple little bonus things we're going to throw at you but those of you out on the podcast go ahead and make sure you keep your hands on the wheel and just keep on D driving down the road you'll catch us next episode until then go out there and have yourself a great day a great week and we will talk to you next time but the rest of you are still here do want to talk a little bit about the um taking over something I like I don't want to go too this I think we'll actually probably do another episode on this uh because we have talked about this and touched on a couple times is the and we actually talked about it an episode two ago here and it's really it is the where you have the idea of sometimes is by I do want to throw a couple of thoughts just like some additional ones that came out of the um basically like extend versus from scratch or something along those lines is it is the I've come a lot of projects over the years where there's something that exists sometimes it's very functional sometimes it is very dysfunctional it depends it's like there's different reasons that customers have come to us sometimes it's just old it's the you know it's technology is 10 years old they know it it's seted they need to you know upgrade and all of those are slightly different you know convers thoughts on that is just my recommendations on that when you're going into those kinds of situations is one if at all if you have the ability to do it take a look at what they have not just like the application although that's key if they can walk you through how they use it today that's going to be huge because it's going to be this is you're going to know this is what they're experiencing this is what it looks like this is how it you know feels to them so you can have idea of like the level of delivery that you're going to need to have with the final project the other thing is if you can look at the source code and particularly the infrastructure that they've got what is the architecture it is built on because it could be something that you could say and they can tell you hey it's pick a language it's Java it's let's say SQL server on the back and we've got we're out on you know Amazon servers or something like that you know virtual machines that we're running it like okay cool that doesn't really tell you much because it could be that the way it works is it everything's sitting in store procedures in in SQL server and so you have to deal with SQL server with store procedure work maybe that's what you want maybe it's not but you need to know that it could also be that the database is one table and it's 400 columns it's really a relational database uh that is something I've run into recently where it was it looked awesome until I was like oh here's the schema but it was just tables and and it wasn't like the detail schema is just here's the tables and here's the fields and I think it was gave me some field types they didn't have anything about key relationships or anything like that and I come to find out because none of those exist they don't have they they primary keys are crap their the relationships don't exist there's the data is a mess it's just one of those it's like oh okay I can find a way to make it work but it's very complicated to take that thing and convert it into an actual real Database The Source Code take a look at the end from The enduser Experience like I said have them walk through the application source code any documentation they have is going to be helpful if they say hey we've got this thing would you like to take a look at it yes before they even finish you can just say yes I want to take a look at it it may not at the time feel important but is I'm amazed how often I found like key business rules hidden into documents that I thought were not going to be very useful key little like warning signs that hey wait a minute why do we have this thing out here if you've got a solution that's supposed to be all that data those are the things that you want to get as soon as you can and then take a look at it and figure out do you what is the monster that they have today don't be afraid to look at it from the point of from scratch what if I just took this whole thing and I just threw out sort of what's exist what exists and you may not have be able to you may have to at least you know keep the data I throw this out start with a whole new application build it from scratch can I do that better and then I just have to you know factor in you're going to have to transition their users their data into whatever your new system is or take a look at what are the what is the the upgrade path or the features that they're going additional going to require and if you can take a look at like what is that going to look like what is the code going to require what is the if there's you know certain pages like hey this page we want to add these five things to it take a look at that and get an idea what is the effort of putting that in there just raw but then also if you want to build on top of it and then maybe the you know the middle ground is like what if we what if we want to take what they've done we're going to take a few pieces of it you know like for example maybe the database is okay so we're going to keep the database but we're going to start like rewriting key pieces of it maybe in the language that they have maybe in a different one sometimes you can do some really interesting stuff behind the scenes where maybe they've got this entire uh their entire system is you know some sort of MVC weish web app kind of thing and the core the data is good enough that you say you know what instead of trying to make all of their like let's say classic ASP windows work maybe we just have a couple of react because we're react people let's say we have some react screens that we are just now they're just links that we add in so instead of extending the SP we're just linking out Ste their CSS so the style looks the same stuff like that there's a lot of ways to to skin that c no offense to the animal lovers out there but extra offense to the cat lovers because let's say you dog lovers are better all right I probably just like lost half our audience so we have one audience member left now as what are your thoughts Michael yeah one of the big challenges and you got to be careful from a Consulting perspective is don't always come in with rewrite in mind um because well as developers we always like working with something fresh something new and we always think we can write things better that's not always the case especially when customers are on a budget look at doing things like checklists or like we've talked about doing some type of assessment have something aside so that when you're talking to the customer you have certain questions you can ask to get yourself familiar with what they're working on what their problems are see if you can assess what their requirements are what the user requirements are what their application requirements are and then figure out if what they have Works within their box or something that needs to be broken down and maybe uh you know built a new uh some of the things to consider and you touched on it Rob so you know we have Legacy applications we have abandoned applications we have applications where I've seen at least where someone hasn't touched on it in years and they dust it off and they like hey I want to put this out there well hm let's see that language isn't around anymore or that Hardware doesn't work anymore and you have to kind of rebuild things just from that perspective you don't necessarily have to do a whole new application but you may have to rewrite a module uh and you know where I come in from my side you know do the QA assessment that's where I look at like integration testing things like that within an application because you may say hey I want to take this software put this on a totally different platform well do you have the specs or the understanding of what is required for that software to work on this other platform so there's things like that you need to think of as you're going through this process yeah I think those are some those excellent points there and hopefully that helps you guys out if you're running into something like this whether you're an employee and they said oh hey we've got this other project we're dusting off or whether you're consultant or you know you're out there doing your little side hustle and you're picking up a project that is uh in particular maybe some other developers you know abandon it for whatever reason and now you're having to to own this uh just some good things to help yourself hope not get into a crunch but now we are into a crunch in relating to time so wrap this one and uh don't worry we're going to continue coming back here you can check us out same bat Time same bat or same developer or Time same developer Channel and we're just going to continue chugging along here having some of our conversations share those out you can leave comments an email info developer.com but go out there have yourself a great time time and we will talk to you next time [Music]
Transcript Segments
[Music]
well hello and welcome back we are once
again here
and we are checking things out we are
moving along in our series of of
discussions and figure out what we wna
you sort of like how do we what we want
to be when we grow up to some extent
this episode I want to change gears a
little bit from the uh step out a little
bit from the develop andur changes and
talk about a topic we touched on a few
times but I really want to revisit it
because I conversation yesterday with a
customer that makes it relevant I think
or is a is a good lesson learned and
this goes into pricing we have talked
about pricing a lot Michael and I in
particular we've talked about both our
uh particularly when we got into our our
classes and how much you want to you
know how much do you charge for that
content and what does that look like and
then also our services and our products
that we whether it's Vision QA that is
building out or areb Consulting and I
think a lot of developers run into this
same problem
where we don't charge enough sometimes
is that and then some people are just
going to go nuts and they're going to
charge you a billion dollars and they're
going to but I think if you're a true
developer love doing this work and so
this is something that's fun and it's
really more about getting paid so you
can pay the bills and not really because
you're doing this to become rich if we
do none of us complain it's not like
we're GNA say oh man those bags of money
somewhere else but
we do I think struggle with that and
it's it's hard to figure out what what
should I charge you know what actually
makes sense for me to charge for my
service and particularly at whatever
level I'm at whether I'm starting out or
whether I'm further along and before I
go into my story I want throw it to you
m any thoughts on pricing that you want
to throw out
there yeah we just had a conversation on
that this week because um in the
co-starter class that I'm involved in
right now
to help boost uh Envision QA one of the
other students was looking to Branch out
their business and they're a bakery and
you wouldn't think Tech really goes with
a bakery but they had some ideas that
they wanted to pursue outside of the
brick and morar
and it led to some discussions on you
know what do they need in that but the
key issue you run into with anything
really even when talking to customers is
sometimes when you're having a
conversation with someone they don't
really know what they want so trying to
piece together what type of software
they need what type of application they
want can be difficult
and the price can be really high at the
start and then you can kind of stream it
or filter it down to something that's a
little more feasible but when a customer
comes to you and say hey I want
something like uh Airbnb or I want
something I want someone to build me
something like Facebook
you're not going to tell them yeah I can
do this for $5,000 no way um a lot of
them will come to you and say hey can
you build this for $5,000 and the answer
is going to be um you're crazy and
that's because they typically don't
understand what really goes into it
what's involved so what I like to do uh
is typically start at the high level try
to get the requirements that they want
in like a on- hour session and if I can
summarize that and send it to them first
and then get feedback on that then it
helps us get a little bit closer to that
price tag but typically though it it's
hard you know when you really don't know
what they want or if the customer
unclear what they want then when you you
know make a bid or you give a price for
one thing you could really get yourself
in trouble either you're going to be too
high or too
low yeah and that's exactly where really
it's exactly what I ran into with this C
was originally we when I first started
working with him a few weeks ago a month
ago um it was sort hey here's our budget
and we want to rewrite it was
essentially we want to read a rewrite a
system here's our budget and I was
like that's your budget we can assuming
that these things are in place and then
it was one of
those what was there enough to say okay
that could make sense that's to do it
from scratch then we could probably do
it it seemed like a simp fairly simple
application however getting into it and
starting to dig into the various
components and the way it was built it
became something was much more
complicated and so the initial you know
it's initially it's a time frame about
four to six weeks and that would work
out with their budget and everything
else and that all sort of like it's one
of those that they said this is what
I've got this is the box that I'm
putting you in it's like okay we'll find
a way to get something into that box
well going into it and talking to them
we started finding out that no the not
going to be able to fit this in the box
so it was one of those you I think a lot
of people sort of shy away from those
conversations where it's like hey I went
to you I said this is what it was going
to take it's going to take something
else or we're gonna have to change stuff
quite a bit and that was how the
conversation went it was like hey here's
these a couple key
areas they are not going to be full
featured like you know sort of had
planed planned initially those things
are going to have to be rained in quite
AIT bit because as we and it was really
as a kind of stuff where he was General
early on and then he got more specific
about what he wanted and it's like oh
wait there's a difference between for
example you use like a make me Airbnb or
Facebook it's like or Google it's like
hey if if you want me to make you a page
that all you do is you enter something
it gives you some search results but
it's not searching the Internet it's
searching some little database then sure
we can do that all day long now if you
rest of the
project and there's a reason that
they've had multiple Engineers paid
multiple money a lot of a lot of money
for a lot of years to get to where
they're at that's you know I think where
we run into sometimes you have people
that just have unrealistic expectations
but sometimes and particularly when you
are as clear as you can be about this is
what we are this is as a developer what
I am seeing that you want and you set
those expectations from the the start
and they get to say yes that's what I
want or they'll say no here's some
additional things I want or those things
that you mentioned I don't really need
then you can get that clearer picture
and that allowed through just really
clear communication along the way when
we had this conversation to say look
this is where we're at this is what
we're seeing this is how far we can get
but I don't think it's going to get you
where you need to be and it turned out
to be a really good conversation because
he said yeah I get that okay okay I
didn't realize that the situation the
stuff we had quite as bad as it was
that's happened more than a few times
that I've dealt with people and then you
end up with something where now it's
like okay it turned out to be a good
enough thing because we're just going to
extend the product project out and be
able to get for what they need
now that being said there are some
things that can go completely off the
rails and even in those cases it is
worth it to have that conversation
because sometimes you need to decide
whether you're going to continue because
you you know whatever estimation or
whatever you did if you said it was
going to be a you know 100 Hour project
and see that now something it's going to
be a 500 project as you're getting into
it not when you get to hour 99 but when
you start seeing that thing going off
the you need to start having the
communication of hey this doesn't seem
like I think we're going to run into
problems and that com that conversation
and that communication is going to at
least help you when you get there to
either say hey I can't afford to give
you 400 hours that I think I'm suddenly
going to have so we need to figure this
out hey I'm going to donate a bunch of
hours and get you
there I've talked a lot so I think I
want to get a little bit of your
thoughts on this uh you know currently
here Michael where we're where we're at
some of the things I've laid out and
maybe some experiences you've had like
that sure so I've heard a couple things
there so one I heard um you know you
having a difficult conversation with the
customer you know when you've started a
project you've taken a bid on a project
and you start getting in and you start
realizing things aren't the way they
were presented and you figured out
either very quickly that okay the
initial estimate is not going to work or
what you were proposed to do is not
feasible or is going to take anely
amount of time compared to what you were
bid on um then I heard that you know as
you got through the project you ran into
something where you're further down not
quite at that you know last hour but
further along into the project where
okay now you've already burned half the
budget and now you might have
encountered something or scope has
creeped in or the process has changed um
and in that case then you have to go
back and have another conversation of
okay this is not what we originally
discussed uh so now we're kind of going
a different direction so you have your
your initial where the project uh you
bid on is not
quite what you expected you have one
where scope has changed or the direction
has changed and then you run into a
situation uh which I think we talked
about before where you get to the end
and you get ready to do the deployment
and now you run into a technology or a
kind of a deployment issue like either
be it through like the Apple store or
Google store so there's kind of three
ious with that so the first I would like
to talk about how I would handle kind of
the initial assessment so when I go into
like a lot of projects contracts
whatever uh I try to have that initial
conversation and I know you do too
before we even take on a customer we try
to get some information about what the
project is now that's not always clear
because in the customer's mind sometimes
they hit someone else do they know what
the product is supposed to be but that's
not necessarily what the product is uh
and in that situation well we could do
the like a free assessment take a look
at it kind of maybe spend an hour go
through it or give them a short bid like
hey for maybe 50 100 bucks I'll take a
quick look at what you have see if
that's what you're telling me it is and
then I can give you a better estimate or
I'll accept your full bid for the full
project As you move into the project
though one of the things I think that
we've talked about throughout developing
and our projects in that is you get into
that rhythm of software development you
get into that agile uh kind of situation
where you kind of go through small
iteration changes but with some
customers it's hard because they don't
know software development maybe they're
not a software shop they just need a
software product so they don't
understand the workings of software
development they don't understand agile
and getting them to do standups or to do
daily scrums or even weekly scrums to
kind of do touch points to be oh here's
where we're at here's what we discussed
and here is the direction we are going
is this what you still want and have
smaller checkpoints along the way might
help avoid some of those pitfalls but
then when you get to the end like we
talked about with with like the mobile
apps and that you run into the situation
where you kind of run into things are
out of your control and at that point
you're going to have to have the
conversation with the customer and say
look we've run into some roadblocks that
weren't potentially there when we talked
about at the beginning so is that
something that we need to
renegotiate or just slide it into the
current system some of those that I've
done is I've actually tacked on kind of
a customer service or a service uh
little contract on top of that for like
maybe six months like hey for like
couple hundred doll or a couple thousand
dollar I'll give you a couple hours of
support that will kind of wrap into this
to get us across the finish line but it
still be there for you you know for a
couple calls for a couple hours
additional after that so there's a
little bit of Revenue tacked on to the
end not a lot but enough to at least
kind of not break bread but at least
leave things in a better place than you
know be confrontational at the end yeah
and I think it comes back to uh really
to communicating is that and it is
sometimes you're G to have you're just
going to have
diffic the kind where things aren't
going right you're not happy as a
developer because you know if you're
like me you hate being stuck in the like
configuration hell where you're just
trying to figure out how to get
everything to line up it should work but
there's a library that's broken or
that's out of sync or something weird
like that or cash that needs to be
refreshed or something just
ridiculously out of your control until
you find it and you go oh that's why
that works or now it works but it's
communic things and it is making sure
that up front you set those those clear
you know here's our objectives here's
what we're going to do here's our time
frames and our milestones and along the
way make sure that those are Milestones
that as you're going through you're
either hitting them or you're letting
them know that hey we've slipped and
sometimes you slip it Forward sometimes
it's back usually it's back but it's
also it's one of those like hey we've
you we've hit some snags so this is
where the trajectory is going don't try
to and I've been in in projects gone bad
where people have either tried to to
hide it or
you know they they start throwing other
features in on top because they're like
hey we need to do an extra week of work
to catch up well what we're going to do
is we're going to throw a couple
features on and settle them on those
features and then in that we're going to
sneak in doing that extra week of work
but then what you've done is you've
added scope and now you're still trying
to for it those things just those never
work I've also seen the kind where
people start cutting stuff out and
they're just like oh well they're not
going to really worry about this or
they're not gonna you know testing is
always awesome like we're not going to
test that or we're going to you this
this grand scheme that we initially had
we're going to just get rid of all of it
and they don't they're not really going
to know that we're not doing as complex
a backup that we're doing or something
like that that stuff will bite you so be
clear about it and particularly if you
start reading somewhere if you're if
you're cutting a corner have that
conversation so that they know hey we're
running we're trying to find a way to
make this work and just be honest to
them so they can make that decision and
either say yes cut that corner or as a
conversation I had it's like no we're
not going to cut Corners we're not going
to reduce scope I need that I have a you
in cases sometimes it's an there's an
MVP I have a minimally viable product
that I have to get out the door and so
some of those features that you would
cut they can't because they realize that
that's critical to the the the Complete
product at that point I did want to
swing back a little bit because I
mentioned pricing and I I don't want
people I don't want to get away from
like the most basic thoughts of that
before we we move on to some of the
other things that we've talked about
here is getting think about it the best
way I've heard it was somebody was like
and it was a lawyer of all people uh one
time I was like hey people come to him
all the time and would can you about
this legal thing or that legal thing and
yeah as a lawyer in particular and I
think doctors and that it's the hey can
you take a look at this kind of syndrome
and we get that all the time we have our
family members and people like that
that're like hey my PC is broke can you
go work on that but we also we'll have
customers that will throw that at us
it's say hey we've you know I know
you're developing this but we've got
this other thing can you go take a look
at that and this attorney this lawyer
told me it's like one of the things it's
like think about it as a as a taxi
driver for those of you who you know
maybe are too young there's this thing
before Uber and lift that was taxi
drivers and they're still there in some
places and what they do is they flick
their little you know they hit the
little switch so once you get in there
the meter's running and that is sort of
what we need to is that we need to be we
can do stuff for free in pro bono but we
also should be paid for our skills in
our time now an easy of thumb is if you
got is if you've got a salary you should
be able to effectively build Bas on that
salary so and it's it's not that very
it's not hard to figure what that is is
you basically take the number divide it
in half and that's your hourly rate and
I'm not talking your annual salary but
it's to keep it simple an example would
be your annual salary is 50,000 let's
say and let's divide and you divide it
by the number of hours which is
typically they do 2,000 which makes it
easy because 50 divided 2,000 is just 25
100 divided 2,000 is 50 10 divided 2,000
is so that would be your hourly
rate makes it real simple to do the math
if and that's sort of like your your
break even so your minimum that you
should be looking for if for example
let's say you know nice even numbers if
you're making $40,000 a year your
minimum should be $20 an hour if you go
below that then you're like you're
you're killing yourself but that's the
minimum and usually it's something that
you're going to do for uh like if you're
building out for example uh your your
upwork or your Guru place or something
like that that you're building out your
profile you want to have some references
um you may do some pro bono work in that
case you may go down to your you know
your local grocery store and help them
out with the system or or some local you
know e-commerce person that you've
you've run into help them out with their
tools but you're doing that for the
reference you're doing that and that's
part of the deal it's like hey I'm going
to give you a rate that's either free
rate discount rate and this is what I'm
going to expect from you so they
understand that it's sort of a you know
a barter type system otherwise you know
keep an eye for that because you don't
want to be in a situation where you've
you've undersold yourself and now you're
working long hours and you're not making
enough money for it and so that's like I
said your minimum usually you're going
to run attack at least 10 or 20% onto
that because it's going to cover like
taxes and all that kinds of other crap
and the fact that you're you know
sometimes it's a fact that you're now
doing you you're giving up your Saturday
so you can go spend eight to 10 hours
working on this project and so spe
specifically when we get into the side
hustle don't undersell yourself on the
side hustle and then end up you know
having allowing it to bite you
particularly if that side hustle grows
because now you know if you've been
charging 10 bucks an hour when you
suddenly go to fulltime they're still
going to want to do that for 10 bucks
hour like why did you suddenly jump from
you know 10 to 20 bucks an hour and
you're like well now I need that money
to feed myself before it was just you
know icing on the cake they don't see it
that way that's just money that's going
out the door for them so now suddenly
you've changed the the arrangement quite
a bit so make sure that when you're
doing your pricing you look at that and
in particular
look if you know if you're not sure
where your salaries if you think you're
underpaid or overpaid or something like
that there are all kinds of places you
can go like glass door.com and places
like that that
have they do I think most of them do at
least quarterly definitely at least
annually and a lot of them will do it
quarterly so you can see what for my
industry for my skill set what should I
be charging just a little of extra price
bonus stuff in
there it goes back to Now sort of swing
back conversation it's having those
conversations it is is as Michael said
it's like having these smaller you know
if it's agile you can do it every
sometimes even more often that do and
often it is having that conversation and
making sure that they are up to dat as
much as possible with what's going on
now you mentioned some of those a little
interesting side note there is so
sometimes there's you have a customer
that doesn't understand software
development you the one I I lefted out
with this one is somebody that
understands that they've been in it for
a while they know the you know sort of
the intricacies of it sometimes you have
a customer that doesn't so I wonder if
you got do you have any good stories
about where you've tried to like you
know set them up and say hey here's
something that we do reason we do it is
X or something along those lines and and
they just don't do it or they they you
you send them a saus or you you invite
them to meetings and they never show up
you have you run anything because I
sense that maybe you have the way you
said that have you run anything like
that that you want to share some stories
with h actually I had a couple uh
projects couple years ago that were like
that um I actually had a friend that had
a welding business and um you walk into
their shop and basically initially they
brought me in because their computer was
virus infected and everything was not
working and they had been hacked uh got
all that cleaned up and then started
helping them uh get their systems in
place just for using software um they
weren't even using the right
applications within office and windows
just to do their bookkeeping but looking
around every customer that they dealt
with they literally typed up a Word
document or a handwritten note or
something somewhere on a Post-It note
for what the customer wanted what was
going to be done and what the agreed
price was it was so informal it was
scary how they even made money um it's
like walking into those old gas stations
and you have one those punch registers
not even a digital register it's like
how are you keeping track of that for
your bookkeeping so we actually had had
a week-long discussion on how to get
their systems in place to be more
automated more digital uh and kind of
get it out of the mind of the owner he
basically had all the numbers for how
much it took to do a job how much parts
were nothing was in the computer it was
all in his head we spent a week we
designed on paper a very simple system
for how to kind of get that out of his
head and into the computer so basically
they could hire someone to talk to the
customers to maybe hire a salesperson to
go out and uh go look for work so it's
not all on him and he can actually go do
the jobs and make the money long story
short uh we spent a week on that three
months went by four months went by a
year went by then they came back and
said okay now we want to do this because
we're going to sell the business and I'm
thinking okay here's how much it's going
to be they're like well never mind we're
going to sell the business um
so it that was very challenging and the
flip side of that is I had another uh
business similar to that it was a
nonprofit uh for uh like habitat uh but
for uh animals it was uh kind of um a
Humane Society type
nonprofit they again uh had a
Antiquated system that they did a lot of
stuff was on paper
all their uh customer memberships were
all on index cards so if I came in to
buy something they had to look through
index cards to pull it out to say oh
here you are here's how many things
spent months with them um and ultimately
at the end of the day they were like
well we didn't have the money okay I did
a little pro bono got them up to speed
but then they were like no not ready to
pull the plug not ready to pull the plug
and then a year later when I'm six
contracts in busy they're like oh we
need this like yesterday and it's like
sorry I can't do it I mean it's just one
of those things you
know that is wow that that last little
bit is one that that happens very often
where
it's yeah you a lot of companies are
like this you like just run and run and
run and go and go and go and then
they'll stop particularly if you get to
a point where it's like okay now we need
you to like sign on the DAT of line like
you need to sign a statement of work or
we need to sign off on this and so the
work's going to start you're going to
get build you're going to be you're
going to be invo and we're going to be
expected to be paid on you know whatever
that schedule is and a lot of times oh
wait a minute now I got to figure out
how to pay for this essentially or yeah
that's right okay we'll we'll come back
to a little bit we're not quite ready or
they get busy there's like sometimes
they just it's not even money it's just
they've got too many other things going
on and it times you will see that as a
developer you're saying okay I've got to
have five people in the next week to be
able to get some requirements and I know
no those five people are available at
all and it's just like hey let's you
know let's just like put a little
bookmark on this let's come back to it
later and then we can where we can
actually go through this conversation
with these people it'll be
time that's where it's worth it to have
that clear communication because if it's
something they're going to start up and
they're going to bring it back you know
it's going to go to sleep and to come
back in six months those conversations
are great times to say hey we can do
that I'll you know tell you I'll go find
the work however if we have to start it
back up in six months that it's going to
there's going to be cost related to the
startup and know sometimes we don't want
to do that because we're like hey I've
got more work and I can just jump back
in it's very good to have that on to say
yes we can pause however there's going
to be a cost to pausing and then coming
back that's in addition to all of this
other stuff that it's going to change
some of our or sometimes it's as simple
as you know those estimates we put
together those May change in six months
because the last thing you want to do is
be in a situation where you know you go
and put together a bunch of pricing and
I've seen this a few times they come
back a year later they're like Yep this
like well great but we changed our rates
six months ago because things go up you
prices go up so here's what it's going
to take or the technology a lot of has
changed so it's something where it's
like you know we could have done that
for that price then however because of
the changes now it's going to be very
different or now you were working on
version one of that there version three
we need to redo you know recope the
entire project because you don't want to
do a you don't want to have a ver we
could we could build that but it's going
to cost you more and now you're gonna
almost immediately going to have to
upgrade that so if you run into issues
with uh competitive bidding where they
come to you they go price around and
then they come back yeah I've done that
a lot too where it's you know I and
that's even You' sort of alluded to
where we'll come in and do uh like sort
of an initial hey I'll spend a few hours
we'll do sort of like a either an
assessment or an audit or an initial I
even done stuff for it's initial uh
essentially requirements Gathering the
point of an RFP I mean I've even put
stuff together to a level of like going
through an RFP process for them and
saying hey here's what's out here and
here's what it looks like and and
they'll come back later they'll get to
the end and they'll say we'll think
about it and sometimes they'll think
about it and they'll take you know what
I put together and they'll go off run
off somewhere else and find somebody
that says hey we'll do it for half the
price um you know they do that sometimes
they come back and they'll they'll try
to you know sort of beat you down on
your prices and say hey I found this
other group that said they would do it
for you know $2 an hour less or you know
whatever that is and those are those are
difficult those very difficult
conversations but a lot of times that's
where I'm going to stick to my guns and
say hey this was priced based on what we
what our rates are and things like that
if you can find somebody can do it you
know cheaper then go ahead by all means
go ahead and do it cheaper I usually say
hey but or did they include this and
this and this and this or sometimes
it'll be did they just look at what we
you know what we presented you and then
they just you know you just talked them
into a lower price how much do they know
that how much are you confident that
they're going to actually be able to
produce on based on that and it's it's
not necessarily to talk bad about them
it's more to just say hey make sure
you've like covered you know you've
actually covered all of your bases when
you do this and you're not just looking
for the you know the lower price because
yeah you're going to get in the end you
usually are going to get what pay for
and if you do that good luck and I've
had a couple back you know a year or two
years sometime further down the road and
said oh you know we went with this other
group and they were great and then it
ended up not working at all so can you
help us out I like yeah and then they
usually will give you stob story of like
well we've spent all our money and it's
like well I'm sorry
I I would and sometimes I've had people
that have come to me after you know
after they've gone through all that and
I said I wish I could have talked to you
earlier but you know I can't you know my
company can't pay for your mistakes it's
my people can't take pays because you
guys you know a crappy company get it
out of that crappy company get them to
do stuff but don't come to me and expect
me to be able to you know like make you
whole when wasn't my fault and I think
that as Engineers a lot of times we feel
like hey we we want to swoop in and be
you know the hero but you also you have
to remember you're running a business
and so you have to you know figure out
going conversations like what am I
comfortable with what do I need to pay
my bills to be able to put food on the
table to do the things that I need to do
as a developer and as you know so I can
provide people you know a good resource
and a a good solution as opposed to
you know 80 hours a week to try to make
all the ends meet and it's because
partially because I'm just not charging
enough for uh and this is honestly this
is in any business there's a lot of
businesses a lot of people I've talked
to that they are working themselves
ragged because they're not charging
enough for service so yeah I've run it
out more than a few times
thoughts yeah the biggest one I've run
into is I've had some people you know
walk away you know take what I give them
for the RFP and they say no uh but I've
had people come back and it has actually
cost more to fix the problem uh and I've
had to redo the rfps and the bids even
at at the current rate but it's going to
take longer to fix it and that might be
an interesting little bonus topic we can
talk about afterwards but um it's
something to consider when you're doing
your pricing and when you're talking to
your customers leave it with them if you
want to take it somewhere else you want
to shop around that's fine um if things
don't work out you can come back to me
but this will not be the same
conversation this will be a different
conversation and possibly a different
price rate so that's one thing you can
kind of set the expectations when
leaving with the customer leave on a
good note leave it o the door open for
them to come back but set the
expectation that it's not I'm not going
to either a give you the same rate or B
I'm not going to clean up someone else's
mess for the same
price yeah that's that's always one it's
just you know you don't really want to
to set the tone and and suggest go bad
but just sort of say hey this is you
know this is where now things are going
to change things are going to move on so
we may have a different discussion and
maybe it'll be the exact same
conversation and same estimates but
maybe not because things change it's
just like everything else you know if
you want to get a house built today
you're get a certain price and and quote
but if you come back a year from now
it's possibly possibly and probably
different and you have to take those
into
account that'll wrap this up from the
the podcast side I think it's we've got
plenty here for you guys U as always
shot us info uh email at info
developer.com if you have
recommendations anything like that for
future topics or any questions that we
may actually effectively read that
question out online and and go head and
make a whole
discussion that uh you can always check
us out on the video side as well if
you're the video side then hey we've got
a couple little bonus things we're going
to throw at you but those of you out on
the podcast go ahead and make sure you
keep your hands on the wheel and just
keep on D driving down the road you'll
catch us next episode until then go out
there and have yourself a great day a
great week and we will talk to you next
time but the rest of you are still here
do want to talk a little bit about the
um taking over something I like I don't
want to go too this I think we'll
actually probably do another episode on
this uh because we have talked about
this and touched on a couple times is
the and we actually talked about it an
episode two ago here and it's really it
is the where you have the idea of
sometimes is by I do want to throw a
couple of thoughts just like some
additional ones that came out of the um
basically like extend versus from
scratch or something along those lines
is it is the I've come a lot of projects
over the years where there's something
that exists sometimes it's very
functional sometimes it is very
dysfunctional it depends it's like
there's different reasons that customers
have come to us sometimes it's just old
it's the you know it's technology is 10
years old they know it it's seted they
need to you know upgrade and all of
those are slightly different you know
convers
thoughts on that is just my
recommendations on that when you're
going into those kinds of situations is
one if at all if you have the ability to
do it take a look at what they have not
just like the application although
that's key if they can walk you through
how they use it today that's going to be
huge because it's going to be this is
you're going to know this is what
they're experiencing this is what it
looks like this is how it you know feels
to them so you can have idea of like the
level of delivery that you're going to
need to have with the final project the
other thing is if you can look at the
source code and particularly the
infrastructure that they've got what is
the architecture it is built on because
it could be something that you could say
and they can tell you hey it's pick a
language it's Java it's let's say SQL
server on the back and we've got we're
out on you know Amazon servers or
something like that you know virtual
machines that we're running it like okay
cool that doesn't really tell you much
because it could be that the way it
works is it everything's sitting in
store procedures in in SQL server and so
you have to deal with SQL server with
store procedure work maybe that's what
you want maybe it's not but you need to
know that it could also be that the
database is one table and it's 400
columns it's really a relational
database uh that is something I've run
into recently where it was it looked
awesome until I was like oh here's the
schema but it was just tables and and it
wasn't like the detail schema is just
here's the tables and here's the fields
and I think it was gave me some field
types they didn't have anything about
key relationships or anything like that
and I come to find out because none of
those exist they don't have they they
primary keys are crap their the
relationships don't exist there's the
data is a mess it's just one of those
it's like oh okay I can find a way to
make it work but it's very complicated
to take that thing and convert it into
an actual real
Database The Source Code take a look at
the end from The enduser Experience like
I said have them walk through the
application source code any
documentation they have is going to be
helpful if they say hey we've got this
thing would you like to take a look at
it yes before they even finish you can
just say yes I want to take a look at it
it may not at the time feel important
but is I'm amazed how often I found like
key business rules hidden into documents
that I thought were not going to be very
useful key little like warning signs
that hey wait a minute why do we have
this thing out here if you've got a
solution that's supposed to
be all that data those are the things
that you want to get as soon as you can
and then take a look at it and figure
out do you what is the monster that they
have today don't be afraid to look at it
from the point of from scratch what if I
just took this whole thing and I just
threw out sort of what's exist what
exists and you may not have be able to
you may have to at least you know keep
the data I throw this out start with a
whole new application build it from
scratch can I do that better and then I
just have to you know factor in you're
going to have to transition their users
their data into whatever your new system
is
or take a look at what are the what is
the the upgrade path or the features
that they're going additional going to
require and if you can take a look at
like what is that going to look like
what is the code going to require what
is the if there's you know certain pages
like hey this page we want to add these
five things to it take a look at that
and get an idea what is the effort of
putting that in there just raw but then
also if you want to build on top of it
and then maybe the you know the middle
ground is like what if we what if we
want to take what they've
done we're going to take a few pieces of
it you know like for example maybe the
database is okay so we're going to keep
the database but we're going to start
like rewriting key pieces of it maybe in
the language that they have maybe in a
different one sometimes you can do some
really interesting stuff behind the
scenes where maybe they've got this
entire uh their entire system is you
know some sort of MVC weish web app kind
of thing and the core the data is good
enough that you say you know what
instead of trying to make all of their
like let's say classic ASP windows work
maybe we just have a couple of react
because we're react people let's say we
have some react screens that we are just
now they're just links that we add in so
instead of extending the SP we're just
linking out Ste their CSS so the style
looks the same stuff like that there's a
lot of ways to to skin that c
no offense to the animal lovers out
there but extra offense to the cat
lovers because let's say you dog lovers
are better all right I probably just
like lost half our audience so we have
one audience member left now as what are
your thoughts
Michael yeah one of the big challenges
and you got to be careful from a
Consulting perspective is don't always
come in with rewrite in mind um because
well as developers we always like
working with something fresh something
new and we always think we can write
things better that's not always the case
especially when customers are on a
budget look at doing things like
checklists or like we've talked about
doing some type of assessment have
something aside so that when you're
talking to the customer you have certain
questions you can ask to get yourself
familiar with what they're working on
what their problems are see if you can
assess what their requirements are what
the user requirements are what their
application requirements are and then
figure out if what they have Works
within their box or something that needs
to be broken down and maybe uh you know
built a new uh some of the things to
consider and you touched on it Rob so
you know we have Legacy applications we
have abandoned applications we have
applications where I've seen at least
where someone hasn't touched on it in
years and they dust it off and they like
hey I want to put this out there well hm
let's see that language isn't around
anymore or that Hardware doesn't work
anymore and you have to kind of rebuild
things just from that perspective you
don't necessarily have to do a whole new
application but you may have to rewrite
a module uh and you know where I come in
from my side you know do the QA
assessment that's where I look at like
integration testing things like that
within an application because you may
say hey I want to take this software put
this on a totally different platform
well do you have the specs or the
understanding of what is required for
that software to work on this other
platform so there's things like that you
need to think of as you're going through
this
process yeah I think those are some
those excellent points there and
hopefully that helps you guys out if
you're running into something like this
whether you're an employee and they said
oh hey we've got this other project
we're dusting off or whether you're
consultant or you know you're out there
doing your little side hustle and you're
picking up a project that is uh in
particular maybe some other developers
you know abandon it for whatever reason
and now you're having to to own this uh
just some good things to help yourself
hope not get into a crunch but now we
are into a crunch in relating to time so
wrap this one and uh don't worry we're
going to continue coming back here you
can check us out same bat Time same bat
or same developer or Time same developer
Channel and we're just going to continue
chugging along here having some of our
conversations share those
out you can leave comments an email info
developer.com but go out there have
yourself a great time time and we will
talk to you next time
[Music]