Logo

Software Developers Journey Podcast

#79 Ted Young & Java, a love story?

Transcript

⚠ The following transcript was automatically generated.
❤ Help us out, Submit a pull-request to correct potential mistakes

Ted Young 0:00
That's the hardest thing, you know, as any kind of presenter or trainer or whatever, is

to say:
"That's a good question. I don't know. Let's figure it out".

Tim Bourguignon 0:15
Hello, and welcome to developer's journey. The podcast shining a light on developers lives from all over the world. My name is Tim Bourguignon, and today, I receive Ted M Young. Ted has been creating software and training developers for several decades. In the 90s, he traveled the world as a Java trainer, consultant, and speaker. In the early 2000s, Ted led Extreme Programming projects for the government and at eBay. He went on to introduce Lean and Agile concepts at Google and Apple to name just a few. In 2017, Ted came full circle and is once again focused on creating better learning experiences through technical training and coaching Ted, or warm welcome to dev journey.

Ted Young 1:05
It's great to be here. Thanks.

Tim Bourguignon 1:06
So let's go back all the way to beginning when and how did computer enter your life in the first place.

Ted Young 1:12
So way, way, way back in the late 70s, when I was, let's say about 13 years old, I had gotten a trs 80, way back when 4k was a lot of memory. And I was just amazed at what this thing could do. This is the days where you had to type in programs from a printed magazine, and I'd sit there and type things. Sometimes I would lose it and I'd have to re write the whole thing. And loading programs and saving programs onto cassette tape. So that was that was definitely experience. But there was just something about it that really, I felt like this is this is just fun. And you know, later on found that I could actually make money on it even better, but it was I just just took to it. You know, not to use a cliche, but you know, like a fish to water. It was just magic for me. And also worked on an apple two plus, and developed software that my father used for his stock market investing. And probably spent too much time I probably should have played more sports with my friends. But after school, I'd sort of run home and work on the computer, wrote my own bulletin board software, and tied up the phone way back when you had modems. And so that was for just kicked me on to just having computers always in my life.

Tim Bourguignon 2:46
Do you remember what what attracted you?

Ted Young 2:48
It was that I could sort of express myself, I think in a certain way that that I that I couldn't elsewhere, I love building things I was always I was the kind of kid where, you know, everyone probably grew up with Lego, most folks grew up with Lego. But I was the kind of kid who created this monorail system that took up every nook and cranny of my bedroom. And it would basically i would i would create track that would spread from one end of the room to the other and just build these massive things. I also remember building models of sort of working models of bridges with no cartons and string and, and popsicle sticks. And I was just always a builder, I always loved just creating things. And here was where I wasn't limited by space, or I wasn't limited by the materials I had was just what I could I could think of. And so being able to, you know, take some code and play with it. It's like, oh, wow, I can do this. And, and, you know, find some nook and cranny in the memory that I could poke literally poke at, because that was a basic statement back in the day, Pokemon peak, where I could do something and something would happen and this sort of unlimited by physical space and immediate interaction. I just I just loved i think i've you know, and it's also the the learning aspect, which I think, you know, we learn a lot even when we're not aware of it when we're building things, whether they're physical things and building with Lego and sort of trying to match what's in, in your head with with with what's in front of you. And I think that's something you know, that I look back on and I've always been trying to do this there's there's something in my head that that I want to make sort of either real or sort of real in a computer you know, what is what is real in a computer but sort of represented in in the machine. I think that that's always giving me just just joy. Oh, I can really?

Tim Bourguignon 4:56
You said you wrote some software for your father. When When did you Go from from goofing around and building stuff because it's cool. And just for the thrill of it, to building something that is actually useful to someone,

