Martin Fowler, Michael Scott, Apple discussed on The Changelog
So you're obviously passionate about this particular subject. It is somewhat dry if the convince people to pay attention to somewhat arcane knowledge like abstract syntax trees but there's huge value that can come out of in doing these factories and really allowing yourself to re factor better faster stronger Is this a tough sell in engineering teams or do you find pretty easy to convince people to institutionalize kind of a tool in their toolbox yeah. That's a great question. I I have to say that. I think there's a few different things things happening. In our industry right now. One is like our kind of like a dopamine hit with that we get from like new tools and and new and fresh starts and you know there's a problem with like consistently working on new things which is there's a a set of challenges and you know for developing software that you just don't even get to really explore if you're constantly starting over like your to do like hello world. APP or your you know create racked up or whatever the hell else like great to do that every once in a while like I I'm not sure it's like healthy to be creating new projects all the time in the set like there's some real good engineering challenge that you get from having to understand how to drive value how to make the change while still shipping to production right. There's there's a how do you maintain. How'd you re factor safely like how do I. How do I re factor. like a you know a billion billion hit a month like co code base rate while still pushing to production understanding how to do that safely responsibly under like what are the nuances of that like in terms of testing in terms of like. There's so many interesting things like there's a class of problems that you just never get exposed to so for me I I the heroes in our industry are really the folks who are working being on legacy applications and still driving them forward and continuing continuing to chip at them and one of my kind of I think my some of my Phil- philosophical ideology comes it's from Martin Fowler who has really great article which we're GonNa link in the show notes on that y'all he it's str- Strangler fig application so it's it's basically he was on vacation somewhere. I think in New Zealand. There's this tree where like you you know it's growing roots and it slowly kind of strangling the the the thing you know it's growing new routes but it's slowly strangling allowance and so you basically the idea here is the pattern is that like you can kind of re factor your application module by module bit by bit and while still driving driving value forward and I'm personally like I'm sick of seeing like the next Gen team versus the like old Gen team so many companies I have. There's you have a group of people that are working on something that is not shipping to production for like six months twelve months fourteen months seventeen months you you get the drift right so ultimately like you're building a whole set of things where you're not even getting that daily that you're you're not getting that feedback loop from your customers on like what's working and what's not you're developing the new version of your thing in a in a complete silo and so I think Oh really interesting problem that I had to solve a few years. Ago Actually was new on a team and I was hired to like are- architect all of the Ui get us off the legacy code and it's really funny. I've never actually talked about the story so I'm realizing now like that like maybe this is the origin story for me but you know it was a backbone application and they wanted to switch to react and I was like we're not going to get rid of react. WE'RE NOT WE'RE GONNA get rid of. All of these backbone. Views like the best part about of react is it's just a library and so maybe we just build infrastructure so that this whole new view this you no this new set of functionality that we're adding. Maybe that's react and you know and we were able to kind of push forward. Having all of our new views the components while still leveraging the backbone components like those those two things lived next you know in one ecosystem it was a little more work but we were able to slowly replace everything while still driving value while getting feedback from from customers in the wild and like that's the type of challenge like for me. That's that's. It's what makes like a senior engineer. That's what makes an architect. That's what makes you know like that's what makes for somebody who really understands the challenges nuances of our craft and so you know this is like we we have more code. Now like than ever are forget our code like most of our code is actually third party dependencies. I think Google just did a study on on that in the it's like out of every ten lines of of of Java script like it's one line of code. That's belongs to the nation. You know so it's it's. It's a shocking number but if you think about it I mean it's it's no surprise because I mean the open source models working. That was what it was designed to do. You know we're not reinventing the wheel. We want to be building on you know standing on on the shoulders of giants but at the same time you know we we need to understand we need to be able to move quickly and shift you know as so if I need to if I if I want to switch dependencies like I want to be able to do so in a way that isn't going to set me back or I want to be able to do so in a way that's you know safe and it's not just changing dependencies. It's about upgrading and all kinds of things and so there's a culture now with some of the larger frameworks and Euler being one one of them where you know they'll they'll give you a set of transforms with your with with version bump you know so. They're like all right like new major ager. Release sorry for the breaking changes. You know where we're now. We're now. We're now going to give you a command to run so that you can migrate from. I'm like five to sixty seven. That's awesome so the bar is getting yeah so this is great. This is like when browsers compete for security and speed and all these other things you know he's big libraries are now competing on user experience and Dx more so developer grants right and so so the bars getting higher because the stakes are getting higher and it's it's we can start adopting those those practices like in our own code bases application developers you know and that's and that's my that's my pitch. I liked that pitch. I know we have the shared metaphor that I'm not introducing you to either of you to it but we had as metaphor of technical debt and the idea that you are taking on debt in order to gain somewhere else and eventually the debt collector is GonNa come unless you managed that over time any in finance we have ways out we can declare bankruptcy of course you like Michael Scott. It doesn't quite work where he just walks out and says has bankruptcy so that episode but one of my favorites. You can't just can't just say the word out loud Michael. It's not yeah he just goes out into the office and he just declared bankruptcy. Eh and Oscar the accountants like that's not how it works. You can't just Claire Bankruptcy anyways off topic but you know we have a lot of people declare bankruptcy with their technical. Dez where I'm trying to get to because maybe it's part of these the tie in with the Silicon Valley mindset startup mindset of like you know you have to have a bunch of people spin up new things and then they die and then here comes a unicorn out of that right like a thousand failures here comes one success maybe that mindset is tied in with the technological advances and we get to this point where it's like well. A new thing has to begin I'm with you very much so on the on maintaining legacy code and and that being really the the software that provides value over a series of years in fact a legacy right. It's the reason why it's still around is because it's providing real value real people but is there a point where you've come across any code where it's like. You know what you guys didn't manage the technical debt here. There's no I like Eddie pushing things forward but sometimes you're pushing up against the wall or there are limits wants to this. Yeah there are limits to this ideology or can we re factor all things. I'm sure there's I'm sure there is there are there are cases like although I think they are very rare where you have to complete the you know just abandoned ship for the entire project but with the with the kind of module by module approach the idea here is that you're taking kind of one vertical segment and replacing facing it and then throwing away the code that you don't want right throwing the whole thing. You're doing it or you're doing it. Re Yeah or you're factoring in place so e either either one but I think for me an acknowledgement that we don't make enough in our industry and I and I think you're totally right about You're kind of analysis on you know. Maybe it's silicon valley culture. Maybe there's some kind of culture bleeding. I'm here with just a race to the top right but we don't acknowledge like I feel like enterprise. Code is like it's its own beast our community you know so you're either like enterprise versus like small medium versus like whole crate react up the world trade and so these three kind of paradigm where I think the we're nobody wants to be enterprise like I think we even coined the term enterprise dude team that was enterprise. Dude always having enterprise dude is always relying on like the the Lakeville the League supported version of holding back people from being able to upgrade things you know anyways but enterprise so real software like soccer. That's been an out in the wild that has had multiple developers work on it and like you know like like applications at scale have Chris and yet to kind of see applications at scale. Don't use multiple languages that don't you have just arcane like stories behind why the Weirdo thing exists. It's you know it's like all right. When you open this file. You're going to have to turn around times. Tap your nose. They just the most hilarious stories but but but applications are living breathing they have craft. That's normal like so. I want to normalize Malaya's weirdness because that's just like how applications evolve over time with multiple and so it's okay there's there's there has to be some uncomfortableness in our code bases because ultimately like you know you have to have something to be pushing pushing forward as team. I envy the folks swore like really happy about everything and you congratulations to them. Maybe this talk is and you know but this talk is for like ninety nine percent of us the cash Mike Tyson said everybody has a plan until they get punched in the face and that's in everybody's playing goes out the window. Basically he knows that pretty well because he was punched in the face. I think you know code is kind of like that like we all have this beautiful perfect you know. Pristine Code until it hits production hits the real world and what happens like stuck hits the fan and you gotta make changes and so the longer it's been in the real world is GONNA look. I'm looking at this picture on Martin. Fowler blog of Strangler fig application on thinking that code is that tree. That's an abstract some country that tree his crazy. It's crazy looking but yeah I mean at the very minimum you always have the CO button right. If you're if you're quotas perfect perfect I I challenge you to find like one decision that wasn't like the CEO Button decision where it's just like you know. Put it there and make it happen happen. Ship it now like thing so yeah well. Your talk is the first day of the conference right so you're on day one. That's the October Fourteenth Conference actually happens October Thirteenth Fifteenth some workshop set are going on if you are planning to go to this conference friends which I would suggest you do so because hey we're going to be there as a matter of fact we're planning to have it live. GS party at all things open only be a future panelist or future guess painless on jeopardy so hopefully there at least CMO Day One but I'm not sure which they are life thing is but is definitely going to be there all things things open happening in Raleigh North Carolina October thirteenth or fifteenth this year and this if you are thinking registering I would say that right now between the end of the month they're they're mid Tier Pricing Act of sucked October. I it goes. A little higher is still a very inexpensive conference. Even on its most expensive ticket period is to seventy nine so not very expensive conference of Goto Amazing Speakers Emily. You'll be there of course jared incapable on stage doing something. I'm not sure what what does the planner do. You have a plan. The plan will be revealed when I plan is revealed yeah. It's it's it's GONNA be. It's a fantastic conference. it's like just incredible and lots of an audit attracts an audience. This kind of you know really diverse. Yes and also has just a an interesting breath of problems than so highly recommend. APP really excited to be speaking there this year. I want to give a quick shout out to todd. Lewis the organizer Nazar of that conference. He does such hard work to make that converts apple each year every time. I taught he's always moving. He's always moving. Never still bill is he's always going so todd. Great Work went on this conference looking forward to being their first time there was in two thousand sixteen glad to be back and Emma. Thank you with your time and your wisdom. You are welcome back. Thank you so much and it was fun talking to you so much for having me. It's been a pleasure all all right. Thank you for tuning into this episode of the Change Log. Hey guess what we have discussions on every single episode now so as to change log dot com and discussed this episode road and if you want to help us grow this showed reach more listeners in influenced more developers favouring a rating or review and I tunes or Apple podcasts. If you use.