Detailed Notes
Welcome back! In our ongoing discussion on improving life and technology, today's focus is on a more dramatic scenario: saving customers from potential disaster due to legacy code. When does legacy code need to be retired, and what signs indicate it's time for a major overhaul? We'll dive into these questions through real-world examples and expert insights.
Read more: https://develpreneur.com/dealing-with-legacy-code-when-to-let-go-and-start-anew
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.
Transcript Text
[Music] so we're going to carry right into the next one is uh did you a topic that you wanted to get into on the podcast world uh so the biggest challenge I've been dealing with and I'm not sure if it it will be a good topic is when to punt on Legacy and invest or rewrite a current application because I'm trying to figure out how after the conversation I had with Dave today this particular client is in a lot more trouble than we initially assessed um but I have to communicate to them that yes I know you like this thing and you want to stay on this thing but there's no way we can duplicate this um without a full rewrite and he brought up a very interesting question to me today and it's like do they have the original source code because if they don't have the original source code we can't upgrade them past one more version and that's still six versions behind where IBM is today and the version they're running was from 2013 so I think that's a perfect topic um I have a a project I did exactly that it was a almost like there were 2014 was the last time they did it and no they didn't well they had some source code but not everything they needed and so it ended up being a really interesting Journey that we had with them so I think that is um I think that's what we'll talk about is like we'll just give some examples and our thoughts on how to approach when do you when do you kick the Legacy code out the door and say it's time for rewrite um gosh I've had several of those so I think this is this will be a fun one hello and welcome back we We are continuing our discussions last time we got into some stuff that was more like living a better life this time is more about uh saving customers from certain death okay it may not be that bad but it is it feels like it if you have ever been in that situation and the situation we're going to talk about today is Legacy code when does it need to be buried in the pyramids in Egypt it's like when when has it gone on too long or more importantly when has it been too long since you touched that Legacy code when did you let stuff run too long and now it needs to be replaced first off because I don't want to be a miss about this I want to introduce myself my name is Rob Broadhead I am one of the founders of developing orb building better developers and on the other side is Michael go ahead and introduce yourself hey everyone my name is Michael Mass I'm also one of the co-founders of developer so we got into this for those of you and I was totally remissed the last episode I forgot I didn't give any of like the cool links so go back to that episode and just like click on all the links and and all that kind of stuff you normally would like our email address and all that hopefully I'll remember this time so those of you that are watching this which if you're not we also have a YouTube channel you can go check out check that out develop nor we have all this stuff getting posted twice a week just like do the podcast we just have bonus material and okay you do have to look at our hor horrible faces but other than that you have bonus material and so we were talking before this that Michael is is hit a spot right now with a customer that really triggered me in a sense because I've lived the same thing and it's a customer that they they've got a product it's not a bad product it works they like it all they really need to do is update it and I will start with an experience I had and then throw it over to Michael is it I ran into this same thing couple it's now been a couple years and I'll get a little technical I apologize I won't get too technical so you won't need like to be resuscitated at some point but they had a really cool custom application that they had built and it was built on the eclipse uh Foundation the r the RCF and all of its stuff that was there when it was built and it even had um AJ or not um uh adobe's uh Adobe script the flash it had some Flash in there it had a whole bunch of stuff and it was really nice and it it worked the downside is when we touched it it was in like 2021 22 the last time a developer had touched the code was in 2014 they had some developers that were in they Consultants they had built this thing they had made a couple fixes and stuff like that they put it on some machines installed it on the machines wrote off from the sunset nobody knows what happened to them basically and the but they didn't need them because the everything worked it it all worked it was fine everything was awesome the problem is and actually I've seen now a couple customers that have had something like this where it works long enough that the underlying technology starts to disappear so for example some of the stuff that they they had machines they were running it on that had to upgrade and when they did the upgrade they could not run the software anymore and so they slowly went from I think originally had like eight or 10 machines down to seven or eight two or three and they were down to one machine when I was introduced to this they said they did have source code which basically they had everything that been dumped on a machine and they had one working machine that was not virtual or anything it was a machine that if somebody spills coffee on it game over and so they said hey we would like you to upgrade this because it's it was way back the Java versions it was on the stuff it was on was not work there were things were starting to fail and they knew it and they needed to get modern enough to just keep it going they didn't they literally wanted almost and I think I can't remember zero or very close to zero changes and the only thing was they knew right away when we got into our first little I think we did like a intro project we did 20 or 10 or 20 hours looked at their stuff said let's let's assess it and see what you got right away one of the things I said is like all of this flash stuff that stuff doesn't even exist anymore basically we can't find stuff that's going to we're not going to be able to take modern stuff to go connect to that old technology I said if we do there's like a whole you could do it but it's a whole bunch of crap you're going to have to go through that you you'll have to break the app anyways and they said that's okay that stuff we didn't really need it's like okay cool we'll cut that out I looked to rest I was like okay it's going to take a while we're going to have to like we're GNA have to get this thing built we're going to have to and it's on it's on a you know almost 10year old version of eclipse basically we have the base Foundation of it and so we've got to upgrade that we're going to have to upgrade stuff and basically just said we'll give it a shot let's see what we can do maybe we'll look out but I'm I know that there are watershed releases that we're going to have to do some code changes and we're going to have to like Swip out switch out some libraries and things like that long story short I know too late but long story short we spent I think we spent probably close to six months going through this trying to upgrade it trying to as much as possible like just Shepherd this thing into that next version and we ended up getting into and and doing this and all the different libr that had to be you know updated and managed and stuff like that we basically got into something where we couldn't upgrade without rewriting the core jdbc stuff that it was using the the core database connection stuff it was using did not exist or was not compatible essentially it had stopped being worked on and had been renamed and redone to a point where we were going to have to rebuild huge pieces of it like large portion of the code was going to have to be recoded at which point which is where we finally get to the point for this episode is got to a point where it's like okay you're going to have to rewrite it as in yes you can try to build that same thing again but the effort the time the cost the risk is we're going to have to rewrite it and I had a several conversations with them and their developers that they had and said you have this thing that you cannot support you don't have anybody you don't have anybody that knows it you don't have anybody that knows any piece of it you have other you have developers and resources that can do something modern and they have lots of ideas of how they wanted to rebuild it and it's basically what he came to I said we'll help you if you want we can rebuild it we can resign it do what you want to but it needs to be it it has to die you cannot move that forward forward we can move it forward on that platform but nobody does that anymore anybody that's doing what you wanted to do today would do we gave them like a half dozen these are the different ways they would do it that was great at the time and this is where we had to really you know convince them not convince them but agree with them and say what you have is great you got an awesome tool it was an awesome tool 10 years ago and now it is not it's like your horse and buggy Rock but that was 200 years ago and now horse and Buggies are nowhere they're useless on a road so time to move on to a bicycle or whatever it is so that was my that was my experience was that we really got into a situation where it was and we may have gone too far in trying to keep their stuff and I think that's where we the discussion becomes because we really did get to a point where while we were going through it and we were I warning them along the way on a regular basis saying this is costly this is taking a lot of work and this means just because of the amount of stuff we're having to touch you're going to have to go through the testing again you're going have to spend time on it it's probably going to break stuff that hasn't been broken before we're not even really at this point we were like we're not even learning the code we're just learning the back the background in the libraries and making sure those all SN and this is becoming more of an issue as we have these grander applications like go to react and node lot of this stuff where there's all these little libraries that have to coincide and you're going to run into those situations yourself I think where you look at it you say yes we can find find a way maybe to make this work and to limp it forward or to upgrade it or to maintain it or it's either too old or could be just too poorly written so the the cost of building something new building it from scratch or roughly building it from scratch is equal to or less than going with what you have had the bonus is that when you come to the if you've built from scratch or you restart now you have a new modern solution and I've done this several times for customers where it's not only that but now we have you unit tests involved with it we have documentation you have people you can get a hold of that can help other developers you know if you want to move on to another team or you can go to our team and we can support it enhance it so that's it in a very big nutshell how does that how does that sort of apply to where does it where does that what does that have you thinking about based on your current customer and share however many details you feel like make sense to to do it without as well so it's an interesting conundrum so you and I have been around software since pre- Windows days I mean we' had to deal with DOs old uh epic or um old VT 100 machines back in the day God I feel old saying that uh but I not even the day I mean we're talking like the 80s the 90s when people built software it was more of a waterfall approach they started with an idea and then they come out with this big monolithic application that gets released and they go through a couple tweaks and everything gets stabled it's released it's done there's no more software right because back then we didn't have the internet so you once you release software out into the wild the software is out in the wild people bought the software they own it they ran it if the software was great they ran it that what they Ed to run their business my particular client uh is in the healthcare sector and they're working on an IBM uh I well what essentially is an IBM I series but it's actually an older as400 it is an old green screen epid machine that IBM put out uh years ago for things like healthcare and they're Beast they're really good at what they do they protect your patient information you just go in it's a bunch of green screen bunch of little menu commands it's not point and click it's all keyboard driven you print you it works problem being monolithic softwares or software these days that gets packaged and delivered today we tend to hear things like software as a service continuous deployments continuous integration that stily stems from the fact that that is one keeping your software current it's keeping it up-to-dated constantly addressing bugs over and over so there's always someone working in the system the system is always being tweaked it's almost always staying somewhat current or at least able to run on the current operating system another project I worked on similar to this uh wasn't so much uh a 400 application but it was actually a Windows 95 dos application so if you worked on back when they had Windows 95 even Windows 98 still supported Doss if you wrote a dos-based application you could still run it on dos Windows um 31 Windows 95 Windows 98 after Windows 98 your software was dead in the water you had to go essentially go back rebuild the software in the current Technologies for Windows 2000 and up because it was all the NT architecture NTFS uh not fat 13 or fat 32 uh so you had to go through this process the problem is it doesn't make sense to try to convert some of those applications because who wants WR and basic anymore I mean you literally are going to have to um dig look for that needle in the Hast stack because there's that few developers that do that AIM now granted dos is now have an open source it's now in the public domain and hey we have people playing around with it again but truthfully will it ever be a business level application operating system in probably not so you're going to going to run into these problems and especially with the way technolog is going and systems are being built we have to keep up with this we have to look at changing this the problem you run into is if you have someone that's been working with the piece of software for more than five maybe 10 years it they purchased it from a company you run into situations where the company's not in business anymore you can't get updates to the software anymore because of you know time technology changes like Rob said or heck it's a mobile app and the mobile devices are now all 64-bit and your application was compiled in 32bit you can't P it over you have to get this SCE code recompile it and hope it works for the 64-bit operating system but there you go oh you may not even have the source code you might be uh what was it interplay or wizard of the co and we can't get ice bondale 2 anymore because they lost the source code they were able to do all the other enhanced editions because they found all the code on a computer except ice1 Dale 2 so as far as lessons learn we constantly have to watch and keep up with current technology but we do need to look at and figure out how to help our customers move along in this particular case I've been doing the assessment now for about two weeks and we thought that they had a current enough um as400 release build that we could Port them up except we found out there two versions back from where IBM made a change that they have to now recompile the source to change something for the new operating system levels if they don't have the source we're dead we can't go forward so now we have to figure out how to get the data out of the system so that maybe we can do something else and I think that's the that's where you sort of draw a line with customers and that's where with the the conversations I've had it is um there's the two sides of that is can we get are if we build you know when you get them to even the idea of okay right we build a new thing we build it from scratch or something we don't use what we have anymore it's almost always can I get my data out or at least having that conversation of does that data need to come forward because those are that could be a very big thing moving that data forward particularly if you want to call fix it if you want to modernize the design of the solution which often is what you want to do because usually the thing was built and designed for a very different system from what we have today and so you have different different concerns different Integrations different user experience all of the stuff around that and different ways even to deliver reports and things of that nature so you you do have to think about it is what happens to the data to the to the history of having that application there it's like if you want to do it on a very simple think about it it's like if you had that if you played a game back in the day and you had saves for that game can you move those saves to your new game logical question people ask it all the time it means a lot more to quote move your saves from an old system if you're a multi-billion Dollar business because you need to take that data that customer data that sales data all of that stuff most likely you need to bring forward and so that needs to be part of the discussion is what happens it's sort of like a two for there as well what happens if that system dies what happens if that machine if you can't get into that system anymore through the application do you have a way to the get to the data other than through the application that may be a red flag that if you don't you need to look very quickly at how are we going to get the data out of that application it may be virtually impossible it may be something where they have to go in and manually you're going to have to go to every page and have somebody type it all in somewhere else I've seen some really nasty we'll call them data migration processes like that where it's literally somebody is sitting there and they bring up a screen and then they swivel over to another one and they just are entering the data back and forth they're literally handm moving the data that can be pretty nasty and that's where you want you don't want your customer to get to that point sometimes it is the solution is just as much we're going to like keep you limping along but the first thing we're going to do is we're going to find a way to connect hoses and Integrations to your system to pull that data out so it doesn't get lost even if we put it in just some random data store that we can as long as we can get it back out that's key and then we can always come back later and we can you know build a new front end orever whatever we need to do so I think it is part of your conversation needs to be not only the cost of maintaining what they've got the risk of losing what they have including their data and then what's what is that going to cost them and then if we build in new system does it have to support that Legacy system the Legacy data in some way form or fashion and that may include and I've seen run into these where there's it has to have the old user experience basically because of for whatever reason that uh that is the only way that you can work with the data the way it is but now in the new system they bought the you know sort of bit the bullet and said all right that's our Legacy experience we have to maintain it but we're going to embrace all of the things we can do and make improvements so now you may have you know I've seen it where you have customers before 2020 has a whole different experience than customers that have come in since then because they said well we're just going to start pulling new data they're gonna all the new customer data sales data is going to come in through this new system and we're just going to have maybe even as bad as just a screen scraper which may be something that you guys run into to go hit the system which is some way to start moving that data and eventually hopefully automate it so you don't literally have to have somebody sitting there and keying it from one machine to another that's some of the things I've thought about so more thoughts on that yeah it's interesting you pointed that out because some of the things that have come up recently is I uncovered that there's a couple integration points with this system with applications that are also no longer supported or around anymore and then there's another piece within Healthcare you have to essentially you know you have to build your customers well they have an exchange they go through and they they have a file that goes to the exchange that does all that and then they manually enter that back into the system when they get the information back the problem is they don't know what that is and I have not found clear documentation yet as to what that is I suspect I know what it is um but some of the verbiage that we've used from Modern Medical Systems did not ring a bell so that was a warning flag uh whereas it's like okay we need to figure out what to do quickly I knew this was urgent which is why I took the project to help them but in the same sense um I'm glad we went this approach because they really did not understand what they had or what they needed to get from A to B they just knew that you know someone spills coffee on this we're dead in the water because they only have one machine and there is no replacement for it and that I really hate having to have part of those I love those projects and hate those projects and what I hate about them is the ones where it's you get into the the initial discussions about the project and they can't tell you anything about it they can well here's some code okay great it's sometimes it's here's all of the code great if I'm going to look through a million lines of code I'm not going to be able I mean I can get a gist of how like it's sort of this and it's sort of that I can look at the data the database model the and say okay it's sort of this and it's sort of that but I have to have some context even there and usually it's going to take you think about if you're going to read if if it's read the manual and somebody gives you a 10,000 page manual it's going to take a long time to go through that that and that's roughly what they're doing when you get just piles and piles of code you're talking about something it takes a long time to do and yeah you can sort of like look through it and you get an idea and you can you can get a feel for it's good or it's bad or it's really confusing or yeah it seems to be pretty good but you're not digging for skeletons at that point you're just like you know blowing across large portions of systems you're sort of looking at stuff saying yeah this makes sense but you're not you know walking through it line by line by any means and so those are the hard projects because you come in and you say all right well you don't know what you've got so we're going to spend a you know it's basically you you pick a point and you say this is what it's going to be you we're going to spend x amount of time and we're gonna we're going to do some research and we're going to give you back what we've got in that amount of time and it's like I said it's really tough when you get into that and you get done with it and you go now what we need is another block of time and we're going to have to dig deeper because we've got all of these red flags that have popped up and we have to actually start looking deeper into them we thought we may be able to get there but here's the concerns and it's sometimes I've had a few where it's like okay first round here's five concerns next round here's 10 more concerns by the time you you're you're getting into it and very quickly where it's the point it's like okay you have a lot of issues and again that's where it I think that's where you have to have those conversations and you say okay the good news is we're here and we have some paths forward the bad news is is none of the paths forward are going to be cheap easy quick or maybe even include your existing system you know we're going to get data out of it the best we can but it maybe that thing cannot move forward and I think that's part of what you want to do as a when you're doing those kinds of Assessments it's just like anything else is go hit the high-risk stuff first look at the things that are critical or that would the system if those exist and it's things like do you have the source code do you I do you have documentation do you do you have a build process that you know that works sometimes say do you have this on multiple machines when was the last time you freshly installed it on a machine things like that which like you you know shortened that down too they've only got on one machine they know they're in trouble they know that can't die so it's like oh well big problem Sirens are going off we've got to do something quickly and so that is leverage at least then to say okay this is important this is critical to your business and in this case you know probably even more so because it's dealing with Healthcare information and filling and all these kinds of things so it's their business and probably their patients as well to to at least a medium to a very great extent so then it's like all right we got to get in here and we've got to figure out now it's like if they're in healthcare it's basically that like you got somebody that's just hit the table in an emergency room they're bleeding out what do you do and it's it gets into some of the other conversations we had where there's like there may be a level of triage there and it may be something where it's like okay we're we're stable the patient is stable right now but they could blow up at any time and so we need to make sure that we are prepared for that and as fast as possible start doing the we'll call it the healing process of their system or the replacing process of their system so we can get them moving forward and this is where it does become I've found just like personal thing is I I found that it is much easier to do that in like little bites sometimes it's you almost have to take the whole thing but if you can find a way to do little bite-sized chunks so that you can show ready steady progress so you can start sucking data out of the existing information system and start replacing functionality so people can use the new system even while the old system exists then I think you build some you build some trust you build some confidence and for yourself it helps you build knowledge about those M those systems the new one which you should know because you're building it and the old one which you don't know squat about because you just got handed a mess and honestly the last place we work together that was exactly what I got they sent me a hard drive couldn't send it to anyway they sent me a hard drive that had stuff in it and they said here you go go figure it out that's how bad it can be so parting thoughts yeah so so like Rob said you know it can be bad but the thing is don't always go in that it has to be rewrite first go in at least the way I'm handling this or I've handled this before is I'm going in and assessing what the problem is what is the overlying problem then I'm trying to understand the customer needs for the this problem you know is it life-threatening is it Mission critical is it and oh my God moment um and then from there walk back you know what is it that the business uses this for how do they use this and ultimately that's gotten me to where it is to the fact that okay they are in as much trouble as we suspected thankfully it won't affect the patient so much in this situation because thankfully we determin that it's all their billing all their insurance information all that's on this box all their scheduling scheduling if that were to go down they could still use Microsoft calendar it's the billing information that they're going to lose and there's some more disconnects with that that I'm uncovering but you do you have to treat it like an onion you got to peel the layers back you got to slowly get into it and you may never get to the core you may get to to a certain point where it's rotted it's like oh okay now what do I do well now you either have to go build or grow a new onion or replace it with something else and I think that's a great stopping point for us at this point partially because we are out of time but uh I think this is one of those things that that we do run into it's especially now because there's there's been such a enan ment of technology in the last five or 10 years and it feels like we've said that for a long time but particularly in the last five years where remote and a lot of other things have become a lot more reality uh the the ability to communicate you know the world has shrunk and all those kinds of things and then there's been a lot of uh advancements in the internet area that things that didn't even exist possibilities you had in the past you you know that were never going to happen they were dreams now are very easy to do and very common place I think this is something for us all to keep in mind is that yeah you don't want to break something that's you know fix something that's not broken but you also want to make sure that you're you know properly maintaining things and updating them and and keeping them current enough so that if there is a point where you have to make a big change you're not having to essentially like go back to the drawing board to to rewrite it and by all means have repositories and things like that where you're keeping CCT of your source code document things add comments that kind of stuff so that you're helping your organization company your customer out whenever somebody does come back and need to take a look at that application if you have anything that you would like to throw at us as far as like some of your experiences or if there's some applications you want us to look at we can even do that you can reach us at info@ developer.com you can check us out on the developers site out on Facebook we've got uh stuff out on LinkedIn the developer ners site we've got forms we've got blog posts we've got the podcast we've got the YouTube channel got a lot of different ways you can reach us a lot of different Co topics that we've covered always looking forward to any kind of information we get from you guys feedback to just let us know like where do we want to go what do you guys want to hear what do you like what don't you like if you don't like how we look sorry can't do anything about that other than I guess we can cover our face or something like that we'll use some we'll use some filters because that's all that's all getting good we'll just have little AI people that that act for us and we'll just talk behind the scenes all right I digress that being said we're going to wrap this one up we're not done with the SE we are still going to just continue talking our way through the things we're running into and the best ways that we can grow as developers and also help our customers be a blessing to them and to those that work around us that being said go out there and have yourself a great day a great week and we will talk to you next time wow that's like painful almost going through that thinking about like there's some of those projects I'd sort of like you know blacked out in my memory somewhere and it's like oh yeah that was fun so I have a final thought for those still watching what is your take on if you are The Keeper of the keys you built this great application it's been out there for years but now you're done you know you want to retire or you want to put it aside you either couldn't sell it or you did sell it or you know it it's just essentially debt given today's state of Open Source would it behoove not just you but your customers to put that out on like GitHub and then open source and let the community support it or do keep it behind locked doors and say you know it was mine sorry you guys are so I'm done that's actually open source is a whole different area to get into with that because there are so many so many restrictions around that and legalities and things like that that may be involved in it but if it is something in particular that is a you know like you had a little pet project and you've got some customers and you you're just like you're retiring and I've I've seen a lot of those kinds of projects and people trying to get PE get uh Consultants to come in and reverse engineer an application that they love but they the developer quit the company died something like that I think that is something for you to consider is open sourcing such things or putting some some way so that it can even if you don't want to deal with it that a company that does or needs to can that they can go in there and they can make some changes and yeah it may require a little bit of your time to go talk to somebody about it to sort of help do that handoff but I I've earned a lot of money having to dig through stuff that we could have saved everybody if somebody had just had an hourlong conversation so that that's the stuff that I hate that's like blood money because it's like you could have saved everybody headaches mistakes and a lot of time that was cost to your customer your employer or whatever it is if you just spent a little bit of time doing a handoff maybe do a little bit of documentation that's why it's near and dear to my heart that if I hand something over to somebody if I'm wrapping up a project that I make sure that I give them contact information for me plus summaries documentation whatever I can to say hey if somebody comes in because I know I've done this enough if somebody comes in six months from year now a year 10 years whatever it is these are some of the questions they're going to ask these are the answers to them this is how you get to these things these are the you know and some here's the logins here's the passwords here's all of these things here's the things you're going to have to worry about a year from now which is very common where it's things like if you go set somebody up a website for example and you get them an SSL certificate through blah blah whoever it happens to be company you know whether it's GoDaddy or one of those if you they're going to have a Fe come up a next you know a year or two years three years down the road the domain's going to have to be renewed there's things like that that make sure people understand these kinds of things good example ran into something just the other day had a customer that had picked up my one of the servers we built for him we had a demo server Dev server replicated it it's a production server we had stuff running on that that was like backups and things like that for them that they then upgraded their backup system they had a new guy came in did everything he didn't realize that we also had all this stuff on that thing that was just backing up files and it was doing it all local so it wasn't a huge deal but they now had built you know a higher-end off-site solution and we're like hey you're just loading up you're like filling up that hard drive now I mean you got plenty of space but you don't need these things to run they're you know they're burning processing time and they're filling space so maybe we you know if you guys want to pause those we can pause those and you can even delete all the old uh backups that we had because now you've got a different process so you know you got to keep an eye out for such things and just sort of provide like architectural documents and you know overall snapshot kind of documents of this is what it does and this is what it runs and this is what these things are and it will it will save so many so many headaches and uh I I could talk for I could do a season on issues that we've run into where they were gotes where we didn't know there wasn't documentation things something changed and we even know where that was until we had to dig all the way into the code those kinds of external sources and that just make sure you you document them any more thoughts on that before we wrap this one up no yeah the reason I had asked that question is because remember back before the internet we had to publish software on CDs discs mail it out and the underlying companies typically either got bought and that software carried on or evolved or it died and so so just if you do think you're done with something don't necessarily let it go to the digital graveyard you know there are things you can do to save it or even potentially save your customer's headaches down the road maybe give them an option like a retirement plan for you hey I'm done do you want to buy the source code to maintain this yourself you know just just an option well I think our options is to go on and wrap up where I'm at at uh in an evening but whatever the generic time of the day it is for you there's I'm sure something awesome that you have coming up next thank you for watching uh leave you know feel free to leave comments down in the down here we're going to have show notes with all this kind of stuff all the social things do that get out there let us know what you think let us you know follow us follow the check out the if you're you're here so go ahead and check out the podcast if you haven't because there are some there are some adjustments and things like that plus then you're not looking at us while you're driving you can actually just hear our dulet tones while you're driving down the street working out doing all the other stuff where you don't really have the time to do visual stuff we will wrap this one up as always take care we will come back next time around we're just going to continue chugging on Tuesdays Thursdays we get a you get a new drop you get see whatever our latest stuff is and uh like I said we're wrapping up this season pretty soon let us know if you have requests for the next one otherwise we're going to make it up like we always have and we're going to continue on the next season and and continue talking through stuff that we find helps us and hopefully helps you become a better developer have a good one everybody [Music]
Transcript Segments
[Music]
so we're going to carry right into the
next one is uh did you a topic that you
wanted to get into on the podcast
world
uh so the biggest challenge I've been
dealing with and I'm not sure if it it
will be a good
topic is
when to punt on Legacy and invest or
rewrite a current application because
I'm trying to figure out how after the
conversation I had with Dave today this
particular client is in a lot more
trouble than we initially
assessed um but I have to communicate to
them that yes I know you like this thing
and you want to stay on this thing but
there's no way we can duplicate
this um without a full rewrite and he
brought up a very interesting question
to me today and it's like do they have
the original source code because if they
don't have the original source code we
can't upgrade them past one more version
and that's
still six versions behind where IBM is
today and the version they're running
was from
2013 so I think that's a perfect topic
um I have a a project I did exactly that
it was a almost like there were 2014 was
the last time they did it and no they
didn't well they had some source code
but not everything they needed and so it
ended up being a really interesting
Journey that we had with them so I think
that is um I think that's what we'll
talk about is like we'll just give some
examples and our thoughts
on how to approach when do you when do
you kick the Legacy code out the door
and say it's time for
rewrite um gosh I've had several of
those so I think this is this will be a
fun one hello and welcome back we We are
continuing our discussions last time we
got into some stuff that was more like
living a better life this time is more
about uh saving customers from certain
death okay it may not be that bad but it
is it feels like it if you have ever
been in that situation and the situation
we're going to talk about today is
Legacy code when does it need to be
buried in the pyramids in Egypt it's
like when when has it gone on too
long or more importantly when has it
been too long since you touched that
Legacy code when did you let stuff run
too long and now it needs to be
replaced first off because I don't want
to be a miss about this I want to
introduce myself my name is Rob
Broadhead I am one of the founders of
developing orb building better
developers and on the other side is
Michael go ahead and introduce yourself
hey everyone my name is Michael Mass I'm
also one of the co-founders of
developer so we got into this for those
of you and I was totally remissed the
last episode I forgot I didn't give any
of like the cool links so go back to
that episode and just like click on all
the links and and all that kind of stuff
you normally would like our email
address and all that hopefully I'll
remember this time so those of you that
are watching this which if you're not we
also have a YouTube channel you can go
check out check that out develop nor we
have all this stuff getting posted twice
a week just like do the podcast we just
have bonus material and okay you do have
to look at our hor horrible faces but
other than that you have bonus material
and so we were talking before this that
Michael is is hit a spot right now with
a customer that really triggered me in a
sense because I've lived the same thing
and it's a customer that they they've
got a
product it's not a bad product it works
they like it all they really need to do
is update it
and I will start with an experience I
had and then throw it over to Michael is
it I ran into this same thing couple
it's now been a couple years and I'll
get a little technical I apologize I
won't get too technical so you won't
need like to be resuscitated at some
point but they had a really cool custom
application that they had built and it
was built on the eclipse uh Foundation
the r the
RCF and all of its stuff that was there
when it was built and it even had um AJ
or not um uh adobe's uh Adobe script the
flash it had some Flash in there it had
a whole bunch of stuff and it was really
nice and it it worked the downside is
when we touched it it was in like 2021
22 the last time a developer had touched
the code was in
2014 they had some developers that were
in they Consultants they had built this
thing they had made a couple fixes and
stuff like that they put it on some
machines installed it on the machines
wrote off from the sunset nobody knows
what happened to them basically and the
but they didn't need them because the
everything worked it it all worked it
was fine everything was awesome the
problem is and actually I've seen now a
couple customers that have had something
like this where it works long enough
that the underlying technology starts to
disappear so for example some of the
stuff that they they had machines they
were running it on that had to upgrade
and when they did the upgrade they could
not run the software anymore and so they
slowly went from I think originally had
like eight or 10 machines down to seven
or eight two or three and they were down
to one machine when I was introduced to
this they said they did have source code
which basically they had everything that
been dumped on a
machine and they had one working machine
that was not virtual or anything it was
a machine that if somebody spills coffee
on it game
over and so they said hey we would like
you to upgrade this because it's it was
way back the Java versions it was on the
stuff it was on was not work there were
things were starting to fail and they
knew it and they needed to get modern
enough to just keep it going they didn't
they literally wanted almost and I think
I can't remember zero or very close to
zero changes and the only thing was they
knew right away when we got into our
first little I think we did like a intro
project we did 20 or 10 or 20 hours
looked at their stuff said let's let's
assess it and see what you got right
away one of the things I said is like
all of this flash stuff that stuff
doesn't even exist anymore basically we
can't find stuff that's going to we're
not going to be able to take modern
stuff to go connect to that old
technology I said if we do there's like
a whole you could do it but it's a whole
bunch of crap you're going to have to go
through that you you'll have to break
the app anyways and they said that's
okay that stuff we didn't really need
it's like okay cool we'll cut that out I
looked to rest I was like
okay it's going to take a while we're
going to have to like we're GNA have to
get this thing built we're going to have
to and it's on it's on a you know almost
10year old version of eclipse basically
we have the base Foundation of it and so
we've got to upgrade that we're going to
have to upgrade stuff and basically just
said we'll give it a shot let's see what
we can do maybe we'll look out but I'm I
know that there are watershed releases
that we're going to have to do some code
changes and we're going to have to like
Swip out switch out some libraries and
things like
that long story short I know too late
but long story short we spent I think we
spent probably close to six months going
through this trying to upgrade it trying
to as much as possible like just
Shepherd this thing into that next
version and we ended up getting into and
and doing this and all the different
libr that had to be you know updated and
managed and stuff like that we basically
got into something where we couldn't
upgrade without rewriting the core jdbc
stuff that it was using the the core
database connection stuff it was using
did not exist or was not compatible
essentially it had stopped being worked
on and had been renamed and redone to a
point where we were going to have to
rebuild huge pieces of it like large
portion of the code was going to have to
be recoded at which point which is where
we finally get to the point for this
episode is got to a point where it's
like
okay you're going to have to rewrite it
as in yes you can try to build that same
thing again but the effort the time the
cost the
risk is we're going to have to rewrite
it and I had a several conversations
with them and their developers that they
had and said you have this thing that
you cannot support you don't have
anybody you don't have anybody that
knows it you don't have anybody that
knows any piece of it you have other you
have developers and resources that can
do something
modern and they have lots of ideas of
how they wanted to rebuild it and it's
basically what he came to I said we'll
help you if you want we can rebuild it
we can resign it do what you want to but
it needs to be it it has to die you
cannot move that forward forward we can
move it forward on that platform but
nobody does that anymore anybody that's
doing what you wanted to do today would
do we gave them like a half dozen these
are the different ways they would do it
that was great at the time and this is
where we had to really you know convince
them not convince them but agree with
them and say what you have is great you
got an awesome tool it was an awesome
tool 10 years ago and now it is not it's
like your horse and buggy
Rock but that was 200 years ago and now
horse and Buggies are nowhere they're
useless on a road so time to move on to
a bicycle or whatever it is so that was
my that was my experience was that we
really got into a situation where it was
and we may have gone too far in trying
to keep their stuff and I think that's
where we the discussion becomes because
we really did get to a point where while
we were going through it and we were I
warning them along the way on a regular
basis saying this is costly this is
taking a lot of work and this means just
because of the amount of stuff we're
having to touch you're going to have to
go through the testing again you're
going have to spend time on it it's
probably going to break stuff that
hasn't been broken before we're not even
really at this point we were like we're
not even learning the code we're just
learning the back the background in the
libraries and making sure those all SN
and this is becoming more of an issue as
we have these grander applications like
go to react and node lot of this stuff
where there's all these little libraries
that have to
coincide and you're going to run into
those situations yourself I think where
you look at it you say yes we can find
find a way maybe to make this work and
to limp it forward or to upgrade it or
to maintain it or it's either too old or
could be just too poorly written so the
the cost of building something new
building it from scratch or roughly
building it from scratch is equal to or
less than going with what you have had
the bonus is that when you come to the
if you've built from scratch or you
restart now you have a new modern
solution and I've done this several
times for customers where it's not only
that but now we have you unit tests
involved with it we have documentation
you have people you can get a hold of
that can help other developers you know
if you want to move on to another team
or you can go to our team and we can
support it enhance it so that's it in a
very big
nutshell how does that how does that
sort of apply to where does it where
does that what does that have you
thinking about based on your current
customer and share however many details
you feel like make sense to to do it
without as
well so it's an interesting conundrum so
you and I have been around software
since pre- Windows days I mean we' had
to deal with DOs old uh epic or um old
VT 100
machines back in the day God I feel old
saying that uh but I not even the day I
mean we're talking like the 80s the 90s
when people built software it was more
of a waterfall approach they started
with an idea and then they come out with
this big monolithic application that
gets
released and they go through a couple
tweaks and everything gets stabled it's
released it's done there's no more
software right because back then we
didn't have the internet so you once you
release software out into the wild the
software is out in the wild people
bought the software they own it they ran
it if the software was great they ran it
that what they Ed to run their business
my particular client uh is in the
healthcare sector and they're working on
an IBM uh I well what essentially is an
IBM I series but it's actually an older
as400 it is an old green screen epid
machine that IBM put out
uh years ago for things like healthcare
and they're Beast they're really good at
what they do they protect your patient
information you just go in it's a bunch
of green screen bunch of little menu
commands it's not point and click it's
all keyboard driven you print you it
works problem being monolithic softwares
or software these days that gets
packaged and delivered
today we tend to hear things like
software as a service continuous
deployments continuous
integration that stily stems from the
fact that that is one keeping your
software current it's keeping it
up-to-dated constantly addressing bugs
over and over so there's always someone
working in the system the system is
always being tweaked it's almost always
staying somewhat current or at least
able to run on the current operating
system
another project I worked on similar to
this uh wasn't so much uh a 400
application but it was actually a
Windows 95 dos application so if you
worked
on back when they had Windows 95 even
Windows 98 still supported Doss if you
wrote a dos-based
application you could still run it on
dos Windows um 31 Windows 95 Windows 98
after Windows 98 your software was dead
in the water you had to go essentially
go back rebuild the software in the
current Technologies for Windows 2000
and up because it was all the NT
architecture
NTFS uh not fat 13 or fat 32 uh so you
had to go through this process the
problem is it doesn't make sense to try
to convert some of those applications
because who wants WR and basic anymore I
mean you literally are going to have to
um dig look for that needle in the Hast
stack because there's that few
developers that do that AIM now granted
dos is now have an open source it's now
in the public domain and hey we have
people playing around with it again but
truthfully will it ever be a business
level
application operating system in probably
not so you're going to going to run into
these problems and especially with the
way technolog is going and systems are
being built we have to keep up with this
we have to look at changing this the
problem you run into is if you have
someone that's been working with the
piece of software for more than five
maybe 10 years it they purchased it from
a company you run into situations where
the company's not in business anymore
you can't get updates to the software
anymore because of you know time
technology changes like Rob said or heck
it's a mobile app and the mobile devices
are now all 64-bit and your application
was compiled in 32bit you can't P it
over you have to get this SCE code
recompile it and hope it works for the
64-bit operating system but there you go
oh you may not even have the source code
you might be uh what was it interplay or
wizard of the co and we can't get ice
bondale 2 anymore because they lost the
source code they were able to do all the
other enhanced editions because they
found all the code on a computer except
ice1 Dale 2
so as far as lessons learn we constantly
have to watch and keep up with current
technology but we do need to look at and
figure out how to help our customers
move along in this particular case I've
been doing the assessment now for about
two weeks and we thought that they had a
current enough
um
as400 release build that we could Port
them
up except we found out there two
versions back from where IBM made a
change that they have to now recompile
the source to change something for the
new operating system levels if they
don't have the source we're dead we
can't go forward so now we have to
figure out how to get the data out of
the system so that maybe we can do
something else
and I think that's the that's where you
sort of draw a line with customers and
that's where with the the conversations
I've had it
is um there's the two sides of that is
can we get are if we build you know when
you get them to even the idea of okay
right we build a new thing we build it
from scratch or something we don't use
what we have anymore it's almost always
can I get my data out or at least having
that conversation of does that data need
to come forward because those are that
could be a very big thing moving that
data forward
particularly if you want to call fix it
if you want to modernize the design of
the solution which often is what you
want to do because usually the thing was
built and designed for a very different
system from what we have today and so
you have different different concerns
different Integrations different user
experience all of the stuff around that
and different ways even to deliver
reports and things of that nature so you
you do have to think about it is what
happens to the data to the to the
history of having that application there
it's like if you want to do it on a very
simple think about it it's like if you
had that if you played a game back in
the day and you had saves for that game
can you move those saves to your new
game logical question people ask it all
the time it means a lot more to quote
move your saves from an old system if
you're a multi-billion Dollar business
because you need to take that data that
customer data that sales data all of
that stuff most likely you need to bring
forward and so that needs to be part of
the discussion is what happens it's sort
of like a two for there as well what
happens if that system dies what happens
if that machine if you can't get into
that system anymore through the
application do you have a way to the get
to the data other than through the
application that may be a red flag that
if you don't you need to look very
quickly at how are we going to get the
data out of that application it may be
virtually impossible it may be something
where they have to go in and manually
you're going to have to go to every page
and have somebody type it all in
somewhere else I've seen some really
nasty we'll call them data migration
processes like that where it's literally
somebody is sitting there and they bring
up a screen and then they swivel over to
another one and they just are entering
the data back and forth they're
literally handm moving the data that can
be pretty nasty and that's where you
want you don't want your customer to get
to that point sometimes it is the
solution is just as much we're going to
like keep you limping along but the
first thing we're going to do is we're
going to find a way to connect hoses and
Integrations to your system to pull that
data out so it doesn't get lost even if
we put it in just some random data store
that we can as long as we can get it
back out that's key and then we can
always come back later and we can you
know build a new front end orever
whatever we need to do so I think it is
part of your conversation needs to be
not only the cost of maintaining what
they've got the risk of losing what they
have including their data and then
what's what is that going to cost them
and then if we build in new system does
it have to support that Legacy system
the Legacy data in some way form or
fashion and that may include and I've
seen run into these where there's it has
to have the old user experience
basically because of for whatever
reason that uh that is the only way that
you can work with the data the way it is
but now in the new
system they bought the you know sort of
bit the bullet and said all right that's
our Legacy experience
we have to maintain it but we're going
to embrace all of the things we can do
and make improvements so now you may
have you know I've seen it where you
have customers before 2020 has a whole
different experience than customers that
have come in since then because they
said well we're just going to start
pulling new data they're gonna all the
new customer data sales data is going to
come in through this new system and
we're just going to have maybe even as
bad as just a screen scraper which may
be something that you guys run into to
go hit the system which is some way to
start moving that data and eventually
hopefully automate it so you don't
literally have to have somebody sitting
there and keying it from one machine to
another that's some of the things I've
thought about so more thoughts on that
yeah it's interesting you pointed that
out because some of the things that have
come up recently is I uncovered that
there's a couple integration points with
this
system with applications that are also
no longer supported or around anymore
and then there's another piece within
Healthcare you have to essentially you
know you have to build your customers
well they have an exchange they go
through and they they have a file that
goes to the exchange that does all that
and then they manually enter that back
into the system when they get the
information back the problem is they
don't know what that
is and I have not found clear
documentation yet as to what that is I
suspect I know what it is um but some of
the verbiage that we've used from Modern
Medical Systems did not ring a bell so
that was a warning flag uh whereas it's
like okay we need to figure out what to
do quickly I knew this was urgent which
is why I took the project to help them
but in the same sense um I'm glad we
went this approach because they really
did not understand what they had
or what they needed to get from A to B
they just knew that you know someone
spills coffee on this we're dead in the
water because they only have one machine
and there is no replacement for
it and that I really hate having to
have part of those I love those projects
and hate those projects and what I hate
about them is the ones where it's you
get into the the initial discussions
about the project and they can't tell
you anything about it they can well
here's some code okay great it's
sometimes it's here's all of the code
great if I'm going to look through a
million lines of code I'm not going to
be able I mean I can get a gist of how
like it's sort of this and it's sort of
that I can look at the data the database
model the and say okay it's sort of this
and it's sort of that but I have to have
some context even there and usually it's
going to take you think about if you're
going to read if if it's read the manual
and somebody gives you a 10,000 page
manual it's going to take a long time to
go through that that and that's roughly
what they're doing when you get just
piles and piles of code you're talking
about something it takes a long time to
do and yeah you can sort of like look
through it and you get an idea and you
can you can get a feel for it's good or
it's bad or it's really confusing or
yeah it seems to be pretty good but
you're not digging for skeletons at that
point you're just like you know blowing
across large portions of systems you're
sort of looking at stuff saying yeah
this makes sense but you're not you know
walking through it line by line by any
means
and so those are the hard projects
because you come in and you say all
right well you don't know what you've
got so we're going to spend a you know
it's basically you you pick a point and
you say this is what it's going to be
you we're going to spend x amount of
time and we're gonna we're going to do
some research and we're going to give
you back what we've got in that amount
of time and it's like I said it's really
tough when you get into that and you get
done with it and you go now what we need
is another block of time and we're going
to have to dig deeper because we've got
all of these red flags that have popped
up and we have to actually start looking
deeper into them we thought we may be
able to get there but here's the
concerns and it's sometimes I've had a
few where it's like okay first round
here's five concerns next round here's
10 more concerns by the time you you're
you're getting into it and very quickly
where it's the point it's like
okay you have a lot of issues and again
that's where it I think that's where you
have to have those conversations and you
say okay the good news is we're here and
we have some paths forward the bad news
is is none of the paths forward are
going to be cheap easy quick or maybe
even include your existing system you
know we're going to get data out of it
the best we can but it maybe that thing
cannot move forward and I think that's
part of what you want to do as a when
you're doing those kinds of
Assessments it's just like anything else
is go hit the high-risk stuff first look
at the things that are critical or that
would the system if those exist
and it's things like do you have the
source code do you I do you have
documentation do you do you have a build
process that you know that works
sometimes say do you have this on
multiple machines when was the last time
you freshly installed it on a machine
things like that which like you you know
shortened that down too they've only got
on one machine they know they're in
trouble they know that can't die so it's
like oh well big problem Sirens are
going off we've got to do something
quickly and so that is leverage at least
then to say
okay this is important this is critical
to your business and in this case you
know probably even more so because it's
dealing with Healthcare information and
filling and all these kinds of things so
it's their business and probably their
patients as well to to at least a medium
to a very great extent so then it's like
all right we got to get in here and
we've got to figure out now it's like if
they're in healthcare it's basically
that like you got somebody that's just
hit the table in an emergency room
they're bleeding out what do you do and
it's it gets into some of the other
conversations we had where there's like
there may be a level of triage there and
it may be something where it's like okay
we're we're stable the patient is stable
right now but they could blow up at any
time and so we need to make sure that we
are prepared for that and as fast as
possible start doing the we'll call it
the healing process of their system or
the replacing process of their system so
we can get them moving forward and this
is where it does become I've found just
like personal thing is I I found that it
is much easier to do that in like little
bites sometimes it's you almost have to
take the whole thing but if you can find
a way to do little bite-sized chunks so
that you can show ready steady progress
so you can start sucking data out of the
existing information system and start
replacing functionality so people can
use the new system even while the old
system exists then I think you build
some you build some trust you build some
confidence and for yourself it helps you
build knowledge about those M those
systems the new one which you should
know because you're building it and the
old one which you don't know squat about
because you just got handed a mess and
honestly the last place we work together
that was exactly what I got they sent me
a hard drive couldn't send it to anyway
they sent me a hard drive that had stuff
in it and they said here you go go
figure it out that's how bad it can be
so parting
thoughts yeah so so like Rob said you
know it can be bad but the thing is
don't always go
in that it has to be
rewrite first go in at
least the way I'm handling this or I've
handled this before is I'm going in and
assessing what the problem is what is
the overlying problem then I'm trying to
understand the customer needs for the
this problem you know is it
life-threatening is it Mission critical
is it
and oh my God moment um and then from
there walk back you know what is it that
the business uses this for how do they
use this and ultimately that's gotten me
to where it is to the fact that okay
they are in as much trouble as we
suspected thankfully it won't affect the
patient so much in this situation
because thankfully we determin that it's
all their billing all their insurance
information all that's on this box all
their scheduling scheduling if that were
to go down they could still use
Microsoft calendar it's the billing
information that they're going to lose
and there's some more disconnects with
that that I'm uncovering but you do you
have to treat it like an onion you got
to peel the layers back you got to
slowly get into it and you may never get
to the core you may get to to a certain
point where it's rotted it's like oh
okay now what do I do well now you
either have to go build or grow a new
onion or replace it with something
else and I think that's a great stopping
point for us at this point partially
because we are out of time but uh I
think this is one of those things that
that we do run into it's especially now
because there's there's been such a enan
ment of technology in the last five or
10 years and it feels like we've said
that for a long time but particularly in
the last five years where remote and a
lot of other things have become a lot
more reality uh the the ability to
communicate you know the world has
shrunk and all those kinds of things and
then there's been a lot of uh
advancements in the internet area that
things that didn't even exist
possibilities you had in the past you
you know that were never going to happen
they were dreams now are very easy to do
and very common place I think this is
something for us all to keep in mind is
that yeah you don't want to break
something that's you know fix something
that's not broken but you also want to
make sure that you're you know properly
maintaining things and updating them and
and keeping them current enough so that
if there is a point where you have to
make a big change you're not having to
essentially like go back to the drawing
board to to rewrite it and by all means
have repositories and things like that
where you're keeping CCT of your source
code document things add comments that
kind of stuff so that you're helping
your organization company your customer
out whenever somebody does come back and
need to take a look at that application
if you have anything that you would like
to throw at us as far as like some of
your experiences or if there's some
applications you want us to look at we
can even do that you can reach us at
info@ developer.com you can check us out
on the developers site out on Facebook
we've got uh stuff out on LinkedIn the
developer ners site we've got forms
we've got blog posts we've got the
podcast we've got the YouTube channel
got a lot of different ways you can
reach us a lot of different Co topics
that we've covered always looking
forward to any kind of information we
get from you guys feedback to just let
us know like where do we want to go what
do you guys want to hear what do you
like what don't you like if you don't
like how we look sorry can't do anything
about that other than I guess we can
cover our face or something like that
we'll use some we'll use some filters
because that's all that's all getting
good we'll just have little AI people
that that act for us and we'll just talk
behind the scenes all right I digress
that being said we're going to wrap this
one up we're not done with the SE we are
still going to just continue talking our
way through the things we're running
into and the best ways that we can grow
as developers and also help our
customers be a blessing to them and to
those that work around us that being
said go out there and have yourself a
great day a great week and we will talk
to you next
time wow that's like painful almost
going through that thinking about like
there's some of those projects I'd sort
of like you know blacked out in my
memory somewhere and it's like oh yeah
that was fun so I have a final thought
for those still
watching what is your take on if you are
The Keeper of the keys you built this
great application it's been out there
for years but now you're done you know
you want to retire or you want to put it
aside you either couldn't sell it or you
did sell it or you know it it's just
essentially
debt given today's state of Open Source
would it behoove not just you but your
customers to put that out on like GitHub
and then open source and let the
community support it or do keep it
behind locked doors and say you know it
was mine sorry you guys are so I'm
done that's actually open source is a
whole different area to get into with
that because there
are so many so many restrictions around
that and legalities and things like that
that may be involved in it but if it is
something in particular that is a you
know like you had a little pet project
and you've got some customers and you
you're just like you're retiring and
I've I've seen a lot of those kinds of
projects and people trying to get PE get
uh Consultants to come in and reverse
engineer an application that they love
but they the developer quit the company
died something like that I think that is
something for you to consider is open
sourcing such things or putting some
some way so that it can even if you
don't want to deal with it that a
company that does or needs to can that
they can go in there and they can make
some changes and yeah it may require a
little bit of your time to go talk to
somebody about it to sort of help do
that handoff
but I I've earned a lot of money having
to dig through stuff that we could have
saved everybody if somebody had just had
an hourlong conversation so that that's
the stuff that I hate that's like blood
money because it's like you could have
saved everybody headaches mistakes and a
lot of time that was cost to your
customer your employer or whatever it is
if you just spent a little bit of time
doing a handoff maybe do a little bit of
documentation that's why it's near and
dear to my heart that if I hand
something over to somebody if I'm
wrapping up a project that I make sure
that I give them contact information for
me plus summaries documentation whatever
I can to say hey if somebody comes in
because I know I've done this enough if
somebody comes in six months from year
now a year 10 years whatever it is these
are some of the questions they're going
to ask these are the answers to them
this is how you get to these things
these are the you know and some here's
the logins here's the passwords here's
all of these things here's the things
you're going to have to worry about a
year from now which is very common where
it's things like if you go set somebody
up a website for example and you get
them an SSL certificate through blah
blah whoever it happens to be company
you know whether it's GoDaddy or one of
those if you they're going to have a Fe
come up a next you know a year or two
years three years down the road the
domain's going to have to be renewed
there's things like that that make sure
people understand these kinds of things
good example ran into something just the
other day had a customer that had picked
up my one of the servers we built for
him we had a demo server Dev server
replicated it it's a production server
we had stuff running on that that was
like backups and things like that for
them that they then upgraded their
backup system they had a new guy came in
did everything he didn't realize that we
also had all this stuff on that thing
that was just backing up files and it
was doing it all local so it wasn't a
huge deal but they now had built you
know a higher-end off-site solution and
we're like hey you're just loading up
you're like filling up that hard drive
now I mean you got plenty of space but
you don't need these things to run
they're you know they're burning
processing time and they're filling
space so maybe we you know if you guys
want to pause those we can pause those
and you can even delete all the old uh
backups that we had because now you've
got a different process so you know you
got to keep an eye out for such things
and just sort of provide like
architectural documents and you know
overall snapshot kind of documents of
this is what it does and this is what it
runs and this is what these things are
and it will it will save so many so many
headaches and uh I I could talk for I
could do a season on issues that we've
run into where they were gotes where we
didn't know there wasn't
documentation things something changed
and we even know where that was until we
had to dig all the way into the code
those kinds of external sources and that
just make sure you you document them any
more thoughts on that before we wrap
this one up no yeah the reason I had
asked that question is because remember
back before the internet we had to
publish software on CDs discs mail it
out and the underlying companies
typically either got bought and that
software carried on or evolved or it
died and so so just if you do think
you're done with something don't
necessarily let it go to the digital
graveyard you know there are things you
can do to save it or even potentially
save your customer's headaches down the
road maybe give them an option like a
retirement plan for you hey I'm done do
you want to buy the source code to
maintain this yourself you know just
just an
option well I think our options is to go
on and wrap up where I'm at at
uh in an evening but whatever the
generic time of the day it is for you
there's I'm sure something awesome that
you have coming up next thank you for
watching uh leave you know feel free to
leave comments down in the down here
we're going to have show notes with all
this kind of stuff all the social things
do that get out there let us know what
you think let us you know follow us
follow the check out the if you're
you're here so go ahead and check out
the podcast if you haven't because there
are some there are some adjustments and
things like that plus then you're not
looking at us while you're driving you
can actually just hear our dulet tones
while you're driving down the street
working out doing all the other stuff
where you don't really have the time to
do visual stuff we will wrap this one up
as always take care we will come back
next time around we're just going to
continue chugging on Tuesdays Thursdays
we get a you get a new drop you get see
whatever our latest stuff is and uh like
I said we're wrapping up this season
pretty soon let us know if you have
requests for the next one otherwise
we're going to make it up like we always
have and we're going to continue on the
next season and and continue talking
through stuff that we find helps us and
hopefully helps you become a better
developer have a good one everybody
[Music]