Ted Young 5:10
there's, there's always been something where I always want that stuff that I built to be used. I remember when I was building the bulletin board software. And you know, this isn't the days when that's all we had to communicate with the shows was 300 baud modems, and we dial up and call each other things, and I decided want to build it. And I loved sort of interacting with people and getting their feedback and saying, Oh, that's a great idea, or realizing, oh, it should do this. And I started doing that and actually sold I remember, I sold a copy of the Bolton board software for, I think it was $25 to the local Coast Guard. This was when I was growing up in New York, I don't remember how they found me or whether how much they used it, but I just remember, it's like, wow, I can make money on this. But it was really more about being able to provide something that somebody found valuable. And so my father was was publishing a stock market newsletter, and he used to remember he, he'd have this graph paper, and he'd be drawing a certain kind of chart, what was called point and figure charting, and be drawing it by hand. And I'm like, Wow, that's a lot of work. And, and I think I can do better than that. And so, you know, and I had to do research. And I think, you know, thinking back, like up. So one thing that if, if you know, me at all, and is is you, I'm a researcher at heart, I guess, like just recently, I was at a conference, and I was sitting next to a guy who had gotten to know a little bit. And the speaker was talking about something and mentioned something. And so immediately, I'm like, on Google Scholar, looking at papers having to do with the thing they just talked about, and, you know, now I'm down the rabbit hole of the bibliography. And I've got 10 papers downloaded that I'm that I'm sort of have reading as I'm listening to the talk. And so even way back when, when I was working on this, this charting thing, it's like, we'll have to figure out how does it work? And I have to figure out, so I had to look at the book, what does it mean to draw this kind of chart? How does it work? How to, you know, what are the different sort of aspects of it. And so there was there was this, this sense of, I wanted to, I wanted to get it right, I wanted to provide this way of doing this thing, this, this sort of, really kind of manually intensive, you know, it's, it's one thing to draw these, you know, you see these standard, you know, stock charts that you know, have bars, and so on. But this is a little bit more sophisticated, there's a little bit of an algorithm behind it, that's not obvious. And so just reading about that, and looking at it, and playing around with it was just really fun, and then being able to see that, that my dad could use it. And then he used it, he published a little sort of self published a stock market newsletter. And so he print these things out and paste them up and, and, and off to the printer at one end.

Ted Young 8:10
And

Ted Young 8:12
it was just just a lot of fun to you know, of course, you know, frustrating and as all coding is, but being able to translate something from this sort of, you know, described in a book on on how to draw point and figure charts to something on the screen and see it just appear with just kind of incredible, like, you know, that that didn't exist before

Tim Bourguignon 8:36
would take away using back then.

Ted Young 8:38
Back then this was on on Apple two plus this was Apple soft, basic. So not compiled, nothing, nothing, nothing. Oh, nothing fancy. But you know, just just probably thousands of lines of Apple Apple soft, basic code.

Tim Bourguignon 8:54
Nice. When did you realize that you could make a living out of it.

Ted Young 8:59
The first hint was, my father had hired this this other person to create some some more basic stock charting the Price Bars, create a program that that did that. But he did it in Pascal, which required the special hardware for an apple. So my first experience of doing some of that stuff was translating the Pascal code into applesoft basic, so it didn't require the extra hardware, and then adding on the point and figure and then Dow Jones and company which you may know, know who they are. But way back then they published software to basically track people's portfolios and things like that. And one of the things they wanted to buy from me was basically the stock charting software. And so they basically licensed it and publish it as the Dow Jones Market Analyzer. I forget the exact name and that was the code I wrote and You know, basically pay for a good part of part of my university education. And so this was, you know, when I was 1415. So again, it was like, you know, I'm doing this, you know, yes, to help my dad, but also because it was fun, like I wouldn't be doing it might not have been doing it if it wasn't, if it wasn't fun. And then it was just a matter of you know, and I went through school, and I went to university, and but I'd already been helping out with, you know, writing software and things like that. It's like, oh, okay, I can make money at this. Sure, okay, want to make a lot of money. So I was working with some of my dad knew through someone else, and ended up doing some consulting for this. This guy who was a lawyer, and specialized sort of an international law, he was actually originally from Germany. And he was really interested in doing search, because one of the things he found as a lawyer was, it was really hard to find the proper thing that you needed to cite in a certain case, and this was the days when, you know, the law stuff was, you know, there wasn't still no internet, really. And it was most of the stuff was distributed on on CD ROM. And so I worked with him. And he sort of came up with these ideas, but I mentored them still in a form of basic and at that point, quick basic from Microsoft. And basically implemented some what I thought were pretty unique ways of doing search, right? This is before Google before excited home before Alta Vista before all these folks. And I was just amazed. And again, sort of the researcher at heart, the first thing I did was, went to my university Computer Science Library to try and find all the stuff about how to search and stuff that we take for granted these days, you know, that are implemented in Elasticsearch or solar or things like that. were developed by a few folks, I remember Salton was the name of one of the original, who came up with sort of this inverted word frequency that is still in use today. And I was just amazed, like, here's this magical answer to how to do this in this book. And in these papers, and nobody was doing it. And so again, sort of I was just fascinated by by the, sort of the concepts and then, you know, implemented, it actually got a patent on it. And made, you know, I made a nice bit of money. And it was just sort of natural. I didn't even, you know, I was very, very lucky that I didn't really have to think about what am I gonna do? When I grow up? I was already doing it.

