Waiting..
Auto Scroll
Sync
Top
Bottom
Select text to annotate, Click play in YouTube to begin
00:00:04
a programmer really doesn't get into that level  of thought process for the first 10 15 years   it's an issue right because there's a lot of  reinventing the wheel happening all the time   oh sure if it's a good idea the good idea tends to  spread unless there's somebody in the management   level working hard to make it not spread try  and write about the things that don't change   people talk about productivity while at the same  time doing everything they can to prevent it  
00:00:30
from happening and the well because they don't  understand where the productivity comes from   fred brooks came up the other day in a  conversation i'm going so here's a book that's   really old right the fred was right yeah yeah  exactly yeah but with the exception of the   chapter on punched cards pretty much everything  everything in that book is still relevant people not thinking enough about whether is  that right but that seems like an odd well  
00:00:57
i i think you do want the old goots around but  but you know here's one that's what 25 years now why doesn't anybody read this book  so i wrote this one not too long ago   what are the ethics of being a programmer  that may be the last book i write this episode   was made possible thanks to kotopia.tech hi  bob hello alan how are you good how are you  
00:01:25
i'm just fine so we are tasked to talk about  what are the two old but classic books today   and i it was interesting because i you know i was  reading through them in preparation for this again   and i haven't read them since they came out  so it's been a while and one of the things   that i had to say looking through it is thank  god we don't have to deal with ejbs anymore and all of that stuff but like a lot of  the classic books there's still certainly  
00:01:54
a lot of stuff in there that's just as  relevant as it was the day you wrote the books   um you know particularly the clean code  book is that i look at a lot of code and   clean is not a word that i would choose  to describe the code that i'm looking at so we could start out i guess by  talking about i'm kind of curious as   if you were to write it again how would  you change it based on on what's happening   now as compared to what was happening  then well it's an interesting question  
00:02:24
um i might choose a different language you know  martin fowler rewrote the the refactoring book   and he changed the language to javascript right  i don't think i'd pick that language um maybe i   maybe i'd use python or or a language that's  on the ramp up getting more and more popular   if i had my absolute druthers i'd use closure  because i think that's the language of the future  
00:02:50
yeah closure people always say that they've  been saying after 20 years though so it's taken a while but i think it's on its way  up but um the principles in the book i would not   change much this is one of the one of the things  that i focused on in all my books is to try and   try and write about the things that don't change  you know there's a strategy with books that if you   write about the stuff that changes a lot you'll be  able to sell a lot of books for a really long time  
00:03:20
and then you just have to write another  book and another book and another book   and i've taken the opposite approach right  i want to write about the things that don't   change over time so that they are relevant  for a very long time and i i hope that the   clean code book and the clean coder book and  so forth have remained relevant over the last   decade or so that they've been published well  they have at the certainly at the level that  
00:03:47
they addressed the problems you know it's another  question something else we can discuss is that   one of the things that i respond to when i  read all books that are basically heuristics   right books of kind of rules right things to do to  make things do right is that um they're very kind   of context specific in other words when i look  through your book i'm saying this is great if what  
00:04:12
you are is a programmer and you're looking at the  code but you're not looking at the architecture   right because it's all focused on starting with  the code and refactoring and tdd and all this   wonderful stuff that programmers should be doing  of course but um i i look at some of your advice   which is great advice but some of those issues  could be solved by thinking architecturally rather   than thinking just in terms of the code yes things  like naming and that kind of stuff yes um so  
00:04:43
how do you fix that right people are i guess  how do you fix it on many levels right both   on how do you fix the architecture but also  how do you fix people not thinking enough   about whether is that right but but you know  i think about things like ddg right dddd has   been around forever but it's suddenly gotten  popular again because of microservices um   is it my disturbances that did that i think  it was microservices because people started  
00:05:09
people started saying oh microservices  are bounded context which is not true   but people started saying people started saying  it anyway and all of a sudden people were reading   about ddd because they read that microservices  were bound in context so i must at least   something good came from microsoft well i'm not  as negative on them as you seem to be but the the   the issue is that ddd is suddenly on the scene in  a way that it wasn't that's good which is a good   thing right because it gives us organizational  principles that help make the code better make it  
00:05:36
cleaner right is it it uh you know helps a lot of  stuff it helps with names it helps with everything   and um so the problem that i have often though is  that when i come in as a consultant to a company   the programmers are not thinking architecturally  at all they're just they're just thinking about   the code that's in front of them and it  limits them it limits what they can do   right it limits how much they can clean stuff  up but it limits there's limits everywhere and   i would like to get rid of those and i don't  know how to do it right as people are really  
00:06:03
set in their ways so why don't you start enough  old coots like us here well there is that   this is something i talk about a lot right is that  the fact that um the the number of programmers in   the world grows at an exponential rate and that  leaves the the number of old people compared to   the number of young people at an impossible ratio  you know yeah you got half the programmers in the  
00:06:31
world have less than five years experience right  and this continues to be true as long as we're   growing at this crazy rate that that rate is  going to have to slow down because there's only   eight billion people in the world and we're  starting to get within range right so okay it's a vampire problem right if a vampire  bites two people and they bite two people   and they bite two people eventually  everybody's a vampire right it doesn't   take that long it does not take that long so  you know i write books like this and and uh  
00:07:06
i wrote this one a long time ago which  is you know just full of of this kind of   you know stuff that you learn the  hard way after 15 20 25 years yeah   and i i kind of hope that that makes its way out  to the younger folks because there aren't enough   guys of our experience on teams directing  those teams yeah but it's not just a number of  
00:07:34
programmers issue it's also a ageism issue and uh  a youth culture issue and lisa i see that out here   now admittedly you know i'm in the valley so it's  worse here than it is in a lot of other places   yeah but um but there we are right and the the  um it's an issue right because i there's a lot of   reinventing the wheel happening all the time  oh sure it didn't have to happen oh sure yeah  
00:08:00
yeah and you know the ageism and youth culture  how would you not have a youth culture if half   the programmers always have less than five years  experience everybody looks around and they say   well everybody here is in their twenties this must  be a a job for people in their twenties and and   you got the one guy in the back who's 40 or one  guy in the back who's 50 who's sitting there going  
00:08:24
you know wait a minute i've been doing this for  an awful long time why are you telling me this is   a youth culture but if of course that's the  people coming in yeah and people are paying   attention to your books right well i hope some of  them are i hope so right but so there's wisdom in   the books it's that people are so why is it that  you'd be willing to read a book that has stuff   in it written by an old coot and no offense  since i'm one too and the and at the same time  
00:08:50
um the the you don't want the actual old coots  around it seems like an odd well i think you do   want the old goots around but but you know here's  one that's what 25 years now is anybody reading   this is there is any any of the young kids out  there reading design it's a good question you   know what i hear about design patterns design  patterns are an old idea that's now out of date   because our modern languages take advantage  that's complete nonsense absolute nonsense  
00:09:18
but i hear that over and over again here's  a bug i'm sure you're familiar with this one   why doesn't anybody read this book full of good  information you know tom demarco structured   systems analysis and specification great ideas  in this book why doesn't anybody read this book   there's tons of information out there yeah it's  old and good i was just thinking about that in  
00:09:49
terms of fred brooks came up the other day in a  conversation and i'm going so here's a book that's   really old right it's frederick yeah yeah exactly  yeah um but with the exception of the chapter   on punched cards pretty much everything pretty  much everything in that book is still i love it i always keep them handy you never know when  you're going to need one pretty much everything   in there is irrelevant and i you know it's  particularly brook's law itself is relevant  
00:10:16
people don't seem to get that right all of the no  estimate stuff that people have such fits about   that's all in fred brooks right fred is talking  about it talking about how bad estimates are   and how we shouldn't be basing basing our  planning on estimates and stuff back then   and that all seems to have gone by the wayside  which is really unfortunate but but there is   some there are some evolutionary things  the other day as i was i was talking to   um um who was i don't remember anymore but  another problem with being an old coot but  
00:10:47
we were taught we were talking about the problem  of design patterns in the context of simplicity   right and that the obvious negative of design  patterns is that they're complex they add   some complexity to the system and you know you  had the the fool me once for me twice rule in   one of your talks or your books or something  which is applicable i think right just   do it do it as simple as possible and then add the  patterns when in refactoring stage when it does   and um but a lot of people don't get that  subtlety and they'll read something like  
00:11:19
clean code and they'll you know you're you're  talking about open closed for example but that   pulls in the design patterns right it pulls in  command and it pulls in strategy and it pulls in   dependency injection and all the stuff  that adds complexity to the system and i   you know the biggest problem that i see when i  look at code um when i come in as a consultant is   it's all way too complicated you know half of it  doesn't do anything and half of what's left used  
00:11:44
to do something but nobody looks at it anymore and  there's all the all these all this code solving   problems that never happened because somebody  thought they might happen you mean it looks like a   whole bunch of kids have been tearing through the  place and making them it does but it also you know   a lot of it comes from the old waterfall thinking  that it's like expensive to make changes so we   we want to try and think of everything in advance  right and um we need to fix that right and the the  
00:12:14
the stuff that we're talking about is kind of  complicated in a way because there's subtlety   to it right there's nuance you don't it's not  just a bunch of rules that you followed by road   right you've got it's got a it requires  thought and it requires understanding   yes right and so how do you develop that right  how do you get people to develop it well these   these are the the the long term question  how do you solve world hunger well yeah so  
00:12:43
did you ever take a martial art yes okay so i  did two and and the way our instructors taught   us is that they would have us on the first day  right they would have us on the mat and they   would teach us one move and and in my case it was  jiu-jitsu right so they would teach me one move escape from the opening okay you're gonna do  that and they would have us repeat it and repeat  
00:13:09
it and repeat it and go home and practice  it come back repeat it repeat it repeat it   and when they thought we had gotten that move they  would add another move yeah and this just would   continue for a year or a year and a half and by  the time you know you were willing to get a uh you   were ready to have a belt increase and then they'd  add more and more and more and eventually you got  
00:13:33
to the point where you got a black belt right  and during this entire time it's all this rote   repetition of these moves that you've  focused for months learning and perfecting   and then you get the black belt and everything  changes and all of a sudden it's now we expect   you not to do any of that now we expect you  to integrate you have just begun you are  
00:14:00
now a student and you may now integrate and  we don't want you doing those moves anymore   we want you figuring out from the situation you're  in what context and how to use what you've learned   to escape or or dominate the situation and  that's when the the true learning really begins   we have an industry where you go you get kids that  graduate from college all they've learned is three  
00:14:30
of the 50 moves they need right and they're thrown  into the environment where they have to write code   and that's all that comes out is those three  three moves and there's nobody to help them   learn the other moves and there's nobody to help  tell them that the real goal here is to get those   moves so well under your skin that you can begin  to integrate them so you were talking about the  
00:14:54
nuance right you were talking about the complexity  well that that takes time to learn time to get   good at a programmer really doesn't get into  that level of thought process for the first   10 15 years in my experience maybe it took me that  long yeah but it could go fast i'm a big big mob   mob programming ensemble programming kind of guy  programming good idea yeah and one of the reasons  
00:15:21
i like it it's because it helps shorten that curve  a little bit because you're you're collaborating   hopefully with at least a few people that really  know what they're doing and i think some of it   rubs off right is that or even even if you only  know three things right the other people in the   mob know three different things so by the time as  you start working together collaboratively you all   start learning the things that the other people  learn and it all goes a little bit faster but  
00:15:46
i'm still seeing a lot of resistance to that right  mod programming is like one of those things where   when i do a mob programming workshop i come in  and everybody's going i don't know that this   can't possibly work and by the end of the  week they're going how could we ever have   been programming without doing this and the but  making that transition is hard right it's people   they have to experience it to really kind of get  it to the point where they're willing to try it   and um you know it gets us back to the  how do you make changes problem right is  
00:16:12
that the the bunch of kids in the room that  don't think everything's perfect and they   and management is fighting against them right  some manager's going well well five people   sitting around watching one people one person work  we can't have that can we and the the um it's it's   it's a hard problem it's like i guess i think  about this because this is my life it's trying   to convince people to do things that they ought  to be doing but they they aren't and resist yeah  
00:16:39
i've i've been through that mill so many times  you're trying to convince trying to that's why you   know why i'm an old i don't try and go you can't  keep it right and you're right you can't convince   you can demonstrate you can exhort you can  you can encourage and a few people will get   it a few people will learn and they will follow  and and then what you've done you consulted you  
00:17:07
is you have started a war inside that organization  and there's suddenly a group of people it has one   set of values that are opposed to another group of  people who have a different set of values and they   cannot coexist somehow or another they either have  to learn from each other or there's going to be a   divorce and that's something i've watched over and  over again is you know the people that i that i   teach and exhort will either eventually become the  only people in the team or they will flee the team
00:17:40
and i don't think it works any other way  sometimes you can get and you wonder how   you wonder how a captain a ship's captain  gets the entire crew to act in unison   how did how do they do that yeah how does the  military manage to pull this off well there's   marquette's books right you read marquette's  books i don't know i haven't read mark you  
00:18:05
should have right turn the ship around it's a  great book oh okay and um he was a submarine   captain so it was a small group right is that  the i don't know if you can expand that out to   to business size but which is what a team of what  50 or 60 in a submarine that's still a pretty good   good size just a good size it's a good sized group  but it's not like an enterprise with six thousand   yeah and um he basically empowered everybody he  said you know i can't tell you how to do your job  
00:18:31
you can do you know how to do your job better  than i do so i'm not going to tell you what to   do i'm going to give you a strategic directive  and you guys figure out how to make that work   and um it did pull everybody together right is  that it everybody was everybody felt empowered   right they felt they felt like they were part of  a bigger thing rather than being ordered around   and really i think helped them a lot and you  know and i do see that social thing happening   in groups too i hate open offices but in one of  the big open offices i was working in we were  
00:19:01
doing tdd and and mod programming and that kind  of stuff and i was talking about creating your own   workspace and the team took it took me seriously  and they literally went out and bought a couch   and they and they bought a big monitor and they  plonked it down on a desk right in the middle of   this open office right so they had this little  lounge area where they were sitting doing their   mob programming staring at the giant monitor and  people would walk by and they said what are you   guys doing and gradually i was watching that  infuse out into the rest of the organization  
00:19:29
as they explained themselves and people looked at  it and they said oh that's interesting um so it's   not a war so it doesn't have to be a war it's that  it can it can be a sort of if it's a good idea the   good idea tends to spread unless there's somebody  in the management level working hard to make it   not spread well i've seen that one yeah but so  what you were just talking about reminded me of   something that happened to me about 20 years ago  when we were very early on doing agile consulting  
00:19:59
and one of the things that we would do is we  would advise our client before we ever came out   to do the teaching of test driven development  and pair programming and all that stuff before   that we'd say you got to get your programmers out  of offices and into a into a room and set up with   tables and we'd give them a kind of standard  layout and and they would do that and then um   we'd get this phone call and it happened  more than once and we'd get this phone call  
00:20:26
and then the managers would say things are so  much better now these people are actually getting   things done and they're collaborating and they're  talking with each other and okay yeah if you   get people talking to each other and and working  together they tend to work things out pretty well   but on the other hand i also participated  in a number of events like that where there  
00:20:51
was a subgroup of programmers in this in  one case who were literally um sabotaging   the rest of the team because they  could not tolerate the value shift   right and and probably because it was depriving  them of some status that they had previously   had and so they were they were literally literally  laying plans to sabotage what was going on and you  
00:21:17
know once we discovered it um well they weren't at  that company anymore yeah you know that's the way   it has to go the people complain about that right  is they say oh but if we're gonna be agile we're   gonna have to get rid of these people that are not  willing to be agile and i go well yeah and they're   going but we can't do that right and that there's  some there's tension in there too you know one of   the things that i recommend to bigger clients is  that if you're really going to try and do this  
00:21:41
whole agile thing you've got to provide an out for  the people that don't want to do it that's humane   yeah we're going to find you another job yeah  yeah you don't have to worry about it right as   we'll even pay you until you find another job  but you obviously can't work here but we're   not going to make your lives miserable as we'll  find something that you can't do and things go   much easier than when you have a bunch of middle  managers fighting tooth and nail for any kind of   agility because it damages their status and they  you know and they don't want to do it and the  
00:22:10
it's a big deal but yeah i also worry about  this in the context of remote because remote   doesn't it doesn't have to be but it can be very  isolating um i look at hunter hunter irrigation   right that where woody's all first came up  with or his team at least just came up yeah   and they're still they were 100 mobbing shop  right right six or eight teams mobbing 100 of   the time and they all went remote and they're all  still doing it they're all just mobbing every day  
00:22:36
they're just doing it on zoom instead of doing  it physically in the space and that works but   there's not much space there to infuse for new  ideas to infuse out to the organization as a whole   in a remote world because you don't see  the whole organization you just see the   team that you're working with so it can be very  limiting and i i kind of i see these trends now   right dhh talk about all remote all the  time for everybody and that can be very   limiting i i worry i worry about that it's  there's a siren call of not commuting but  
00:23:04
on the other hand i worry about that  in terms of the organizations growing   the virtual connection is adequate for some things  but it deprives you of so much human contact and   so much interpersonal stuff that can really only  be done face to face that i'm with you i agree   it's there's something limiting about it and i i  fear that we are going to go through a decade of  
00:23:34
very sterile um collaboration i'm not quite  sure what the word is well i'm seeing it happen   both ways right i'm seeing both i don't use the  word introvert because people use it wrong but   there's a class of programmer that just doesn't  like to be around other people yes has nothing   to do with introversion right so just to get this  term straight but yeah but um they love the whole  
00:23:57
i'm going to work at home remote for the rest  of my life and i don't know i don't ever want   to talk to anybody and then meanwhile there are  a bunch of incompetent managers going oh we can   we can take all of this money we're spending on  offices and we can make our employees spend that   money instead therefore saving us money right is  that they have to like set up an office and do   all this stuff that we would normally have to pay  for but we don't so that's great right because we   don't have to pay the money anymore we don't have  to pay money to set up their offices anymore yeah  
00:24:24
well you put these two things together and  it seems deadly to me and um i worry about   that is that the the i like you know they talk  people talk about productivity while at the same   time doing everything they can to prevent it  from happening and the well because they don't   understand where the productivity comes from yeah  right or perfectly reasonable to sit there and say   well you know i could i don't need a parking  space i don't need parking lots i don't need  
00:24:49
all this infrastructure everybody can work from  home we don't even need a building anymore and   it seems like you're saving a lot of money but you  don't know what the cost is and by the way that's   that's the same thing that happened  20 years ago with offshoring all   you know all of a sudden we're gonna we're gonna  have people in x country and people in y country   they're all gonna write this code and it's  all gonna come here and it's gonna be perfect that worked out well pretty well yeah but it  took 10 years 15 years for it that's the fear  
00:25:26
right that's the fear another another 10  years and all started by this coven thing   and we're going to be living with  the echoes for a good long time   yeah is there a way to fight back how do you fight  back against it well i mean you and i are sitting   having this discussion and if there's a bunch  of people listening to it maybe they're gonna   put a little thought into this like well you  know maybe we should have people come back to   the office every once in a while and actually look  at each other's eyes and you know smell each other  
00:25:59
actually eat the pizzas yeah there's this effect you know staring at a screen  and and the effect is a lot like uh being behind   the wheel of a car looking at the windscreen  it's a lot easier to call someone an idiot   when you're when you're holding onto the wheel of  the car looking through the windscreen and and if   you're on zoom all you have to do is kind of mute  for a second and you know say something under your  
00:26:27
breath and then unmute yeah and that is uh that  is a weakening of the interpersonal connection yeah i just don't know how to make that point  it's also it's also exhausting at least it is   to me you know i i've been having to do a lot  of zoom teaching and i can't go for more than   half a day before everybody is so exhausted  that they can't absorb anything anymore   so here we are it's a year into this covert  thing right and i have literally not been on  
00:26:53
a commercial aircraft since last march now i own  my own airplane so i can swim around a little bit   but you know a commercial aircraft i  haven't been on i got an invitation   from a a college in michigan about two months ago  to come out and give a talk and so i hopped in my   plane and i flew out there's a real quick flight  and all of a sudden i'm on stage and i'm talking  
00:27:19
face-to-face with a group of programmers  and it was just wonderful oh yeah and god   and it's like this i forgot what this is like  i forgot what it's like to look at people in   the eye and see their response and have the  the person-to-person feedback uh and so i'm   just chomping at the bit so that this can start  again because yeah uh i think there's i think it's  
00:27:44
very harmful the way we're doing it now and it's  the way it had to be done but it's harmful well   let's hope for the end of coven there's anything  you want to talk about i've been sort of driving   things you want to drive for a while what do you  want to talk about let me tell you what i'm up to   um let's see so yes i did write clean architecture  a while ago what else did i write not too long ago   oh yeah let's see i don't think i have it up  here i got a book over here so yeah there it is  
00:28:12
you know i did these zoom things and then i get  a bunch of books out and i leave them in a pile   yeah so i wrote this one not too long ago i didn't even know that one existed yeah  clean agile and this this town is a rant   this this is me you know the old curmudgeon  telling all the young kids to get off his lawn   i already walked through all the agile  principles one by one saying you know   this is how we did it 20 years ago this is how  it still should be done today and all the stuff  
00:28:41
that everybody's trying to do probably not  a great idea anyway that's the uh that's the   old man's yelling at everybody about agile and  i'm in the midst of another book now which is   going to have the title i think it'll be clean  craftsmanship and that's a book about disciplines   ethics and standards discipline  standards and ethics in that order  
00:29:08
and it tries to climb the hierarchy you  know saying okay we start with disciplines   of course test driven development is one of  is a big one yeah refactoring simple design   things like that and then climb up another  level to the standards what is it that the   executive expects you know we talked about  the ship captain the submarine captain right   how do you get the the crew to behave as a unit  and you said right okay well you empower them  
00:29:35
to solve the problems but you give them the  problems to solve right you set the expectations   so the standards are the expectations how do  we expect a software developer to behave and   then once you've got that's once i've got that all  spelled out then i go through the ethics what are   the ethics of being a programmer that may be the  last book i write unless i write a book on closure
00:30:06
that one will have huge market yeah you know what  maybe a little enclosure might sell really well   who knows subscribe to the go to youtube channel  now and join the experts in person or online   at any upcoming go to conference using the  promo code book club visit gotopia.tech to learn more
00:30:45
bye
End of transcript