Tim Bourguignon 12:52
That's that's almost a dream. Yeah. Yeah. That's really cool. And how did john enter your world,

Ted Young 12:59
I had been doing a lot with quick basic, and I forget exactly how I got the attention of Microsoft. But Microsoft in the think was the early 90s, was working on this Windows based basic, which we now know and love, or, or maybe hate, but I still have a love for it Visual Basic. And so I was in involved in the Visual Basic 1.0 beta. And I was, you know, I, one of the things I tend to do with it with a new language is create a stock charting package, right, because that's what I did when I was a kid. So it's like, because it's nice, because it sort of exercises the graphical aspect and some of the basic math of you know, something over time, things like that. And I always tell the story, because I just find it so hilarious that Microsoft, one of the things that they want from the beta program is like, if you have a demo of something that you did, we'd love to take it. You know, they used to do roadshows of demonstrating the product, or when the program manager would go around to different trade shows and things like that. And so mine was a stock charting package. And what they loved showing was comparing IBM stock price with Microsoft stock price, because at the time, IBM was where their big competitor, and they love showing the chart, because Microsoft was basically up into the right and IBM was down to the right. And so they love, they love showing that. And so I was doing a lot with Visual Basic, I had my own version control product. Again, I did the research of like, well, what is version control and came across early differencing algorithms and with block moves. And I have to say, I'm still today disappointed with the way for programs that do version control, do comparisons, as if they is if it's just lines of text without understanding that there's syntax that they could look at. Like, why are you comparing this closing brace from this previous method with this closing brace over here, it's like That's a separate method, you should compare them method by method. And I did that when I wrote the visual basic version of this version control for comparing it, I understood the structure of the visual basic code, and I could do better comparisons. And it This was, Oh, god, this was 25 years ago. And why is it still not great? Anyway, that's a, that's a whole other discussion. But I was frustrated because it was things I wanted to do in Visual Basic that I couldn't, that the only way I could do it was to do it in c++. And I didn't know c++. So I took a course in c++. And I got through it. And there was something about my brain and those, you know, asterisk pointer things that just did not mix. I just, I just couldn't get the something about the abstract way that pointers work. Now, of course, I could get it. But you know, back then, in the early 90s, I'm like, I'm just not getting this. And I really felt stupid. I really felt like, why is this so hard for me, and I was really frustrated. And basically gave up on trying to do anything with with c++ and like, That's it, I'm just gonna, I'm gonna be a basic programmer for the rest of my life. And then I forget exactly how I got in contact with some folks who were doing some early Java stuff, and I got access to a sun workstation, because this is before Java was released. And when it was an alpha, it was only available to compile and run on on sun workstations. And then soon later, it was available on on Windows. And I thought, like, Well, okay, here's a language that is sort of more allows for more structure, right, what we call object oriented. But oh my gosh, it didn't have pointers, at least I didn't to do pointer arithmetic. And I didn't have to figure out and and read how to how to dereference, these things just sort of had pointers underneath, but it was hidden nicely. So I didn't have to think about it. And I felt like, sort of again, it was a really good fit for where I was at and what I wanted out of writing code. And, and I started learning it and playing around with it and writing some sample programs. And yes, writing a stock charting package. And because of course I had to. And then a friend of mine, was doing c++ training. And he knew I was doing Java stuff. And so he had gotten a potential client who said, Hey, can you do some training in Java? And he was like, Well, I can do the training part. He came to me, it's like, can you help develop a course and like, sure, what up what the heck, that seems like a good idea. And, and basically, over over time, developed training materials and was delivering Java training, even before Sun was doing anything, so that we were literally the first as far as we knew, the first Java trainers in the world. There may have been others, but at least in that, that we were aware of in the US, we were the first ones. And I look back, and it's like, you know, this was Java one Oh, and sort of soon after 1.1. And I was just like, this is my language. And this it does everything I needed to. And you know, it's one of those where I thought I learned Oh, and when I was teaching it, it's like, oh, I really don't know it. Now I know it as I'm teaching it. And then I read about design patterns, and was part of a study group that were studying the design patterns, like, okay, now I know, oh, and you know, every few years, I say that, again, even just recently, it's like, oh, now I get it. But I felt like Java was. Now I feel lucky, because Java is still popular today, even though it sort of there was a period a few years ago, I think, where people felt like, oh, Java is dead. But now with their new release cycle, and I think there's, you know, in spring framework being really popular, I think there's a lot more excitement about it. And so I feel kind of lucky that the language that I felt like was language for me, is, you know, still always love basic but, but the language that I that I taught people and work with is still popular and useful today.

Tim Bourguignon 19:23
Before going back to you, where do you think Java is headed?

Ted Young 19:26
I think it's in a really good place. As I says, like, I think Java eight is now five years old. And the switch from seven to eight was really hard for folks in Java eight, added some really important features around the lambdas and streams and things like that. Java nine, I think was sort of the the low point where it took so long to come out with it. And I really felt like what's going to happen because it it took so long to come out. Nobody was really happy with it. And then once they move to the every six months life's release cycle. every six months, we have a new release, and it is so much nicer. We're getting features that have been sort of needed for a while. And, but we're also getting a chance to sort of try out new features. And so one of the things I really try and do is whenever a new release comes out, you know, I'm sort of always turning on that enable preview, which gives me access to, to the new features, and and try them out. And I think, you know, there's always going to be things where people are going to complain Java's repos and things like that, but I think spring has basically one from the framework department, and not just one because, you know, there's no other choice, but one, because it's, it's really, really good. I thought, you know, four or five years ago, it wasn't so great in XML and other things. But I think now what, you'd have to have a good reason, I think, to choose anything else. And not that there aren't other valid choices, but I think that you'd have to really, like have have a good reason to do that. So I think, I think it's really, it's on its way back, or it's already back and never really went away. And I think the the release cycles, and the features that are being added, will only make it more popular.

Tim Bourguignon 21:23
When did you write the last version of your trading software in general?

Ted Young 21:29
It's been a while, um, gosh, I may have updated it, because I used to teach swing, which was the desktop GUI stuff back in the in the early in the late 90s, early 2000s. So that was probably the last time I updated it. I had looked around for for a project. to work on it, it did cross my mind that I could write one. But I felt like, Well, okay, I can write it in Java FX, which is sort of supposedly the replacement for swing, but it wouldn't be that different because the graphics is still the same. So I'll have to wait for another language to rewrite the stock charting.

Tim Bourguignon 22:07
Have you looked at kotlin?

Ted Young 22:10
Yeah, I have looked at kotlin. And I, and a couple years ago, I was really gung ho about it. But just didn't have a good opportunity to use it enough where where I would be sort of where our get familiar with it. And then when when Java started having more releases, I kind of feel like, if I was doing Android, I would totally be using kotlin. Because it's I think it's just such a good fit. And obviously Google puts puts put themselves behind kotlin as as the Android language of choice. But I don't feel it to be as compelling to switch to it anymore. But I am going to do some some, you know, some more attempts at trying to convert some of my code in into kotlin and play around with a bit more. But I think it's a great language, I think it it does, especially some of the knowledge, protection aspects of it are just really, really useful.

Tim Bourguignon 23:09
What should language bring to get you out of Java?

Ted Young 23:13
I think it would, it would have to live really well with existing Java. And I think that's something that kotlin did really well that Scala not so much. So if you're going to switch to Scala, even though it was running on the same JVM, it really the interoperability was not great. Whereas kotlin was designed to be interoperable. And so I think of any of the languages, you know, there's a bunch of ones that run on the JVM, there's groovy, which I don't care for, because it's a bit too dynamic closure, which I'm just not a lisp guy. So. And there was some other ones, say lawn and some other ones that that looked interesting, but just didn't have enough sort of weight behind them. I think if there was any language that that would get me to move away from job, I think it would be kotlin. And so, you know, it has to be interoperable and have to be, have all the good stuff that Java has, which is tricky, at least for me, it's it's static typing, you know, I am a big fan of static typing. I've worked in large enterprises where that's really kind of necessary, or at least really helpful. But I also recognize that I am very, very biased because I grew up with Java, and more than half my life is spent with Java. So I'm pretty happy with Java, you know, I mean, there's stuff where it's like, oh, that's that's not so great. Oh, it'd be nice to have this but I feel like I can focus on what it is I want to have done and not worry so much about, you know, syntax or, or other things and most of the things that I want to do, there's there's libraries for

Tim Bourguignon 24:53
I know the feeling, I know the feeling. I would like to come back to anything something else he said. Goodbye literally how you started the training business? And was it something that was on your mind before before your friend came to you and ask you, if you'd be ready to do this in Java?

Ted Young 25:10
Oh, god, no. And the reason I say that is because I used to have such incredible stage fright shyness. Like, I remember, I would completely Go Go mute and not be able to speak a word. When I was in like, fourth grade, I remember like, distinctly, like just being so an aspect of I don't know, if it's shyness, or just anxiety, it just would not be able to speak in public. And I remember my dad sent me to, like, you know, public speaking courses, which I felt only made me more anxious, because it was all these things that I wasn't aware of before that I'd have to be aware of, and it would just actually made it worse. And so it's kind of really interesting that I took to the training, I was like, Alright, well, this is interesting. This is you know, and clearly a business, or at least could be a business. I think I inherited the entrepreneurship, from my dad. So like, I didn't work for anybody else. Until, you know, I was at least 10 years out of out of university. But the training thing, I look back at some of the materials, because I still have the original materials, and I kind of cringe at the actual materials, but there was something about it, I can't quite put my finger on it, other than I am good at explaining things. That made me a good trainer, and I liked it. And so so, you know, I had two things going for me, I was good at it. And I liked it. And so, which was a total surprise to me, I it was not something I was looking for, it's not something I expected. It was not something I expected to actually enjoy. And I still enjoy it. I still love you know, whether it's sort of seeing the light bulb Go on, you know, above people's head because they finally get it, or coming up with an interesting way to explain something. I I actually really just love doing that.

Tim Bourguignon 27:12
I love it as well, this feeling when somebody asks a question, and you, you have to pause for a second if Oh, shit, I'm yeah, sure about that. He's a real, it's just fantastic.

Ted Young 27:26
I think and I think that's the hardest thing, you know, as any kind of presenter or trainer or whatever is to say, that's a good question. I don't know, let's figure it out.

Ted Young 27:35
Yes.

Ted Young 27:36
And, you know, I think back to some of the early days, when I was doing that teaching, I I had to figure that out on the fly, because there was no other way to, to know exactly what people were going to ask. And people would, you know, sometimes be a little challenging. And sort of this, this, this line to cross of, like, it's okay to be challenging, but it's not okay to I guess maybe now you'd call it trolling. But you know, when, when a question was asked, and it's like, I didn't have to know everything, all I had to do is be able to figure things out quickly. I think that's something else that that really helps me is I can, I seem to be able to really get at the hardest something and figure it out really, really quickly. And so being able to take a question where it's like, you know, what about so and so I'm like, that's really interesting. Let's go look at that, or, I don't know, let me get back to you tomorrow. And I just remember, when I used to be on the road training, I would have my bag probably exceeded the weight limits today would be stuff with books, you know, describing all the API's and all the different things these days, you know, who needs books anymore? But those days it was I had to carry them with me. And so after, you know, after that day, I'd go back to my hotel room and, and quickly, you know, do some reading to figure out what what the answer to the question was. And in those days, it was sometimes, you know, deep questions about how the JVM works these days. nobody really cares, because it doesn't matter as much. But it was it was Yeah, that I mean, as I say, you know, you never learned something not not only as well, but as deep as when you're when you're teaching it.

Tim Bourguignon 29:19
Yes. Absolutely. Yeah. Fantastic. Let's switch gears and talk XP when windy in extreme programming, enter your your career,

Ted Young 29:32
Martin Fowler. So I had recently moved out to the Bay Area because I was born and raised in New York and then sort of 9899 moved out here to the San Francisco area, basically to open up our west coast office of the trading company. And there was a seminar of some sort. I don't remember who was sponsoring it who put it on but Martin Fowler basically came and talked about XP I don't even know if it was would have been called XP at that point, because this was 99. But anyways, like that, that, you know, it just, I was like, Yes, yes, yes, yes, this is exactly what I'm putting words to what I've been sort of feeling and thinking. I had always written code in a way that was was testable without sort of really thinking about it. And I remember I'd always write these pieces of code that would run tests against my other code, but I had to verify it manually. It wasn't, I wasn't doing automated testing. This is, you know, sort of in the early 90s. And so, but, you know, I really did a lot of reading about what is good Oh, code, and structured code and all these kinds of things. And, and I saw that presentation it like it all came together. And in the Bay Area, there was a group called Bay XP. And so I met a whole bunch of people, some of which work, who I'm still in touch with who were also like me, like, yes, this is this is the way to do it. And I actually was lucky enough that a consulting company that I was working for, in the early 2000s, we had, I basically convinced them to pitch to the San Jose county government for a project they were working on, pitch the idea of, let's do XP, let's do a month by month contract, we'll figure out what we need to do. Next, we'll do pair programming, we'll do all the all the good stuff, we wouldn't do the typical consulting thing of work breakdown structure and come up with a plan for the next 12 months will basically do month by month, doing the next most important thing and delivering it and getting feedback on it. And they bought it literally, they they bought it and we did month to month statements of work. And as far as I know, it was one of the first XP like contracts that that that I was aware of. And we actually got written up in the San Jose Mercury News at the time. And I just thought, why would you want to do it any other way? Like, why would you want to say go off and develop stuff for a year, year and a half? And then come back, we'll see if we like it when the magic was happening? Because we remember, there was one concept. So this was for the San Jose county jail system, we were trying to automate their paper system. And there was this thing around how you figure out whether you can release somebody you know, when they've been arrested, but they haven't come to trial yet? Can you release them on their own recognizance? Can you release them on bail or whatever. And there was something about it that I couldn't figure out. And so I kept trying and doing different things and talking with other people. But it was the constant being able to sit with the customer, right, this, you know, on site customer, we were actually on site with them, and being able to get the feedback, where Finally I showed them something and they said yes. And that was just like, Oh, my God, I did it. You know, because they weren't, it was it was really hard. You know, this is always the problem with with with folks who are experts at what they do. They can't always describe it in a way, you know, and this goes back to training, right? They can always describe it in a way that someone who's a novice at that topic can understand. And once I sort of cracked that nut, it was it was just, you know, those are the moments you wait for. And to me, that's a big part of XP. Yeah, they're sort of the, you know, the technical aspects, which I still am very much in favor of, you know, good testing and, and good clear tidy code and pair programming. But the feedback with the person who is basically going to be the person whose life is affected by the thing you're writing, that kind of feedback is irreplaceable.

Tim Bourguignon 34:05
Indeed, how did you end up working for apple? And

Ted Young 34:10
yeah, so. So I've been working at a company called guidewire software, and they for nine years, and it was kind of moving around inside the company and finally got to the point where I didn't feel like there was the place that I could really contribute. And so at that point, I was actually going to go independent. And I was going to go and basically do what I'm doing now. But a friend of mine said, hey, there's this new group at Apple that's going to basically do what, what they were calling solution architect, but but only internally. So they were working on a sort of next generation internal cloud system and they needed people to help other internal customers onboard on that. To this thing, and so it sort of hit all the checkboxes for me, it would be some training that I'd have to develop, and it would be consulting and working with different teams. and was like, Oh, great. So not only do I sort of get to do what I want, you know, not work on just one thing for for years on end, but also, you know, work with a bunch of different people, bunch of different products, and do some training, like, and I get to work for Apple and get, you know, a regular paycheck didn't quite turn out that way, it was a bit premature. There stuff I probably could talk about. But suffice it to say, it didn't quite turn out as advertised. And so I, I did some stuff and help the team but, and developed a little bit of training, but it just wasn't going where I wanted to go. It was, it was really frustrating, because I felt like, there's stuff I could do, that would be really helpful. But they just weren't ready for it. That plus, when you work at Apple, it's actually really, really, really difficult to do anything sort of on your own, like I could really couldn't create my own, you know, learning materials or couldn't really write my own blog entries. Because Apple is particularly paranoid. And in some senses, rightly so they have, you know, all all their money comes from intellectual property. But it felt a bit stifling for me. And, and so finally got to the point where it's like, you know, what this, you know, it's hard to turn away an apple paycheck. But it got to the point where it's just like, I'm just not happy. And I finally pulled the trigger and said, okay, it's been fun, but, but I need to go back to sort of what I originally wanted to do, which was do training and consulting,

Tim Bourguignon 36:59
which is what you're doing today,

Ted Young 37:01
which is what I'm doing now. Yeah,

Tim Bourguignon 37:03
how much of your coaching involves XP,

Ted Young 37:06
um, I basically. So even though I consider myself a technical coach, and technical trainer, I focus really on very much the development engineering practices part. So

Ted Young 37:23
they're,

Ted Young 37:25
the parts of XP that I don't address are more than ones that are sort of the customer facing facing parts. But even there, I guess I covered a bit. I just don't call it XP, I guess. I just call it like, these are good dead practices, let's talk like, there's a class I teach for a large financial firm, that's basically a week long. I don't know if I'd call it a boot camp. But sort of, you know, let's, let's look at a variety of different things focused on, you know, good coding and learning, spring and Java. But we start off with, you know, user stories, because I think even if you're a developer, understanding what a good user story is, and one of the main points I tried to try to drive home is the why why is somebody asking for this story? why somebody asked for this feature? What is the reasoning behind it? What is it, that the person who's going to use this system wants? And is the way that it's been described on sort of what you're going to do match with the why, like, my favorite thing always is, you know, create it, they come up, you know, so I have them write their own stories, and then we critique them. And so the stories often are, because this has to do with sort of financial stuff is like, you know, have them show a list of transactions so that you can keep track of, you know, the spending that your your kid does, right? You're tracking your kids spending, and like, nobody wants to look at transactions, like who wants to go look at a bunch of transactions, nobody wants that. What they want is, have, you know, has my son spent too much money on video games, just let me know, or don't let them spend more money on video games, I don't want to look through 20 transactions to see what he's spending. That's what a computer is for. And it's really interesting that developers commonly come up with this. Because there's, they're thinking too much about either what they've seen before, but also sort of the innards of it, the internals, and I want them to get that outside perspective, wanting to think about really put themselves in the place of, you know, if this were you, would you really want to be looking at these transactions, or maybe there's a better way to achieve your goal. So even though we only spent a couple of hours on that, I really feel like that's important to give them sort of what it should look like and the kind of questions to ask that and I forget who said it, but that developers aren't just order takers, right? We are involved in creating co creating the system. So we need to ask for questions and we should not feel bad about pushing back and saying maybe there's a better better way to do this. And you know, this this perspective taking is interesting, because it's not just there, but it's also in the code. And that's why I love, you know, test driven development is because you're taking the perspective of how the thing is going to be used, rather than, what am I going to do to make it do whatever?

Tim Bourguignon 40:24
How do you help development teams get back this? wouldn't say power, but maybe maybe I will use the word power anyway. This Power of Thinking on their own and then being part of the of the Define phase of the product, after probably having taken orders for so long, how do you go about enabling them?

Ted Young 40:46
So I think a lot of it is just making them aware that they can do that. I think it's it. You know, there, there's maybe the sense that that's just the way it is, and one of the things that I try to do, since often, I'm not at a company for very long, I might be there for a week or two weeks, I don't I don't do these long term engagements, like some some coaches do. My goal is, is to sort of bring in another, again, another perspective that it doesn't have to be this way that it is possible to be this other way it is possible to look at what you're doing, and to question it and to and to sort of I don't like necessarily the idea of sort of pushing back, although I think that's important in some cases, but recognize that use the word powers, but recognize that they do have power, I mean, for, for better or for worse, we as developers are in very, very high demand, which means we do have power that we're not necessarily leveraging. And you don't want to do it in sort of any, you know, way to sort of cause conflict or cause no harm. But you do want to say like, you have power. And it's not like you're you're taking that power for your own use, you're taking that on the behalf of the person who's going to be using the system and and is possibly going to be relying on it. So wallet, all I do is basically make them aware of it and say, that doesn't have to be this way. And sometimes that's enough, sometimes it's not enough. But I also try to get across and that if this isn't working for you, and if you feel like you're not being able to use all your abilities, there are other places to go.

Tim Bourguignon 42:30
And what kind of key traits or mindset Are you looking for in in such development teams to then enable them

Ted Young 42:39
curiosity, the desire to know more, but also to be better? And I think that, so I do individual, some individually, you know, a lot of the work I do is with corporations, I have individuals who come to me and and want one on one coaching. And what I love about I mean, there's such a breath of fresh air, because you know, you'll always get some people in classes who's like, well, I'm here just because I'm supposed to be here. Not a lot. But you know, you get that. And, you know, the ones who are just so much more fun to work with those who are really curious and really want to get better. Like, wow, this is great, I didn't realize that I could do this or that this would be you know, make such a big improvement. And then you can tell they're sort of hungry for more. And that's, that's what I really look at. Because if you have that you can learn all the rest of this stuff. But you have to have to really just want to do better and to be better, and that you're open to, you know, other ideas. I think that's really all that matters. Thank you. Yeah,

Tim Bourguignon 43:49
good. design looks almost over. And it's been way, way, way too short.

Ted Young 43:55
As always,

Tim Bourguignon 43:56
yeah. Where can the listener continue this discussion with you.

Ted Young 43:59
So my social media name is jitter Ted JI, TT e RTD. And so I'm on Twitter as jitter Ted, but you can also find me doing live coding on Twitch, you can go to jitter Ted dot live. And you can find my past videos and other videos that I do on jitter ted.tv. So those are the places to sort of interact with me, you can also hit my [email protected]. So Ted dot Dev, I was lucky enough to get that domain. Yeah, and I do live coding almost every day. And if you drop by and say hi, I would love to hear what what you have to say. And if you have questions, I'm always happy to answer

Tim Bourguignon 44:49
listeners. You heard it. Get in touch. Do you have anything coming up in the next month that you want to plug in?

Ted Young 44:55
I have a course that I've been working on for far too long. And so it was going to be a big thing. And I realized, why am I not being agile and slicing it into smaller, smaller pieces. So I, hopefully will be out. But by the time folks hear this, or if not very, very soon on hexagonal architecture, I am just so passionate about it, because I feel like it, it solves so many problems that that folks run into. And so it'll be a pretty short course on that that's going to be part of a bigger a bigger course. And so I'm doing that alongside all the all the live coding I'm doing on Twitch,

Tim Bourguignon 45:36
any chance to see you in real life in the Bay Area or somewhere else,

Ted Young 45:41
um, nothing is coming up. anytime soon, it'll probably be more like spring where, where folks will be able to see me, but you don't have to travel anywhere, because you can see me live, but I do my live coding. That's true. So I think that's a great, great place to, that's one of things I love about is, you know, folks can see me and interact with me in a way that that they couldn't, you know, and maybe a conference?

Tim Bourguignon 46:05
Absolutely, I'm looking forward to more remote stuff in the future. That's a that's really a key to, to where we're going, I think,

Ted Young 46:11
yeah, and one thing I'm working on and maybe maybe early next year, it'll happen is doing a virtual online conference. So I've been toying with that idea. Because I've been thinking it wouldn't be cool to have a TDD only conference where people just talk about how they do TDD and how they learned it and what they like about it or don't like about it. But to do that virtually. So so I'm toying with that idea of talking with some folks. So if if people are interested in that, and want to want to see that happen, then then contact me and let me know of your interest. So because if if I find people are interested in that, all that all sort of up in my priority list,

Tim Bourguignon 46:50
I would be interested. Alright, well, there we go. I remember a hefty discussion between osdh and was Kent Beck.

Ted Young 46:59
Okay, back. Yeah.

Tim Bourguignon 47:00
And that was a lively discussion about TDD.

Ted Young 47:03
Yeah. So yeah, I don't know if I want to be as controversial, although, you know, that that can hurt. But I think, you know, having different points of view different people talk about it, you know, people who you don't normally hear from, I think, I think would be interesting. If not, then you know, it's a productive failure, as they say.

Tim Bourguignon 47:23
Yeah. And if it's online is not to costy.

Ted Young 47:26
Exactly, exactly. Fantastic. Ted, it's been a blast. Thank you very much for sharing your story with us. Oh, thank you for having me. It's always fun to do this.

Tim Bourguignon 47:34
And this has been another episode of software developer's journey. And we'll see each other next week. Bye bye. Dear listener, if you haven't subscribed yet, you can find this podcast in iTunes, Google music, Stitcher, Spotify, and much more. Head over to www.devjourney.info. To read the show notes, find all the links mentioned during the episode. And of course, links to the podcast on all these platforms. Don't miss the next software developer's journey story by subscribing to the podcast with the app of your choice right now. And if you like what we do, please rate the podcast, write a comment on those platforms, and promote the podcast and social media. This really helps fellow developers discover the podcast and those fantastic journeys. Thank you.

s