catatp.fm Unofficial Accidental Tech Podcast transcripts (generated by computer, so expect errors).

55: Dave, Who Stinks!

Software methodologies. (Finally.)

Episode Description:

Sponsored by:

  • In Flux: A new music album that explores the interplay between video games, music, and nostalgia.
  • Squarespace: Everything you need to create an exceptional website. Use promo code CRITICAL for 10% off.
  • Ting: Mobile that makes sense. No contracts, and pay only for what you use.

MP3 Header

Transcribed using Whisper large_v2 (transcription) + WAV2VEC2_ASR_LARGE_LV60K_960H (alignment) + Pyannote (speaker diaritization).

Transcript start

⏹️ ▶️ Marco Insert music here.

⏹️ ▶️ John Oh, you’re not gonna play it for me. I want to hear the music. I’m not set up You’ll hear it.

⏹️ ▶️ Casey Damn it, man

⏹️ ▶️ John Okay, so the first item and follow-up is when we talked about final draft and the script notes podcast

⏹️ ▶️ John last week we got a lot of feedback on that also directly from the two hosts of that

⏹️ ▶️ John podcast and As it turns out I definitely and perhaps also Casey

⏹️ ▶️ John misattributed to the two hosts statements which were not theirs in particular

⏹️ ▶️ John discussing their stance on software pricing. After listening to the podcast, I was under

⏹️ ▶️ John the impression that they thought software, if not should be free, should definitely

⏹️ ▶️ John be much lower priced. And I cited an example on the podcast of them saying, well, Apple’s operating system is

⏹️ ▶️ John free. That was not the host of the podcast that said that, that was Joe Jarvis. He was the product

⏹️ ▶️ John manager from Final Draft who was on the podcast. Now I know how people feel when they say they can’t identify

⏹️ ▶️ John our voices Separate things For the first time and you’re you know, 15 20

⏹️ ▶️ John minutes into it you lose track of who’s speaking I didn’t lose track so I think Casey said that in the last show and

⏹️ ▶️ John I said that and Marco tried to correct us and none of us could Remember for sure at the time but Marco was right. I could

⏹️ ▶️ John Well you are you aren’t all that insistent I’ve said I thought that was them and Casey said yeah I thought that was them too and you said I thought it wasn’t

⏹️ ▶️ John but none of us had the podcast in front of it and Speaking of that there is actually a transcript of this podcast,

⏹️ ▶️ John which Marco will put in the show notes that will give you a text version so you don’t

⏹️ ▶️ John have to listen to the podcast. I know people sometimes don’t want to listen to audio and scrub to the parts. You can just look at the text

⏹️ ▶️ John version, which is much faster to read and find the discussion of this topic. So I apologize to both of those guys

⏹️ ▶️ John for making it sound like they thought all software should be free. And in fact, John August sells some software of

⏹️ ▶️ John his own. And so he is not just a observer of the software industry, but he’s also a participant on

⏹️ ▶️ John the other side of the coin.

⏹️ ▶️ Casey Yeah, yeah. I definitely was part of screwing that up. And I will say that I was

⏹️ ▶️ Casey completely in love with listening to that particular episode of that particular podcast Because was it is

⏹️ ▶️ Casey it Mark Madnick? Is that right? Yeah Who is the CEO of and co-founder

⏹️ ▶️ Casey final draft to my ears was straight out of New York?

⏹️ ▶️ John I could tell I could tell his voice from the others definitely

⏹️ ▶️ Casey and so that’s what that’s what I was gonna say He was the only one I could I could without question definitely place

⏹️ ▶️ Casey who was who everyone else I was I was taking a shot in the dark

⏹️ ▶️ John Yeah, we got a lot of feedback about like from from people who are in talking about the screenplay

⏹️ ▶️ John format and people who have many alternate apps for screenplays and it looks like that ecosystem

⏹️ ▶️ John is actually pretty vibrant and seeing some new life in terms of like alternate applications and alternate formats

⏹️ ▶️ John for writing screenplays. So it’s it’s actually much more lively than

⏹️ ▶️ John than it might seem if you just listen to this and think everyone is stuck with final draft. young

⏹️ ▶️ John and upcoming people are seeking out alternatives to Final Craft and those alternatives exist and

⏹️ ▶️ John in fact there’s a format kind of like Markdown that you can use to produce a screenplay and any

⏹️ ▶️ John application like Markdown, any application that can just edit text can edit that format and then you can convert from that format

⏹️ ▶️ John to the quote-unquote real screenplay format. So that’s really opened up the field to a lot of other editors.

⏹️ ▶️ Marco Which I also mentioned during last week’s show.

⏹️ ▶️ John Yeah, but you mentioned it by name but I didn’t know what the name was so I didn’t know, you If you if you had said

⏹️ ▶️ John it’s like markdown for screenplays, it would have been like oh Maybe you said that this is where you can insert the clip of you saying

⏹️ ▶️ John that I don’t

⏹️ ▶️ Marco think I did but yeah, I don’t think I talked. I think I gave one sentence about mentioning this fountain format but

⏹️ ▶️ Marco yeah, I otherwise, uh Otherwise the follow-up is I was right.

⏹️ ▶️ Casey Go ahead. Oh, we’ll get to when that’s not so true. Don’t you worry?

⏹️ ▶️ Marco There has

⏹️ ▶️ John been plenty you were but you were if you had been more Insistent to like casey and I both got it wrong and who said that and you’re like,

⏹️ ▶️ John I think it was the other guy I mean, you weren’t sure it was the other guy either, or sure enough to say, no, it totally

⏹️ ▶️ John wasn’t that guy. I think I did, but that’s OK. You can insert that clip. There

⏹️ ▶️ John, Marco you go.

⏹️ ▶️ John I’m just trying to give you places where you can insert audio.

⏹️ ▶️ John There were parts in there. The other part of it is that Craig and John did,

⏹️ ▶️ John at various times, say things like, and we know the price of software is going down, and things that used to

⏹️ ▶️ John cost a lot cost more. But they were saying it as a sort of a offering up The idea

⏹️ ▶️ John that they understand where the final draft guys are coming from Not that these were positions they agreed with so if

⏹️ ▶️ John you look if you read the text It is much more clear that they are yeah trying to provide

⏹️ ▶️ John like trying to say that I empathize with your situation I understand that in the software market software is apparently

⏹️ ▶️ John being devalued and then they would say but and then go on I think Craig is still closest to

⏹️ ▶️ John To walking that line and saying that he doesn’t think an upgrade just for retina should be worthwhile But again, it gets

⏹️ ▶️ John back to the specifics of this one program that they don’t like that hasn’t been updated for a long time And not a

⏹️ ▶️ John general statement about all software

⏹️ ▶️ Marco Yeah, and I think that that specific complaint about retina being the thing

⏹️ ▶️ Marco that should have been free I don’t I don’t agree with them on that. I I agree, you know if they if they want

⏹️ ▶️ Marco to complain that That the updates in general to final draft haven’t included enough

⏹️ ▶️ Marco new features to be worth their price. That’s a different story and and charging for what is really a

⏹️ ▶️ Marco bug fix that is also a different story but retina is actually like you know supporting

⏹️ ▶️ Marco new hardware and that’s that’s not necessarily quote a bug fix and you know it’s

⏹️ ▶️ Marco like it’s like if you have to support a new version of the OS you know you don’t you don’t give that to everybody for free if they’re

⏹️ ▶️ Marco all running a really old version but you know I think it’s I think this is all I think their problem with this was all tied

⏹️ ▶️ Marco up in the overall problem of final draft being crappy and not

⏹️ ▶️ Marco really having any kind of development pace for a long time.

⏹️ ▶️ Casey All right. So the other bit of follow up that we have is regarding

⏹️ ▶️ Casey whether or not it’s wise to treat warnings as errors

⏹️ ▶️ Casey in production code. And I believe this came from the go to fail conversation. Is that right?

⏹️ ▶️ Marco It was kind of a separate branch. Yeah, it was a separate topic. But But yes,

⏹️ ▶️ Marco you know, there is the culture of, of using the the W all flag or W everything

⏹️ ▶️ Marco flag or the various permutations thereof that specify the really

⏹️ ▶️ Marco esoteric errors in C or esoteric as you would say and

⏹️ ▶️ Marco and and that kind of morphs into you know my my position of with my web development now

⏹️ ▶️ Marco I I’m doing my PHP framework such that all warnings

⏹️ ▶️ Marco and notices in production even are treated as exceptions I was doing it in development for the last few

⏹️ ▶️ Marco years, but now even in production all warnings and notices are exceptions and

⏹️ ▶️ Marco I Asked the listeners during last week’s show because John you John and Casey you guys Severely

⏹️ ▶️ Marco disagree with that saying that in practice to paraphrase your arguments. I feel if you’ll permit me in practice

⏹️ ▶️ Marco that In a production environment once you get you know beyond a one-person operation

⏹️ ▶️ Marco that gets really tricky you might have other people deploying you know PHP updates to the server

⏹️ ▶️ Marco and You know breaking the site in the middle of night, and you know maybe it’s not that important to

⏹️ ▶️ Marco break the site for some minor reason It’s not worth it, and it’s better to

⏹️ ▶️ Marco To keep everything up as much as you can and just log the warnings, so I asked the listeners

⏹️ ▶️ Marco What you know if they worked in a big organization That that

⏹️ ▶️ Marco is known for having That either has a really important web presence or is known for being really

⏹️ ▶️ Marco good at tech like Google or Amazon I asked them, like, you know, what’s your policy

⏹️ ▶️ Marco in your organization? And you know, please let me know in the feedback form. And boy, did they.

⏹️ ▶️ Marco Oh, my God. And I think it’s pretty safe to say that

⏹️ ▶️ Marco not only did I lose this argument, but I’m pretty sure I actually lost it unanimously.

⏹️ ▶️ John Well, it’s not there’s no winning or losing based on what people say. A bunch of people sending feedback doesn’t mean

⏹️ ▶️ John anybody won or lost anything. I’ve been thinking about it. I think I can frame this. The reason Casey and I

⏹️ ▶️ John kept disagreeing with you and the reason we had a disagreement on the last show is it’s all about the framing of the thing. And the thing I put in the

⏹️ ▶️ John show notes, which I’ll talk about at the end, but the major framing of the

⏹️ ▶️ John topic was that in the beginning, like the topic came up and you mentioned something about it.

⏹️ ▶️ John And in the beginning, both Casey and I stipulated that there are certainly situations where it is both feasible

⏹️ ▶️ John and the right thing to do to elevate a warning steroids in production. And we gave the example of you, like you control

⏹️ ▶️ John everything about it. your one-man shop, you’re doing the client and the server side. Like, you’re not

⏹️ ▶️ John running a bank for a podcast app. And it’s reasonable, at least. And

⏹️ ▶️ John then you stipulated that there are institutions in which it is unfeasible

⏹️ ▶️ John to do this because of something about, like, it’s a different department that controls that, or the

⏹️ ▶️ John developers are too far away from it, or things have to be up all the time,

⏹️ ▶️ John and that’s the most important thing. And you stipulated that if there’s some sort of ailment in the enterprise

⏹️ ▶️ John type company, it’s also a practical concern that you might have to do that. But every time

⏹️ ▶️ John Casey and I tried to come up with a scenario where it wasn’t just like something that you have to do because

⏹️ ▶️ John of real world practical concerns that are just such a shame, but that it was actually the right decision, like

⏹️ ▶️ John not because of some sickness in your organization, but actually because the arrangement of things in this perfectly

⏹️ ▶️ John healthy organization or such that this is the correct move, you would say, oh, I don’t know. Like basically, you kept creeping towards

⏹️ ▶️ John an absolutist position. And whenever we tried to cite an exception, you would say, I’m still not convinced. So I think

⏹️ ▶️ John despite all the feedback, because all the feedback you could dismiss and say, well, all those people belong to organizations that have some sort of

⏹️ ▶️ John sickness, which most of them probably do, let’s be honest, giant organizations that have some sort of organizational sickness

⏹️ ▶️ John that requires them to do this. Isn’t that a shame? Yes, I understand it’s a reality in your life,

⏹️ ▶️ John but it’s not really the right thing to do. And what I was trying to convince you of last time that I think is still the

⏹️ ▶️ John case is that there are situations where it is actually the right thing to do, not

⏹️ ▶️ John to elevate warnings to exceptions in production. And the difficulty

⏹️ ▶️ John of convincing you of that, I think has a lot to do with like us not, since this came up as a tangent,

⏹️ ▶️ John us not sort of being on the same page ahead of time as to what the heck is a warning? What do you mean by a warning? Like we got to

⏹️ ▶️ John it from like the warning flags in the compiler, but that’s obviously not what we’re talking about because that’s like when you’re compiling the program before you’ve deployed

⏹️ ▶️ John it, there is no, you know, that there’s a different kinds of warnings. And I was trying to think of a way

⏹️ ▶️ John to get us to agree on what warnings are. But that’s almost impossible to do, because we have to talk about specific

⏹️ ▶️ John technologies involved and where do they come from. And I thought of the most extreme example is, imagine

⏹️ ▶️ John there was just a random number generator in your code, and 0.001% of the time on this particular

⏹️ ▶️ John line, it would emit a warning. And then you would elevate that to an exception in production. And you’d be like, well, of course, I’m not going to turn that on, because I’m

⏹️ ▶️ John just signing myself up for downtime. That is pretty much what

⏹️ ▶️ John warnings like in many situations, in libraries that you didn’t write, that you have no control over,

⏹️ ▶️ John in languages or runtime pass-through code that could emit warnings. And I think in that situation,

⏹️ ▶️ John that absurd situation, obviously, you would agree that if there’s something randomly elevating things to exceptions, no, you wouldn’t

⏹️ ▶️ John want to turn those into warnings in production. You wouldn’t want to turn them into exceptions, because then you’re just signing up for downtime.

⏹️ ▶️ John And lots of other people who wrote in, who belong to these organizations that have these problems that cause them not to be able to do what you

⏹️ ▶️ John think is the best practice, described Why they think it was the right decision,

⏹️ ▶️ John but I don’t think any of them were were convincing What that would have convinced you or

⏹️ ▶️ John should have convinced you that it really is the right thing to do So I’m wondering if reading all those things were you convinced

⏹️ ▶️ John that this is actually the right thing to do to not elevate them To exceptions in some situations

⏹️ ▶️ John and not just merely that it’s something that poor suckers have to do

⏹️ ▶️ Casey now Wait before you answer that Marco. Let me jump in. There’s excuse me There’s a couple of quotes, just three quotes

⏹️ ▶️ Casey that I’d really like to read really quickly that I think really kind of nail this home.

⏹️ ▶️ Casey And unsurprisingly, I agree with everything John just said. The three quotes are from Alex

⏹️ ▶️ Casey Tall, and Tall was in all caps, in practice, the C whatever O, CIO, CEO,

⏹️ ▶️ Casey etc., doesn’t give a flip about anything but their own agenda. In the end, Marco has the correct idea,

⏹️ ▶️ Casey but outside of small and extremely well-structured organizations, the practice falls apart. And I think

⏹️ ▶️ Casey that that that that’s exactly what John and I are both saying that, yeah, you know, in certain

⏹️ ▶️ Casey, John cases,

⏹️ ▶️ John well, no, because that that’s the guy who’s in an organization that has problems. Oh, well, like, he’s he’s admitting that

⏹️ ▶️ John his organization has has problems that cause him to have to do what he knows isn’t the best practice, because, you know, such

⏹️ ▶️ John a shame. Like, that’s not really what I’m saying.

⏹️ ▶️ Casey Okay, but I guess the way I read that was it. Marcos

⏹️ ▶️ Casey idea is absolutely right. It’s just not always applicable.

⏹️ ▶️ John No, I don’t think his idea is absolutely right all the time. That’s what I’m that’s what I’m saying. So here’s the is that what I just said

⏹️ ▶️ John here’s well kind of well You have to keep going read the other feedback because I don’t know if okay

⏹️ ▶️ Casey so the other two were for the secondly there were two different engineers from Amazon that wrote

⏹️ ▶️ Casey in and I’m paraphrasing kind of the the mutual Message

⏹️ ▶️ Casey that that both of them said and so this is not verbatim But but they said

⏹️ ▶️ Casey I get why Marco says what he’s saying But when you deal with this kind of scale something is

⏹️ ▶️ Casey always broken And so in the example of Amazon, there’s so many moving parts that no matter

⏹️ ▶️ Casey what you’re doing, no matter what happened, there is always going

⏹️ ▶️ Casey to be something that isn’t quite right. And so you kind of have to plan for that, and there’s not a lot you can

⏹️ ▶️ Casey do about it. And then finally, Anonymous said, we don’t guarantee

⏹️ ▶️ Casey uptime with code quality. We guarantee uptime by having an institutional strength in reacting

⏹️ ▶️ Casey to problems. And this is kind of getting into a different tangent, but I just thought it was a very interesting point as well,

⏹️ ▶️ Casey that even if your code has no smell to it whatsoever, that doesn’t necessarily guarantee

⏹️ ▶️ Casey uptime. And really, guaranteeing uptime is more about just being able to react to issues

⏹️ ▶️ Casey better. So anyway, those are the three quotes I have. So I apologize. Marco or John, feel free to carry on.

⏹️ ▶️ John Well, so before Marco has a chance to respond, I want to give what I thought was the strongest argument

⏹️ ▶️ John sort of buried in our feedback and that that many people have offered. And it gets

⏹️ ▶️ John back to kind of like getting back to the final draft thing where the CEO of Final Draft was coming on that podcast and trying

⏹️ ▶️ John to make all his problems, your problems. And a lot of the people who are discussing the problems with their big organizations that

⏹️ ▶️ John that that make this unfeasible also said basically. And, you know, more or less. And even if

⏹️ ▶️ John we could do this, it’s essentially making your problem and your problem is basically, I want to ensure that my code

⏹️ ▶️ John is warning free, but I think that will produce higher quality code. it’s turning your problem into your customer’s problem. Because

⏹️ ▶️ John once you turn that warning fatal in production, you have some sort of avoidable downtime.

⏹️ ▶️ John That causes you to, well, I’m sure we’re going to go fix it now. Because once there’s downtime, everyone runs around

⏹️ ▶️ John like their hair’s on fire. And that will make sure that we don’t let human nature go through. And if we merely log the

⏹️ ▶️ John errors, maybe we’ll just ignore them and they’ll build up in a log. So this is a way to guarantee that we have code quality. But the

⏹️ ▶️ John way you’re guaranteeing is at the expense of your customers. Someone just wrote in the chat room. I’ve lost

⏹️ ▶️ John the name. I think it was, what was it? What something anyway, someone just wrote in the chat room, enjoy this

⏹️ ▶️ John downtime. I didn’t trust myself to take a warning seriously, like message to your customers.

⏹️ ▶️ John And what, what I would say the strongest argument in this vein is that.

⏹️ ▶️ John By elevating warnings to errors in production and making your problems, your customers problems,

⏹️ ▶️ John if that’s the only way to ensure that you stay in warnings, clean that in itself is a sign of

⏹️ ▶️ John an unhealthy organization. And a healthy organization would have a policy to log warnings

⏹️ ▶️ John and have them addressed in a timely manner, which was suggested in the last show. And a lot of people wrote it, and they said this was the policy. So I think

⏹️ ▶️ John if this is the only way you can avoid the pitfalls of human nature and make yourself address

⏹️ ▶️ John these things, that’s a sickness that’s worse than the sickness that lets you not do that. Because

⏹️ ▶️ John a lot of these people who were in organizations that did seem very competent say, we have a policy. A warning gets logged.

⏹️ ▶️ John It makes a ticket. Someone has to deal with it in a fixed amount of time. and they can execute on that policy. So that’s their

⏹️ ▶️ John stopgap against human nature, not pushing it off onto their customers and causing them problems. And that’s why

⏹️ ▶️ John I think there are actually situations where it is the correct move, not just the pragmatic one,

⏹️ ▶️ John not just the unfortunate, I’m sad I had to do this one, but actually the correct optimal, no ends ifs

⏹️ ▶️ John or buts about it policy.

⏹️ ▶️ Marco Mostly, I’m not gonna argue this anymore because I’ve clearly been proven wrong. And I can

⏹️ ▶️ Marco see, I understand and accept a lot of the kind of arguments that have been put up.

⏹️ ▶️ Marco Just to clarify though, like when I’m talking about warnings in production,

⏹️ ▶️ Marco like the kind of warnings that I see on my apps are usually things like MySQL truncated

⏹️ ▶️ Marco to value because I passed one that was too long and my application code is not validating

⏹️ ▶️ Marco that for length properly. Or you know something else with MySQL like

⏹️ ▶️ Marco the connection was dropped in the middle of transaction and my library didn’t reconnect.

⏹️ ▶️ Marco And those are like that kind of thing, that’s both the kind of thing that I want to know about.

⏹️ ▶️ Marco And so I think you’re right, John, that yes, making it your customers problem is not ideal.

⏹️ ▶️ Marco And yes, if you have the structure in place where if warnings just get

⏹️ ▶️ Marco logged in a database somewhere and then you’re required to act on them, that’s great. And if

⏹️ ▶️ Marco you have that kind of discipline within your organization, that’s awesome. But I think

⏹️ ▶️ Marco so many organizations don’t have that in practice you know there’s there’s always there’s

⏹️ ▶️ Marco like there’s the big organizations that can have procedures like that and

⏹️ ▶️ Marco they don’t always but you know they usually usually big organization are more likely to have something like that

⏹️ ▶️ Marco where this tends to fall apart and where this you know where a lot of software methodologies

⏹️ ▶️ Marco fall apart is and and a lot of discipline falls apart in our industry

⏹️ ▶️ Marco is in the small and medium-sized shops and in that kind of situation

⏹️ ▶️ Marco where you don’t have a lot of procedures in place, you don’t have a lot of infrastructure in place, you don’t have

⏹️ ▶️ Marco giant different teams doing different parts of it, it’s you know maybe you have between 2 and 20

⏹️ ▶️ Marco people in your organization, you know that that size organization, that’s a lot of times where discipline

⏹️ ▶️ Marco goes out the window and if you get a bunch of log warnings in production you might not fix them

⏹️ ▶️ Marco or you might not even see them. And so I do think there are a

⏹️ ▶️ Marco lot of situations where enforcing this, enforcing, blowing up production with

⏹️ ▶️ Marco warnings as a disciplinary tool to combat human failings.

⏹️ ▶️ Marco I think there’s still a place for that. I will yield to the counter argument

⏹️ ▶️ Marco on this being the right idea for everybody and even for a larger organization. I think that’s

⏹️ ▶️ Marco been proven that that’s probably bad, but I think you could apply this kind

⏹️ ▶️ Marco of rule of crashing in production on everything to more than just

⏹️ ▶️ Marco me. I think there’s more of a place for it.

⏹️ ▶️ John Yeah, it’s not just you, but you’re like, again, Casey and I stipulated there are situations where that’s valid. In

⏹️ ▶️ John all cases, we’re trying to find the correct solution is the one that plays to the strengths of the particular

⏹️ ▶️ John situation, the strengths of a small shop, a one or two man shop, a working on something that it doesn’t

⏹️ ▶️ John matter if it’s down for a little bit like a game or you know something that’s not super critical that is

⏹️ ▶️ John you know it’s not not necessarily strength but like that is that’s the shape of that beast is that you know

⏹️ ▶️ John you can take advantage of this since you’re a small shop you can and doing something non-essential

⏹️ ▶️ John you can take advantage of this to make sure that you don’t ignore the the errors because you know

⏹️ ▶️ John you’re you’re basically you’re hacking it’s one of those self hacks like when you do something to remind yourself to exercise all the time and you

⏹️ ▶️ John know it’s not one of It’s life hack things or whatever, but on a small scale. And that makes perfect

⏹️ ▶️ John sense. And then in the larger organizations, they have different strengths. And one of the strengths of a larger organization

⏹️ ▶️ John is they have the ability to have policies to be imposed on people. It’s very hard to have a policy imposed in a five or 10 person

⏹️ ▶️ John company, because who’s going to be the big guy imposing the policy? It’s going to be your friend who sits next to you, and you’re not going to

⏹️ ▶️ John take it seriously. That’s a weakness of small organizations and a strength of a big one. So you have to pick the solution that’s appropriate

⏹️ ▶️ John for you. And we think it’s not just for Marco, but for other organizations where it may be possible,

⏹️ ▶️ John this may also be the best solution. The tricky part, and it gets back to what I wrote in the show notes, which is,

⏹️ ▶️ John what is the nature of warnings? And warnings are just like, without agreeing on that, it’s like, it’s very hard to have a discussion about

⏹️ ▶️ John this because transaction aborted or value truncated, like everyone would agree that, I mean,

⏹️ ▶️ John regardless, even like, value truncated, I think that should be elevated to

⏹️ ▶️ John an exception in almost all situations. But the warning about like, are you sure you want to use this function?

⏹️ ▶️ John Because a lot of times people use this function, and really, they mean that function. And that happens at runtime, because

⏹️ ▶️ John you never hit that code path or a particular value. And you’re totally like, Yes, I use the right function, don’t want

⏹️ ▶️ John that’s why I get back to the random number generator. Like that’s the extreme thing is like, some code that you didn’t write in some

⏹️ ▶️ John library that you don’t control, decides that it wants to send you a nice friendly message, depending on if it gets,

⏹️ ▶️ John you know, but the data value is over five, and it’s past 3pm on a Tuesday. And the

⏹️ ▶️ John system clock says it’s past the year 2010, which I thought would be the distance and it decides to emit a warning like I would

⏹️ ▶️ Marco consider that a problem if you didn’t plan for that and catch it

⏹️ ▶️ John no but I mean like if the warning is like are you sure you wanted to call this function maybe you meant another one like it’s advisory

⏹️ ▶️ John it’s guessing like you you’re not that you would if you could find the person who wrote this warning you’d be like stop

⏹️ ▶️ John writing that warning like because they’re human beings writing these warnings and the warnings may have nothing to do with any kind

⏹️ ▶️ John of erroneous or unexpected situation but merely maybe giving advice right

⏹️ ▶️ John and advice is fine in lots of situations, like again, get back to the random number generator. A lot

⏹️ ▶️ John of times, warnings to me feel like they might as well have just been, my code was running fine,

⏹️ ▶️ John and some random number generator decide, I’m going to send you a friendly message right now that had nothing

⏹️ ▶️ John to do with anything that was not useful. And the only reason I have to react to it is to add whatever I need to add to make that warning go

⏹️ ▶️ John away, if I can. Because sometimes you can’t, because it’s in a compiled library that you use, that you don’t control, that’s

⏹️ ▶️ John not acting in a way that is unexpected or wrong, but that author decided to give you advice about

⏹️ ▶️ John something. And that is the worst kind of warning, the worst kind of runtime data driven warning

⏹️ ▶️ John that you don’t control. And so that’s why I think a lot of people have different positions in this, because when they think of warnings, it’s like, oh, it’s

⏹️ ▶️ John something I have to react to. And when I think of warnings, I often think of the only reason I have to

⏹️ ▶️ John react to this is to shut this person up because they don’t know our code, or they’re trying to be helpful and give advice

⏹️ ▶️ John or suggest a different way that we could do things. And it’s like, I don’t want your suggestion now at runtime, I you know,

⏹️ ▶️ John I need to blank that out of the logs because I can’t get rid of it, and it’s not telling me anything useful.

⏹️ ▶️ John So as with most things when we’re discussing this, trying to agree on the premise.

⏹️ ▶️ John That’s why it’s easier to talk about a specific technology or a specific version of something, because then you can say, here’s the set of warnings that

⏹️ ▶️ John come out. Are we OK elevating these all to exceptions? And then you have to look at the size of your organization and all of this

⏹️ ▶️ John stuff. But if you just say warnings in general, everyone’s got a different picture in your head of what we’re talking about.

⏹️ ▶️ Marco All right. We are sponsored this week by something pretty cool, something pretty new here.

⏹️ ▶️ Marco It’s called Influx and this is a music album from Brave Wave Productions

⏹️ ▶️ Marco that highlights the diverse and ever-changing nature of music. It’s a blend of chiptunes, rock,

⏹️ ▶️ Marco electronica, and more, and it features diverse musicians from around the world. Brave Wave’s music

⏹️ ▶️ Marco is dedicated to exploring the interplay between video games, music, and nostalgia. You might know them from their

⏹️ ▶️ Marco previous World 1-2 albums. Influx’s theme is collaborations between the composers

⏹️ ▶️ Marco of the East and West, featuring original music from Minami Matsume, Tim McCord of Evanescence,

⏹️ ▶️ Marco Keiji Yamagishi, Akira Yamaoka, Sayori Kobayashi, and more.

⏹️ ▶️ Marco Get Influx today on iTunes, Bandcamp, or their online store at BraveWave.net.

⏹️ ▶️ Marco So go to BraveWave.net for more info. Now, rather than keep talking about this music for another 90 seconds, I asked them if we

⏹️ ▶️ Marco could just play a couple of samples from the album, and they said yes. some samples from Influx

⏹️ ▶️ Marco showing off two different styles in the album and there’s a lot of different styles on here.

⏹️ ▶️ Marco Alright, that was from Influx by Bravewave. Go to bravewave.net to preview more of it

⏹️ ▶️ Marco or buy a copy. Once again, that’s bravewave.net and the new album is called Influx,

⏹️ ▶️ Marco two words. Thanks a lot to Bravewave for sponsoring our show.

⏹️ ▶️ Casey You know, I’ll always have a soft spot in my heart for chiptunes because it’s straight out of childhood. You know, that’s when even I cared

⏹️ ▶️ Casey a lot about Nintendo and things of that nature. And now I’m not

⏹️ ▶️ Casey that into gaming, but I’ll occasionally stumble upon a chiptune album like this one and just

⏹️ ▶️ Casey absolutely love it if for no other reason for the nostalgic factor.

⏹️ ▶️ John You wouldn’t give me the bleeps and boops theme song, but we’ll accept bleeps and boops sponsorships

⏹️ ▶️ Marco yeah do you want to sponsor John

⏹️ ▶️ John I hardly endorse bleeps and boops

⏹️ ▶️ Marco all right so I guess we should talk about software methodology but first you want to talk about any of these new

⏹️ ▶️ Marco bugs that have come out or Apple buying Nintendo what else happened a lot happened this week

⏹️ ▶️ Marco car play we’re not gonna do that before software methodology car play right car play was

⏹️ ▶️ Marco, John interesting

⏹️ ▶️ John we could do software methodologies first if we want Casey not to explode.

⏹️ ▶️ Marco Although you know what, I’ll tell you what, do you hear the fans for my Mac Pro?

⏹️ ▶️ Casey I do not.

⏹️ ▶️ Marco Exactly.

⏹️ ▶️ Casey Wait, is that your new Mac Pro?

⏹️ ▶️ Marco Yep.

⏹️ ▶️ Casey Wait, what? You got

⏹️ ▶️ Marco it? It came today.

⏹️ ▶️ Casey Oh my God. Are you serious? Yep. Are you? I don’t

⏹️ ▶️ Casey even know what to say right now.

⏹️ ▶️ Marco I am so serious.

⏹️ ▶️ John You need to say something about software methodologies, Casey. That was your time.

⏹️ ▶️ Casey Okay, so…

⏹️ ▶️ Marco It’s pretty good, by the way.

⏹️ ▶️ Casey Don’t! No! Stop! Oh, I hate you so much. All right, so a long time

⏹️ ▶️ Casey ago…

⏹️ ▶️ Marco Yeah, it’s fantastic. Here, I posted this. Here, here’s a picture. You can actually see just as proof.

⏹️ ▶️ Casey You waited just for this very moment, didn’t you?

⏹️ ▶️ Marco I did. I’ve kept it off of Twitter all day. I hate you so much.

⏹️ ▶️ Casey Oh, God.

⏹️ ▶️ Casey, Marco So,

⏹️ ▶️ Marco software methodologies.

⏹️ ▶️ Casey Software methodologies. I was going to say, if this is the longest troll ever, half of me admires it and half of me is

⏹️ ▶️ Casey about to get in the car and drive to that town in which you live and murder you. Oh,

⏹️ ▶️ Casey God.

⏹️ ▶️ Marco And this is why I kept it off Twitter all day. For you, our listeners, to hear Casey’s genuine reaction

⏹️ ▶️ Marco because he really didn’t know that I had it yet.

⏹️ ▶️ Casey I hate you so much. All right. So a long time ago in a galaxy far, far away

⏹️ ▶️ Casey on a podcast very similar to this, we talked about, we touched

⏹️ ▶️ Casey upon the idea of talking about software methodologies. And what we mean by that is,

⏹️ ▶️ Casey you know, how do you write software? How do you do that? Especially in a group atmosphere, which means Marco

⏹️ ▶️ Casey probably doesn’t do this very often anymore and hasn’t done it in a long time. And

⏹️ ▶️ Casey I haven’t prepared anything specific about this. So I’m just kind of going to

⏹️ ▶️ Casey kind of ad lib. But a lot of my

⏹️ ▶️ Casey time, my professional time has been spent, pretty actually all my professional time has been spent working in teams.

⏹️ ▶️ Casey And I found over the years that there are very, very, very many different ways

⏹️ ▶️ Casey of going about authoring software. And I should say right now that if you’re not the kind

⏹️ ▶️ Casey of person that really gives a crap about how to write code, then this might

⏹️ ▶️ Casey be applicable to you anyway, because many of these things that we’re about to talk about

⏹️ ▶️ Casey are actually applicable to just about any project. And so there’s

⏹️ ▶️ Casey a couple of different – well, there’s many, many, many different ways of going about this, but a couple of very, very obvious

⏹️ ▶️ Casey ones. And the way that I wrote most of my code in my career

⏹️ ▶️ Casey is by using a technique called waterfall, which is to say you do all the

⏹️ ▶️ Casey planning up front. And so that means you do a lot of planning up front,

⏹️ ▶️ Casey you do a lot of thinking up front, you have a lot of meetings up front, and you pretty

⏹️ ▶️ Casey much do everything you can before you write a line of code, and you

⏹️ ▶️ Casey do that all first, and you do no code until you are ready to pretty much just phone it in,

⏹️ ▶️ Casey because you’ve specified almost everything up front. And

⏹️ ▶️ Casey the alternative to that, or the most obvious alternative to that, is something called Agile, which

⏹️ ▶️ Casey is to say you just kind of fly by the seat of your pants and see what happens. So

⏹️ ▶️ Casey it’s—they’re very, very different, and there’s pluses and minuses

⏹️ ▶️ Casey to both. But before we dig into that, John, what do you

⏹️ ▶️ Casey use in your day-to-day job today?

⏹️ ▶️ John – I don’t use any method or methodology, depending on what you think is an actual word,

⏹️ ▶️ John That would that you could name with a proper noun with a capital letter

⏹️ ▶️ John We use some vocabulary from the world of agile, but it’s kind of pointless

⏹️ ▶️ John and There’s no real we have a system and we have processes, but we

⏹️ ▶️ John don’t have we’re not We’re not following any kind of methodology from a book or a paper

⏹️ ▶️ John even within the organization the processes that we have are mostly methodology

⏹️ ▶️ John agnostic. So I would not put us into any one of these bins.

⏹️ ▶️ John And I’ve in the past jobs I’ve in fact never been to the company that has adhered

⏹️ ▶️ John to a particular system for doing software development that I could

⏹️ ▶️ John that I could name with a capital letter.

⏹️ ▶️ Casey So let me instead answer that. Well okay I’m sorry I should ask Marco. What do you

⏹️ ▶️ Casey do Marco or what did you guys do at Tumblr?

⏹️ ▶️ Marco The The answer to both of those is the same,

⏹️ ▶️ Marco which is a long, awkward silence.

⏹️ ▶️ Casey All right. So, I’ve had the benefit

⏹️ ▶️ Casey and detriment of using kind of a little bit of everything.

⏹️ ▶️ Casey I’ve used Agile in a strict sense. I’ve used Agile in a not-so-strict sense. I’ve used

⏹️ ▶️ Casey Waterfall in a strict sense, Waterfall in a not-so-strict sense. And what’s interesting

⏹️ ▶️ Casey is there’s a lot, it doesn’t really matter what methodology

⏹️ ▶️ Casey you use or method or whatever that you use, a lot of it falls down to the team and what the

⏹️ ▶️ Casey team is comfortable with. And so I’ve had a lot

⏹️ ▶️ Casey of experiences where I’ve tried to use Agile and in

⏹️ ▶️ Casey doing so in client work, in my personal experience, is going

⏹️ ▶️ Casey to be made or broken by the client. So the way Agile works, and I probably was being

⏹️ ▶️ Casey a bit flippant earlier when I said it’s all about flying by the seat of your pants, that’s really not it at all. The way it works is

⏹️ ▶️ Casey you spend a little bit of time up front planning the next couple of weeks, or the next sprint

⏹️ ▶️ Casey as it’s called. And so you spend that time figuring out what are we going to do for the next couple of weeks.

⏹️ ▶️ Casey And the way that typically works is you come up with something called user stories,

⏹️ ▶️ Casey which is to say, you know, as a user of this online banking system, I would like to make a deposit.

⏹️ ▶️ Casey And somebody will, or you as a team will decide, all right, how long do we think that will take,

⏹️ ▶️ Casey but not in terms of hours, which is a typical consulting way of doing things, but instead in terms

⏹️ ▶️ Casey of something called points. And points are not arbitrary, but not really defined

⏹️ ▶️ Casey either. And so what that means is typically you’ll say, okay, of all these user stories, we agree that depositing

⏹️ ▶️ Casey a check is for whatever reason a one-point story. That’s very, very, very simple. And

⏹️ ▶️ Casey so we will say that we will judge all of our other stories based

⏹️ ▶️ Casey upon the difficulty of this story, this one-point story. So

⏹️ ▶️ Casey in the beginning, you do sprint planning and you say, okay, for the next two weeks, we think we can

⏹️ ▶️ Casey cover 20 points worth of effort. And so what do we think we’re going to do?

⏹️ ▶️ Casey And so you’ll figure out these are the things that we’re going to put in the

⏹️ ▶️ Casey current sprint, then we’ll have a backlog of things we’ll get to if we can, and

⏹️ ▶️ Casey an icebox of things we’ll get to way in the future if possible. And you do your sprint usually

⏹️ ▶️ Casey for two weeks, but not always, and you do your sprint for two weeks and you try to figure out, you know, you try to get all these things

⏹️ ▶️ Casey done. And at the end of that sprint, you’ll see, okay, well, we didn’t do

⏹️ ▶️ Casey as much as we wanted, so actually we ended up only doing 18 points

⏹️ ▶️ Casey worth of work, and we’ll consider 18 points are velocity for the next sprint.

⏹️ ▶️ Casey And this is all very boring on the surface, but over a couple of sprints, you

⏹️ ▶️ Casey get to figure out what is your team’s velocity. And your team’s

⏹️ ▶️ Casey velocity can get you to a position that you can actually plan how much work you’re going to

⏹️ ▶️ Casey do in the future. And that’s the power of Agile, is when you’ve gotten a couple sprints under your belt and

⏹️ ▶️ Casey you’ve gotten your velocity and it’s relatively repeatable and reliable. And

⏹️ ▶️ Casey then at that point, you can predictably figure out, okay, given all the work we have left to

⏹️ ▶️ Casey do, then how much time will it take?

⏹️ ▶️ Casey And so I’ve done Agile several times, all but one of the times it failed

⏹️ ▶️ Casey spectacularly. And the reason, well, there are many reasons it failed

⏹️ ▶️ Casey spectacularly. But in my personal experience, the most

⏹️ ▶️ Casey obvious and hugest reason that it failed spectacularly is because our client didn’t

⏹️ ▶️ Casey really get it, which probably falls down to us not really explaining Agile

⏹️ ▶️ Casey properly to our client. But the one time it worked well,

⏹️ ▶️ Casey our client really got into it and really understood, okay, these point things don’t really translate to

⏹️ ▶️ Casey ours And they don’t really translate directly to

⏹️ ▶️ Casey anything specific. But these points are kind of like currency.

⏹️ ▶️ Casey And if I decide out of the blue that I really

⏹️ ▶️ Casey want some new feature, and if I ask the team, all right, how long do you think

⏹️ ▶️ Casey this will take? And they say, well, it’s going to be three points. I know as the product owner,

⏹️ ▶️ Casey I know as the client, as the product owner, that I’m going to need to take away three

⏹️ ▶️ Casey points worth of effort if I want to shimmy in these new three points that I’ve

⏹️ ▶️ Casey just come up with. And when it got to the point that we and the client

⏹️ ▶️ Casey both understood that points are currency and really had faith in the system,

⏹️ ▶️ Casey it worked unbelievably well. But generally speaking, none of that happens. Instead

⏹️ ▶️ Casey what you end up with is scrummer fall, which is you do a bunch of work up front, Stand-ups every day

⏹️ ▶️ Casey say you’re working in agile and none of it works and it’s complete disaster That’s basically all I have to say about that

⏹️ ▶️ Marco This sounds awful. This is this what working with other people is like which

⏹️ ▶️ Casey part I’m asking honestly, which part sounds awful

⏹️ ▶️ Marco All of it the the coins. It sounds condescending the points. I mean whatever. I mean, it’s like

⏹️ ▶️ Marco it just sounds and and I mean there’s been so much said and written and

⏹️ ▶️ Marco and experimented with and tested over the years about how to organize and manage

⏹️ ▶️ Marco engineering tasks like this. Sorry, programming tasks. Sorry to the real engineers out there.

⏹️ ▶️ Marco And most of these systems boil down to

⏹️ ▶️ Marco ways that are easily exploited for laziness or personal gain

⏹️ ▶️ Marco and or ways that are just very obfuscated and potentially condescending

⏹️ ▶️ Marco or infantilizing. And I think I would have a hard time with some of this.

⏹️ ▶️ John Like- It’s not infantilizing, it’s just having a boss. I know it sounds the same from your perspective.

⏹️ ▶️ John Someone else telling me what to do, I’m not a baby. Get out of here.

⏹️ ▶️ Casey So what- is there a specific thing or things that you take issue with? Because your reaction,

⏹️ ▶️ Casey to be honest, is not unreasonable, especially knowing the frame of mind you’re coming from.

⏹️ ▶️ Marco It’s hard to explain. I think just the whole the whole setup

⏹️ ▶️ Marco sounds like it sounds like a lot of people need something to do with their jobs

⏹️ ▶️ Marco who aren’t necessarily programming all day whether they’re managers or or whatever

⏹️ ▶️ Marco you want to call them and managers have a role

⏹️ ▶️ Marco good managers are very very helpful but there’s a lot of managers out there who aren’t good

⏹️ ▶️ Marco and and so much of this stuff sounds like like the creation

⏹️ ▶️ Marco of mediocre managers trying to occupy their time and prove themselves worthwhile

⏹️ ▶️ Marco by coming up with some kind of system, some kind of, you know, procedures and

⏹️ ▶️ Marco frameworks and abstractions over people doing work and the

⏹️ ▶️ Marco process of building software. And maybe one of the reasons why these things

⏹️ ▶️ Marco often fall apart or don’t work very well is because, like you just said, well, this feature,

⏹️ ▶️ Marco you said in an ideal case, you can take the points of people’s productivity and you can say, okay, well, this feature

⏹️ ▶️ Marco will cost three points. That’s just, that’s all it is, is estimating time, right? And we’re always, our

⏹️ ▶️ Marco entire industry is, myself included, is horrendous at estimating time. And so, like,

⏹️ ▶️ Marco is it really any different to say, oh, that’ll take two weeks or that’ll take, you know, 30 man hours?

⏹️ ▶️ Marco And are any of them even

⏹️ ▶️ Casey accurate? It’s not really estimating time as much as it is estimating difficulty. And that’s the key

⏹️ ▶️ Casey difference. And if I were you, I’d be kind of sucking air through my teeth and being like, is there really a difference

⏹️ ▶️ Casey there? But there is. Because you’re saying, relative to other things,

⏹️ ▶️ Casey this is either a little bit more difficult or a whole lot more difficult. And

⏹️ ▶️ Casey so a one-point story, we all agree, as a team, including QA, including

⏹️ ▶️ Casey everyone, we all agree as a team, this is not very hard. Whereas an eight-point story, and usually

⏹️ ▶️ Casey use the Fibonacci sequence, so it’s, what is it, one, two, three, five, eight, something like that? You know, this eight point

⏹️ ▶️ Casey story is many orders of magnitude more difficult than that other

⏹️ ▶️ Casey one point story. And so it’s less about estimating time than it is difficulty.

⏹️ ▶️ Casey And the theory is you take time out of the equation. And that’s what that velocity is all about. Because over a couple of sprints,

⏹️ ▶️ Casey you realize, okay, we bid off 40 points worth of work, but holy crap, we

⏹️ ▶️ Casey only did 20. So realistically, we shouldn’t sign up for 40 points any

⏹️ ▶️ Casey more sprints. should sign up for 20. And over time, things become a lot

⏹️ ▶️ Casey more predictable. And the other thing that you said, which makes perfect sense, but I think I’m

⏹️ ▶️ Casey doing a pretty crummy job explaining Scrum and Agile, is that, oh, it’s all about

⏹️ ▶️ Casey giving managers something to do. Well, not all about, but in part about giving managers something to do. And in

⏹️ ▶️ Casey fact, it actually to some degree neuters the traditional project

⏹️ ▶️ Casey manager in that you’re no longer beholden into a Gantt chart, which is possibly

⏹️ ▶️ Casey the most evil thing ever created. And instead, the whole idea of Scrum

⏹️ ▶️ Casey and Agile is the team is the one in power. And if there is a project

⏹️ ▶️ Casey manager, their job in life is, and to be honest, it

⏹️ ▶️ Casey is what I think it should be, which is to get obstacles out of the way. And the best project

⏹️ ▶️ Casey managers I’ve ever, ever, ever worked with do two things. Well, three things actually.

⏹️ ▶️ Casey Number one, they get obstacles out of the way. Number two, they advocate

⏹️ ▶️ Casey on behalf of the client to our team. So they are the client’s

⏹️ ▶️ Casey representative whenever the client isn’t around and sometimes even when the client is around.

⏹️ ▶️ Casey And number three, they advocate on behalf of us to the client. So if the

⏹️ ▶️ Casey client is like, dude, you guys got to be able to do more than 20 points in the sprint, really? I mean, come on, this

⏹️ ▶️ Casey stuff isn’t that hard. It’s the project manager’s job to kind of step in and say, well, no,

⏹️ ▶️ Casey whether or not you think it’s difficult, the fact of the matter is, history shows us, data shows

⏹️ ▶️ Casey us that we can only do 20 points a sprint. So this is the way it’s going to have to be. And to think anything

⏹️ ▶️ Casey else would just be impractical and irresponsible. Does that make any sense at all?

⏹️ ▶️ Marco It totally does. But what bothers me about systems like this is I look at this and I say, well, why do

⏹️ ▶️ Marco you have to call them points? Why does it have to be this concept of this currency?

⏹️ ▶️ Marco Why does this have to be another level of indirection or an abstraction above what it really is, which is people

⏹️ ▶️ Marco working, man hours?

⏹️ ▶️ Marco This to me sounds a lot like the culture of Java, which has infected PHP as

⏹️ ▶️ Marco well, of making tons and tons of deep class hierarchies and classes on top of classes, inheriting

⏹️ ▶️ Marco from classes and factories and abstract factories and all this crap. And when you’re really trying to do something that’s a lot simpler

⏹️ ▶️ Marco than that, it doesn’t need all of that. And so when I look at some of these

⏹️ ▶️ Marco things, it’s easy for me to get turned off by it. And honestly, there’s

⏹️ ▶️ Marco probably tons of value here that I’m not seeing, because I’m an idiot in this regard.

⏹️ ▶️ Marco I’m completely inexperienced in following any kind of formal methodology. In all of

⏹️ ▶️ Marco my programming jobs, even when I work with other people, we never follow any methodologies

⏹️ ▶️ Marco closely. We would – kind of like what John said earlier, we would like borrow occasional things

⏹️ ▶️ Marco and like, oh, we’ll try a few weeks with this or try a couple of months with this and it would never stick. So

⏹️ ▶️ Marco I don’t know what I’m talking about in this area. So keep that in mind. I mean normally I don’t know what I’m talking

⏹️ ▶️ Marco about with a lot of things, but this time I’m actually admitting it, so that should mean something. Aaron

⏹️ ▶️ Casey Ross Powell No, but your questions are completely reasonable. And so to answer one of them,

⏹️ ▶️ Casey why points? Why that level of indirection? Why not just speak in hours? And it’s because of exactly what

⏹️ ▶️ Casey you said, which is that developers are unbelievably, indescribably bad

⏹️ ▶️ Casey at coming up with accurate estimates. And so the whole idea of points is, like I was saying earlier, it’s an order

⏹️ ▶️ Casey of magnitude of difficulty. And you can kind of construe how many hours

⏹️ ▶️ Casey a point will be after a few sprints when you say, okay, well, a sprint is two weeks. Casey has

⏹️ ▶️ Casey done 10 points worth of work every two weeks, so that’s about five points a week.

⏹️ ▶️ Casey So you can extrapolate that out to figure out what hours is. But the idea

⏹️ ▶️ Casey is to take away any sort of measure of time and just argue about

⏹️ ▶️ Casey difficulty and track difficulty so that time kind of falls

⏹️ ▶️ Casey out of that equation. I’m not sure I’m doing a great job describing it.

⏹️ ▶️ John I think there’s a lot of reasons why this Agile methodology is BS. I think I have my own cynical take

⏹️ ▶️ John on Agile and other methods as well, but I wanted to to a link that someone put into the chat room whose name I will get this

⏹️ ▶️ John time because I froze my scroll back. Wondermat put in a link the thing that I wanted to mention,

⏹️ ▶️ John which is, maybe I don’t know if it or any of yousus, Fog Creek Software, Joel Spolsky’s

⏹️ ▶️ John company, introduced this thing as part of it. I forget which product it’s part of. I guess I could click the

⏹️ ▶️ John link to find out. But

⏹️ ▶️ Marco yeah, the evidence-based scheduling, it was FogBugs a while ago. I think it was version five or something. It was a while ago.

⏹️ ▶️ John Yeah. And it’s a similar take on this, but it’s even more data-driven

⏹️ ▶️ John in that on an individual developer basis they ask that individual developer to estimate how long something

⏹️ ▶️ John will take. And you basically, each individual developer gets a reputation within the system of how good

⏹️ ▶️ John they are about estimating how long things are going to take for them to do. And if there’s an easy weakness

⏹️ ▶️ John to pick out of an agile system that uses points in the way Casey described, it’s that programmers

⏹️ ▶️ John aren’t interchangeable parts. And your crappiness at estimating the difficulty of of a task during

⏹️ ▶️ John one sprint probably has very little bearing on your crappiness of estimating difficulty of an entirely

⏹️ ▶️ John other task on another sprint. So you may think the entire team has a capacity of 20 points, when really,

⏹️ ▶️ John person A has a capacity of 50 points on his own if he’s doing a feature that involves OCR.

⏹️ ▶️ John But if he’s doing a feature that involves pull-down menus, his point capacity is much lower. But he’s able to

⏹️ ▶️ John estimate both of them really well. So you think you’ll be able to, oh, we should be able to figure out exactly

⏹️ ▶️ John how many points we have. But the points vary wildly. Being able to estimate the difficulty,

⏹️ ▶️ John who you estimate it for difficulty for the team difficulty for you, who it’s assigned to has such a big difference.

⏹️ ▶️ John That’s why a lot of these things fall down. And evidence based scheduling is trying to see what can we do to

⏹️ ▶️ John take the human element out of the equation and say, let everybody lie, let everybody be crappy. But even

⏹️ ▶️ John then, you don’t have like, okay, they were crappy about estimating for this type of thing. But what about that type of thing?

⏹️ ▶️ John Maybe they’re better at estimating that and you’re hoping it’s going to home in on some kind of average, But I get the feeling that

⏹️ ▶️ John unless you find yourself doing the same kind of task over and over again, which would be super boring and most good programmers don’t want to do,

⏹️ ▶️ John it’ll be difficult to get something really predictable out of that system.

⏹️ ▶️ Casey All right. So, Marco, do you want to tell us about something else that’s really excellent? And then, John, I’d like you to pick apart

⏹️ ▶️ Casey all of the arguments I just posited.

⏹️ ▶️ John Sure thing.

⏹️ ▶️ Marco We are also sponsored this week by our friends at Ting, once again. Ting is mobile that makes

⏹️ ▶️ Marco sense. They’re a no BS, simple to use mobile service provider from the people at 2Cows,

⏹️ ▶️ Marco the company behind Hover. Go to our special URL, atp.ting.com

⏹️ ▶️ Marco to learn more. They have great rates, and there’s no contracts and no early termination

⏹️ ▶️ Marco fees. You own your device outright, and then they have a pay for what you use pricing model.

⏹️ ▶️ Marco So here’s what you do. You pay a base price of $6 per month per device, and then whatever you

⏹️ ▶️ Marco use on top of that in in minutes, texts, and data, they will just bill you whatever

⏹️ ▶️ Marco cheapest bucket they have that fits that number. So for instance, if you use 100 megs of data

⏹️ ▶️ Marco this month and a gig next month, and then the next month after that, you drop down back to like 200 megs,

⏹️ ▶️ Marco each month you’ll pay a different price. Just whatever you use, you’ll pay for that. So you don’t need to guess

⏹️ ▶️ Marco what you’ll need in advance. You don’t need to raise your data cap before you go on a big trip and then lower it when you get back. And of course,

⏹️ ▶️ Marco you’ll forget. And so then you have two more months of paying the high rate that you didn’t even use. You just pay

⏹️ ▶️ Marco for what you use, they bill you for the cheapest bucket that you fit in, and that’s it. They even have new

⏹️ ▶️ Marco lower prices. If you checked them out in the past, check them out again, because they even just lowered their rates.

⏹️ ▶️ Marco So, for instance, 2 gigs of data is just $29. 500 megs data is just $12. So

⏹️ ▶️ Marco to see how much you can save with Ting, go to atp.ting.com and check out the savings

⏹️ ▶️ Marco calculator. You can enter in your last few bills of whatever your actual usage was

⏹️ ▶️ Marco from your existing phone carrier and it’ll show you how much Ting will save you on average and then over time

⏹️ ▶️ Marco and if you’re stuck in a contract with someone else and if you

⏹️ ▶️ Marco suppose you have to pay an early termination fee to get yourself to Ting, they will actually

⏹️ ▶️ Marco give you 25% of it back in service credit up to $75. So

⏹️ ▶️ Marco like Hover, Ting has great customer support. There’s a no hold no wait phone number. You call them up

⏹️ ▶️ Marco anytime during the business day and a human being picks up the phone who is right there

⏹️ ▶️ Marco and ready to help you. It’s a really great system, great customer support.

⏹️ ▶️ Marco And you know, we can think of various ways you can use it. You can look at if you’re a developer, you want some test devices

⏹️ ▶️ Marco that you know, you want to be activated on cell networks, but you don’t want to pay a lot of money. Or if you’re just a regular user and you’re tired

⏹️ ▶️ Marco of paying a really high phone bill for a lot of capabilities you’re not really using. Check out Ting, go to ATP.ting.com.

⏹️ ▶️ Marco They’re compatible with any Sprint phone, They’re a sprint MVNO here in the US and

⏹️ ▶️ Marco if you have a sprint phone bring it over if it’s compatible go to their site To see the list they also

⏹️ ▶️ Marco will sell you a new or used phone for pretty great prices, so check it out ATP.ting.com

⏹️ ▶️ Marco thanks a lot for sponsoring the show once again

⏹️ ▶️ John They should have a song with beeps and boops with a name like ting Or just

⏹️ ▶️ John bells

⏹️ ▶️ Casey That’s true to on the nose Oh, goodness. All right, so really quickly before John destroys

⏹️ ▶️ Casey all of the points I just made, a friend of the show, David Smith, said earlier in the chat, and I’m quoting,

⏹️ ▶️ Casey Scrum slash Agile’s purpose is to attempt to try and extract consistent or predictable performance

⏹️ ▶️ Casey out of an uncontrollable situation. It is better than nothing, but it is no replacement for talented, motivated

⏹️ ▶️ Casey developers who can get things done in any environment. Methodologies help reduce the impact of individual

⏹️ ▶️ Casey talents on the overall outcome. And I think that that really makes a lot of sense, and I completely agree with

⏹️ ▶️ Casey that. But with that said, John, tear me apart.

⏹️ ▶️ John It’s not you. It’s like the overall concept of

⏹️ ▶️ John having a particular method by which you develop software. The reason Marco has

⏹️ ▶️ John a sort of visceral reaction against it, and I think most programmers do when they’re in that type of environment, is that

⏹️ ▶️ John if you’ve spent any time programming, whether on your own or even just in small groups, even with just one

⏹️ ▶️ John or two other people, especially in small groups, where you kind of get a feel for like, this is what it’s like

⏹️ ▶️ John to make software. This is, you know, this is what the experience is like. You learn

⏹️ ▶️ John that you learn kind of what works and what doesn’t in

⏹️ ▶️ John terms of getting the job done, independent of any schedules and stuff like that.

⏹️ ▶️ John And what works is having a bunch of talented people who are motivated and excited about the

⏹️ ▶️ John thing that they’re doing, right. And so all these methodologies, in some respects, are

⏹️ ▶️ John attempts, usually good hearted and sometimes vaguely effective attempts to take,

⏹️ ▶️ John for example, mediocre programmers and make them into great programmers or to take great programmers who don’t care about something

⏹️ ▶️ John and make them care about it. Everyone wants like what we want is what happens when you get a bunch of talented

⏹️ ▶️ John people working on the same product who are good at their jobs, who are excited about what they’re going to

⏹️ ▶️ John do. And large companies say, well, we can’t do that because we’re too big

⏹️ ▶️ John and people aren’t excited about our stuff. And it’s hard to get that many people who are talented or even if you could get that many people who are talented, they

⏹️ ▶️ John don’t get along with each other in big enough groups. So we need some sort of method to arrange

⏹️ ▶️ John all this so that we so that we get some sort of somewhat predictable performance that about what

⏹️ ▶️ John we’ve got. What we’ve got is maybe we’ve got really talented people, we’ve got not so talented people, maybe we’ve got people who are excited and people who aren’t

⏹️ ▶️ John excited. Maybe we’ve got people disagree about how things are going to go. And we have a whole bunch of people telling them what to do. So they don’t even get

⏹️ ▶️ John to decide which direction the product goes in. And they have we want them to do that in a consistent manner. And so if you’re

⏹️ ▶️ John in this environment, you’re like, you start to feel if you just left us alone and got rid of

⏹️ ▶️ John Dave, who stinks, like then we would get this thing done. But instead we have to go through these stupid steps

⏹️ ▶️ John of this methodology and these user stories and these meetings and these points and going through all this stuff. And you’re just

⏹️ ▶️ John like, look, I’m a software developer. I know what it takes to get good software. It just put me in charge

⏹️ ▶️ John of the world and I’ll tell everyone exactly what to do. And just me and my three friends, well, like everyone wants to get back to that thing where it’s just you and a couple

⏹️ ▶️ John of friends in a room working on your program, which is how lots of great software is made.

⏹️ ▶️ John And all this methodology stuff seems like it’s pointless busywork that doesn’t actually make anything

⏹️ ▶️ John better. And I think a lot of the times it is pointless busywork that doesn’t make anything better. And the only thing that it makes better is that,

⏹️ ▶️ John as people pointed out in the chat room, people higher up in the org chart can point to, well, we’ve been following this methodology,

⏹️ ▶️ John and it has predictable results and look at our things to say we have, we know how many points in our velocity and blah, blah, blah.

⏹️ ▶️ John It’s all kind of like covering your ass that so you’re not going to get fired because, well, we have a methodology and this is what we do.

⏹️ ▶️ John But in effect, everyone in that organization might feel like this stupid methodology is making

⏹️ ▶️ John us less efficient, less happy, making us do worse work than we would if we just, again, fired Dave because

⏹️ ▶️ John he stinks, and let the three of us go off for a weekend, and we’ll solve your freaking problem. That’s

⏹️ ▶️ John how programmers feel, like the cowboy coding, like stand aside. I know exactly what I’m going to do. That’s the tension

⏹️ ▶️ John between the feeling that any experienced programmer has, that if you just let us do what

⏹️ ▶️ John we need to do, we could get it done. And the reality that if

⏹️ ▶️ John you’re on a large project, you can’t do that. this is where this tension is. And some people

⏹️ ▶️ John are trying to apply a methodology to make order out of this chaos. And the people who are contributing to the

⏹️ ▶️ John chaos always feel like anything you impose on me is making things worse. And they get grumpy about

⏹️ ▶️ John it. And some people will get religion and say, I’m going to really get into this process. And I like it. It’s predictable. But like,

⏹️ ▶️ John bottom line is, no large organization is ever going to achieve the ideal of a handful of talented,

⏹️ ▶️ John like minded people communicating well. And even like in that article, I put in the show notes link of why

⏹️ ▶️ John software methodologies don’t work, even if the ideal is like, oh, we’ll just focus on communication and make sure we have personalities put

⏹️ ▶️ John together. Like those solutions are not scalable to organizations of hundreds of people, like no,

⏹️ ▶️ John no way for people to do a job together. And, you know, at peak performance

⏹️ ▶️ John is scalable to hundreds of people, because inevitably there’s going to be personality conflicts, there’s going to be disagreements. And that’s

⏹️ ▶️ John why you inevitably have to fall back to some kind of methods. Now, for things that are regularized, which has

⏹️ ▶️ John been pointed out a million times, like building a road or building bridges or things people have been doing for hundreds

⏹️ ▶️ John of years that are very simple, you know, pretty much success and failure wise, there needs

⏹️ ▶️ John to be a span over this course of water needs to carry this much weight and needs to withstand these conditions, it needs to last this long.

⏹️ ▶️ John We’ve done this 20 times before we know exactly the steps that are required to take still things can get screwed up and we can try new methods,

⏹️ ▶️ John they might mess up. But in general, it is way easier than even the simplest software product where no one has made this

⏹️ ▶️ John specific thing before with these specific requirements, people don’t even know what the requirements are. And they’re They’re going to change a million times.

⏹️ ▶️ John Software is so much more complicated than pretty much anything else humans do, except maybe parenting,

⏹️ ▶️ John that it’s impossible to predict what’s required to go into it. And so we’re willing to

⏹️ ▶️ John accept, essentially, a massive reduction in peak performance just for some grasp

⏹️ ▶️ John on, can we get some predictability out of this? Even if it means that we’re working slower.

⏹️ ▶️ John And once you get to a certain size in a public company, like, I don’t care how much crappier it makes

⏹️ ▶️ John us as long as we’re still able to stay in business. I want everyone to follow whatever methodology ABC

⏹️ ▶️ John and D or whatever processes, even if I know that this is going to send the best programmers out of the company

⏹️ ▶️ John because they don’t want to work for us anymore. And we’re not going to get the peak performance that we would it’s just better than the unpredictable

⏹️ ▶️ John chaos. Because if you’re not one of the programmers, but you’re one of the people in charge, you could very quickly feel like you’re

⏹️ ▶️ John nobody’s in charge. Nobody’s at the wheel, you’re just up there and you just like whisper down to the program. So well, hey, guys,

⏹️ ▶️ John you think you could make our program do this? And then you just wait to hear a reply with your fingers crossed,

⏹️ ▶️ John like that’s not a way to run an organization. So these rules always have to apply, but they’re always going to feel like

⏹️ ▶️ John they’re making things work. And in many respects, they’re they’re wishful thinking that you are

⏹️ ▶️ John going to somehow come up with the correct process to turn this huge team of people into the equivalent

⏹️ ▶️ John of 17 rooms full of five people who are really motivated.

⏹️ ▶️ Casey You know, the funny thing about everything you’re saying is, and this was pointed out to me on Twitter

⏹️ ▶️ Casey by Chris H., and he’s right, is that the origin of

⏹️ ▶️ Casey Agile was to try to get away from oversight by management.

⏹️ ▶️ Casey And so the whole idea of Scrum and Agile is that you self-manage

⏹️ ▶️ Casey as a team. The team is self-governing. You establish the team norms up front. You know, we’re always going to be on time to meetings,

⏹️ ▶️ Casey which never actually happens. always going to pay attention during meetings, which never actually happens.

⏹️ ▶️ John And you’re trying to get everyone to get along and agree, right? Like, that’s, but you can’t do that.

⏹️ ▶️ John Like, that’s not how that’s not how human that’s not human relations work. Like, if we just all agree, they will be friendly

⏹️ ▶️ John and motivated and work well together, then we will. It’s not that all works like,

⏹️ ▶️ John you can’t from it’s like, coming from the outside and saying it would be nice if all

⏹️ ▶️ John the if the interaction with our groups were this way. And then if you just say that to each other that doesn’t

⏹️ ▶️ John make it so like if these two people still hate each other, they’re always going to each other. These two people disagree strongly about this

⏹️ ▶️ John technical issue there, you know, telling them that they shouldn’t disagree is not going to work. Like, I,

⏹️ ▶️ John it’s just kind of like shifting the things around on the table, like, okay, well, we don’t want people who aren’t programmers

⏹️ ▶️ John telling us so I’m sure if we just let all the programmers sort it out, they’ll do fine. No, you just move those those dynamics to a different

⏹️ ▶️ John group of people, a different even more passive aggressive group of people.

⏹️ ▶️ Casey So I take it, John, that you’ve never been in a situation wherein you feel

⏹️ ▶️ Casey like the method improved the product.

⏹️ ▶️ John Processes sometimes improve the product. And like I said, for large organizations, you have

⏹️ ▶️ John to have processes and you have to have methods because if you don’t, it’s just wildly unpredictable.

⏹️ ▶️ John And it’s depending, especially with your mix of people, like the chestnut that you always heard is like, if you have

⏹️ ▶️ John a bunch of great programmers, then you can just let them do whatever the hell you want and you’ll be awesomely successful. If you have a bunch of mediocre

⏹️ ▶️ John programmers, you need to apply processes and methodology. If you have a bunch of crappy programmers,

⏹️ ▶️ John you need massive methodology application to them. Then, in the

⏹️ ▶️ John end of it, all of those situations, you end up with a product of similar quality, which I don’t know if I believe that.

⏹️ ▶️ John I don’t know which one of those things is better, but most companies are a mix of those type of things.

⏹️ ▶️ John I don’t think there’s any avoiding. With something as complicated and unpredictable software,

⏹️ ▶️ John I don’t think there’s any avoiding that dynamic that small groups of focus, really smart people can do great things in short

⏹️ ▶️ John periods of time, things that larger groups of less motivated, less experienced, less

⏹️ ▶️ John talented people can never do. It’s not like, okay, well, it takes these five people in a room a

⏹️ ▶️ John year to do this. But if I have 300 people and three years, I can equal them. No, you may never equal them with 300

⏹️ ▶️ John people if you don’t have the right five, for example. Because it’s not a predictable thing, because it’s

⏹️ ▶️ John not something you can systematize. Someone in the chat room was saying, oh, come on, there’s plenty of things that are more complex than software.

⏹️ ▶️ John Plenty of natural things, not plenty of man-made things. Like, I would say a 747,

⏹️ ▶️ John I mean, the consequences for errors in a 747 are much greater, but software is much more complicated. The consequences are usually stupid

⏹️ ▶️ John and pointless, and nobody cares, which is why we get away with this. But software is insanely

⏹️ ▶️ John complex in terms of, you know, what number of states can this thing be

⏹️ ▶️ John in? And how many transitions from one state to another can it go through? Like, I mean, think of the friggin’ halting problem.

⏹️ ▶️ John We can’t even reason, make basic reasons about arbitrary programs that you’re going to

⏹️ ▶️ John consider. Programming is different by nature than most things that people do. It just so happens

⏹️ ▶️ John that the consequences are usually not that serious. And that’s when you see programming where there is real consequences, like

⏹️ ▶️ John missile control systems or things in planes, hopefully. They have massive process applied

⏹️ ▶️ John on them. They’re willing to sacrifice productivity and job satisfaction

⏹️ ▶️ John and not have the smartest people to say, Look, we have crazy requirements about how everything must be done in

⏹️ ▶️ John the most conservative fashion possible. And it’s like, some people look at it and say it’s a miserable existence. But like,

⏹️ ▶️ John that’s our only tool to say, we would like to make a program, but we’d also like it not to fail

⏹️ ▶️ John like ever. And so we are going to apply the methodology nuclear bomb,

⏹️ ▶️ John or nuclear if you want to pronounce it correctly, to this to this problem. And we are going to make it

⏹️ ▶️ John miserable for like, no one would sign up for this. Like you can’t use these features, you’re not allowed to ever allocate memory,

⏹️ ▶️ John we have the system system for doing like, I mean, for the space program and stuff like that. That’s our only tool,

⏹️ ▶️ John like method. That’s what our tool is for, for trying to make it so that, you know, we can minimize

⏹️ ▶️ John bugs and make it reliable, but it destroys productivity. You can’t use that same methodology that you use for like

⏹️ ▶️ John the Mars rover software. You can’t use that to make like WhatsApp. Like you’ll be out of business.

⏹️ ▶️ John It’s not, you know, you can’t, you can’t even use it to make iOS for crying out loud, like you, they would never produce

⏹️ ▶️ John a product, you know, like how many years and they would never get the people who wanted to work on it. So

⏹️ ▶️ John it’s that’s how I think that’s the place of methodology. Like it’s

⏹️ ▶️ John it’s an evil that is necessary to the degree to which you you would demand a predictability of your software.

⏹️ ▶️ John And even then you have things going out of orbit because of unit conversion errors and this bug, you know, like

⏹️ ▶️ John we’re never perfect, right? So I feel for the people who want methodologies

⏹️ ▶️ John to make things better. But I mostly see it as like the only tool we have

⏹️ ▶️ John to try to fight against the inherent chaos of writing software.

⏹️ ▶️ Casey And as per usual, I think you’ve hit the nail on the head. And coincidentally, I was about to bring up that there

⏹️ ▶️ Casey are instances where waterfall, which among software developers is considered to be evil in almost

⏹️ ▶️ Casey all cases, there are instances where waterfall is absolutely the correct answer.

⏹️ ▶️ Casey And in fact, as I kind of hinted at during the debug that I

⏹️ ▶️ Casey was on with Guy and Rene— Nice plug. I do what I can. It

⏹️ ▶️ Casey was pretty good, actually. I’m like halfway through it, though. Oh, well, thank you. So, yeah, so when I was working

⏹️ ▶️ Casey on some stuff where failure was not an option, we

⏹️ ▶️ Casey had pretty much everything that was waterfall. A lot of planning up front, a lot of meetings up front,

⏹️ ▶️ Casey code reviews, and all of these things. And that was in order to prevent

⏹️ ▶️ Casey exactly what you described, John. It was to prevent a poor unit conversion

⏹️ ▶️ Casey or something along those lines. And in that situation, it was absolutely necessary. It was absolutely

⏹️ ▶️ Casey necessary, absolutely the right answer, and absolutely the right way to get that project done.

⏹️ ▶️ Casey The problem was that as a developer, especially one who tends to want to sling

⏹️ ▶️ Casey code, and rather than talk about slinging code, it was incredibly

⏹️ ▶️ Casey neutering to me. Is that a word? It doesn’t matter. Anyway, it made me feel like

⏹️ ▶️ Casey I could never get anything done because I just had to talk about getting things done. And that was very frustrating,

⏹️ ▶️ Casey but I don’t begrudge my then employer for doing things that way. It was absolutely the right call.

⏹️ ▶️ Casey It’s just, it wasn’t the right call for me.

⏹️ ▶️ John Waterfall is like almost impossible with anything that’s reasonably complex because nobody knows

⏹️ ▶️ John what the correct design for it is. no matter how much you talk about it, like you could you could talk

⏹️ ▶️ John for three years to come up with the design. And once you start implementing it on a third day, you’re going to go, oh,

⏹️ ▶️ John we didn’t think of that because like because the running program is too complicated for everyone to keep in their head.

⏹️ ▶️ John And like what happens at that point is do you bravely plow forward with the waterfall design?

⏹️ ▶️ John Do you, you know, go back to the drawing board and start all over again? Or do you just make some little tweak and then like you end up with this

⏹️ ▶️ John thing that’s kind of misshape and it’s like putting together a piece of furniture and one piece of wood is like bent. So it barely fits.

⏹️ ▶️ John It’s like, hey, we followed the plan, right? Slot A into tab B. Yeah. Yeah,

⏹️ ▶️ Casey and coincidentally, Marco, to bring him back into the conversation, has dealt with a lot of that lately. Not

⏹️ ▶️ Casey, Marco as much

⏹️ ▶️ Casey waterfall stuff, but not as much waterfall. But you’ve dealt with

⏹️ ▶️ Casey the reality and realization that, you know what, maybe I need to throw away a lot of work I’ve done and

⏹️ ▶️ Casey do it all over again.

⏹️ ▶️ Marco Oh, yeah. I mentioned in the after show a few,

⏹️ ▶️ Marco about four episodes ago, I can tell you because it was about a month ago. And I don’t even, I think I even cut

⏹️ ▶️ Marco it out of the final edit, but the live listeners probably heard me a month

⏹️ ▶️ Marco ago say that I was rewriting the Overcast sync engine because I discovered some sync shortcomings and

⏹️ ▶️ Marco I was rewriting the engine to be much better and everything else. And at the same time

⏹️ ▶️ Marco I was doing, and of course, you know, you can, in hindsight I can see why this is a

⏹️ ▶️ Marco bad idea. While rewriting the sync engine and the whole protocol with which it synced to the server,

⏹️ ▶️ Marco I also took the opportunity to break up the data model for the two key

⏹️ ▶️ Marco models of the app, which is podcasts and episodes. I broke off

⏹️ ▶️ Marco parts of those that were the user parts of them into separate models. And this required such massive

⏹️ ▶️ Marco changes to the code on both sides, server and client. At the same time, I was also changing the

⏹️ ▶️ Marco sync protocol trying to make it generic so I could use like you know the one master

⏹️ ▶️ Marco superclass slash library functions to sync anything and

⏹️ ▶️ Marco and the result was I lost a month basically and

⏹️ ▶️ Marco last night I decided you know as I was staring there

⏹️ ▶️ Marco with with the parts of my of my app like on the floor still and as I was trying

⏹️ ▶️ Marco to rework the changes, you know, still back into the app and

⏹️ ▶️ Marco I realized I was throwing away so much working behavior

⏹️ ▶️ Marco and so much like nuanced complicated stuff, especially on the iOS app, that

⏹️ ▶️ Marco depended on the old model. Meanwhile this whole time on my carry iPhone,

⏹️ ▶️ Marco my main iPhone, I was using the old version of the app from a month ago because this whole time

⏹️ ▶️ Marco I couldn’t put a new build on yet because it was broken and for the whole month it’s been fine

⏹️ ▶️ Marco it’s been working great and I’ve been sitting here using this build for this supposedly like unshippable

⏹️ ▶️ Marco alpha software I’ve been using the same build for a month every day heavily and it’s been perfectly fine

⏹️ ▶️ Marco and I realized you know what now that I’m like you know two-thirds of the way into

⏹️ ▶️ Marco this massive sync change I realize now that even if I get it all back together

⏹️ ▶️ Marco it’s gonna be too complicated, too fragile, and not at all maintainable.

⏹️ ▶️ Marco And so even if I finish this, the result will be worse than what I had before. I was wrong when

⏹️ ▶️ Marco I thought it would be better. In practice it’s not better. So therefore

⏹️ ▶️ Marco I decided to go back to what I had and I’ve spent today basically

⏹️ ▶️ Marco reverting back to the old version from a month ago and merging in a few basically

⏹️ ▶️ Marco cherry-picking by hand a few of the improvements I made that that will fit

⏹️ ▶️ Marco in the old system just fine and so I’ve I’ve lost I wasn’t

⏹️ ▶️ Marco doing this the whole month I was doing some stuff I could keep but I would say I probably threw away two

⏹️ ▶️ Marco and a half weeks of work because the result is actually better the old way

⏹️ ▶️ John I think you’re only on step one of four of the Brent Simmons sinking development

⏹️ ▶️ John because I think at this point now you have to also throw away this one again and try the other one, and then you have to revert

⏹️ ▶️ John back again to the previous. If you’re following the Brent Simmons Vesper Sync Diary plan

⏹️ ▶️ John of syncing software development, you’ve got a long road ahead of you.

⏹️ ▶️ Casey And to be fair, you know, to bring this very briefly back to methodologies, no methodology would have fixed

⏹️ ▶️ Casey that in my in my estimation. You know,

⏹️ ▶️ Marco they want to make it take longer.

⏹️ ▶️ Casey Yeah, you’re absolutely right. Like Agile would have

⏹️ ▶️ John or would have forced you to ship something you didn’t want to ship because you know, in in areas where there are constraints. Like that’s

⏹️ ▶️ John that’s what I was getting at. It’s like that a lot of times methodologies are seen as the way to solve your

⏹️ ▶️ John problem when your problem really might be your one software you have working on a sync system has not written a sync system

⏹️ ▶️ John before. And there’s no methodology that’s going to make that go faster, make it come out better.

⏹️ ▶️ John Like there are lots of practices that we could that you can adopt. But I mean, it’s not like saying, oh, it should just be the Wild West.

⏹️ ▶️ John Like, for example, the practices that should be imposed on people that I think everyone agree on, like, you know,

⏹️ ▶️ John I don’t pick the language or try to like JavaScript with the stupid use strict token or if you decide that’s a reasonable thing to

⏹️ ▶️ John do and I think it is and it doesn’t affect your compatibility to say everybody’s got to put the JavaScript the use script to find

⏹️ ▶️ John deciding on your compiler flags having some sort of common naming convention and indenting style like

⏹️ ▶️ John all the all the easy things that people can agree on that stuff counts and it helps everybody

⏹️ ▶️ John but like people say all right that’s good coming up with agreement on these standards helps

⏹️ ▶️ John if we come up with agreement on even bigger more sweeping changes surely we’ll get a proportional benefit

⏹️ ▶️ John and you don’t like you get I mean, that’s, that’s where we should start talking about testing, I think, is that

⏹️ ▶️ John testing is definitely something you really need and is great. And testing

⏹️ ▶️ John taken to its logical conclusion of test driven development is certainly better than having no tests at

⏹️ ▶️ John all. But you can’t just keep cranking that dial until it’s like now just everything will be perfect all the time, because of a little bit

⏹️ ▶️ John of testing helps and a little bit more testing is great. But if we have 100% code coverage and everything testing, we’ve solved

⏹️ ▶️ John the problem of software development and you haven’t.

⏹️ ▶️ Casey And unit testing is something that I think is a little bit, I don’t know if taboo

⏹️ ▶️ Casey is the word I’m looking for, but not a lot of developers that I know are really into it. And

⏹️ ▶️ Casey I would argue that test-driven development is taking it a bit too far in my personal opinion, but

⏹️ ▶️ Casey writing comprehensive unit tests is the same sort of thing as code

⏹️ ▶️ Casey reviews, where at first I was like, oh, God, really? This is a thing we have to do?

⏹️ ▶️ Casey Everyone has to look at my code and try to tell me why it’s wrong and they don’t realize that I’m actually right. Now,

⏹️ ▶️ Casey I got to convince all these people. But in the end, it actually worked. Code reviews were extremely, extremely

⏹️ ▶️ Casey interesting and I always learned something from it even if I never changed my code and most times I did change my code.

⏹️ ▶️ Casey Unit testing is a similar thing where it’s like, oh, God, do I really need to write unit tests for all these things? I run

⏹️ ▶️ Casey it a few times. I give it a few example inputs and that should be enough, right? But unit

⏹️ ▶️ Casey testing is an unbelievably awesome way to make sure that not only that what

⏹️ ▶️ Casey you’ve written works, but also that it will stay working.

⏹️ ▶️ Casey And that’s what’s extremely powerful about it. And you can take it to the nth degree, which is test-driven development,

⏹️ ▶️ Casey or you can use it where appropriate. And one of the things that I need to explore

⏹️ ▶️ Casey more in Objective-C is looking at Xcode’s unit testing framework, because I never really played with it. But

⏹️ ▶️ Casey there’s great frameworks in Java, in.NET, like NUnit, for example.

⏹️ ▶️ Casey And actually, Microsoft has their own copied version of that. Of course they do. Of

⏹️ ▶️ Casey course they do. That allow you to do those sorts of things. And I agree with you, John, that having these unit tests

⏹️ ▶️ Casey is a really valuable thing.

⏹️ ▶️ John Every methodology has something about it that you can take away from it that’s good. Waterfall has some good things about it,

⏹️ ▶️ John as in, let’s think about what we’re doing before we type. Agile has some good things about it. take smaller steps because

⏹️ ▶️ John if you describe something as one big giant step, you have no idea what’s involved in it. If you break it

⏹️ ▶️ John up into smaller steps, then you have an idea. That’s from the Gantt charts as well, but also you get that experience in Agile.

⏹️ ▶️ John Test-driven development, a lot of developers left to their own devices won’t do tests. So if you try to

⏹️ ▶️ John indoctrinate them into this crazy cult of test-driven development, then they’ll learn to write tests. And I think

⏹️ ▶️ John test-driven development is actually not that far off from something that everybody should do. It’s just that it’s so

⏹️ ▶️ John far off from what people would do on their own that it seems crazy at first. And

⏹️ ▶️ John I’m a big proponent of massive amounts of testing. What you run into eventually with

⏹️ ▶️ John test-driven development or any kind of testing thing is that tests are also code. It’s

⏹️ ▶️ John not like another infallible person comes and writes the tests. And it doesn’t mean you shouldn’t write tests. That doesn’t invalidate

⏹️ ▶️ John tests, but that’s the limit that you hit. The limit that you hit at a certain point is that

⏹️ ▶️ John tests are code. You’re not infallible when you write them either. And the more of them you write, the more difficult changes become,

⏹️ ▶️ John both in good and bad ways. So every one of these things, if taken too far, can

⏹️ ▶️ John have problems. And that’s what we’re looking for. It’s like, oh, if we’ve got those two or three guys who really know

⏹️ ▶️ John what they’re doing and have experience with each of the things they’re going to be doing and have done something like this before and

⏹️ ▶️ John can get the balance and just firing on all cylinders and the project is small enough to fit

⏹️ ▶️ John in all their heads collectively, and then they’re super geniuses and they make this great 1.0 product with

⏹️ ▶️ John this great potential feature, and they hand it off to another group. Like, we’re all trying to go to get to

⏹️ ▶️ John recapture that. It’s like it’s like trying to recapture your youth. Like, you’re never going to get there again. Right.

⏹️ ▶️ John You’re never going to be like you were when you were 16 years old. It’s like if we can just if we just apply this series of

⏹️ ▶️ John constraints. But there are but like there’s wisdom in every experience that you’ve had that you want to apply. And in

⏹️ ▶️ John some respects, it doesn’t matter if you’re in an organization that’s like, you know, whoever’s in charge of things as agile

⏹️ ▶️ John as the way we go. Whoever’s in charge of things is we got to do test driven we have to do pair program, we have to review like someone’s leaning

⏹️ ▶️ John heavily on whatever button or dial or accelerator they think is the best thing. In the end, what matters

⏹️ ▶️ John is like the people in the group, the dynamics between the people, their motivation

⏹️ ▶️ John for what it is they’re doing, and their skills and experience, have they done something like this before, and almost

⏹️ ▶️ John any methodology that you apply to them will appear to work because they would have been fine

⏹️ ▶️ John in any situation. And those same people, you know, would choose to write tests

⏹️ ▶️ John because they know it’s good. There’s no methodology that omits tests entirely, because that’s insane. There’s no methodology

⏹️ ▶️ John that omits any planning up front, because we hate waterfall. There’s always something,

⏹️ ▶️ John some piece of every one of them. No matter what methodology you apply to a bunch of good people,

⏹️ ▶️ John they will pull the parts from each one of them. The problems only come in when it’s like,

⏹️ ▶️ John how long ago was No Silver Bullet written and the Fred Brooks stuff? That’s so long ago. We’ve

⏹️ ▶️ John known this for so long. It’s just people keep reaching for that brass ring and saying, This time I’ve got it and every time it’s

⏹️ ▶️ John like you don’t have it But you’ve discovered something new that maybe we can take away from what you’re preaching

⏹️ ▶️ John and move forward

⏹️ ▶️ Casey So in summary, you know methodologies can help but really they’re not gonna fix anything and it’s all

⏹️ ▶️ Casey a bunch of hocus-pocus With that said

⏹️ ▶️ John we should suggest we should you know sponsor. I was gonna say that both of us should Convince

⏹️ ▶️ John Marco to write way more tests that he’s currently writing

⏹️ ▶️ Casey which is to say more than zero

⏹️ ▶️ John I don’t know what that number is. I wasn’t gonna say I’m just saying

⏹️ ▶️ Casey which is to say more than zero

⏹️ ▶️ John Yes, I would suggest that

⏹️ ▶️ Casey I would too. I really would but anyway Marco what else is really cool these days

⏹️ ▶️ Marco It is once again our friends at Squarespace Squarespace is the all-in-one platform that makes

⏹️ ▶️ Marco it fast and easy to create your own professional website or online portfolio For a free trial

⏹️ ▶️ Marco and 10% off go to Squarespace comm and use offer code now. You guys know it’s a new month

⏹️ ▶️ Marco January was Marco. February was Casey. March. Offer code for Squarespace

⏹️ ▶️ Marco is Critical.

⏹️ ▶️ John Nice. Everyone else gets a name. I just get a truncated version of my old podcast.

⏹️ ▶️ John All right. Well, I guess people can spell it better than my name, I hope.

⏹️ ▶️ Marco Well, maybe Critical is your identity.

⏹️ ▶️ Casey I was going to say that’s so critical of you right then and there.

⏹️ ▶️ John I guess Hypercritical was too long to fit in the database column they store the coupon codes in.

⏹️ ▶️ Marco Or maybe they throw a warning and it blows up their whole app. Squarespace is constantly improving their platform

⏹️ ▶️ Marco with new features, new designs, and even better support. They have beautiful designs for you to start with

⏹️ ▶️ Marco and all the style options you need to create a unique website for you or your business. They have over 20

⏹️ ▶️ Marco highly customizable templates for you to choose from. And these templates have won numerous design awards from prestigious

⏹️ ▶️ Marco institutions. Now, Squarespace is very easy to use, but if you need any help, they have an amazing

⏹️ ▶️ Marco support team of over 70 people in New York City that works 24 hours a day, seven

⏹️ ▶️ Marco days a week. And even they have won numerous awards. So Squarespace

⏹️ ▶️ Marco starts at just $8 a month. Now they have this cool feature called Squarespace Commerce where you can build

⏹️ ▶️ Marco an online store that sells physical or digital goods.

⏹️ ▶️ Marco And it’s this whole storefront capability built into Squarespace so it looks like your site.

⏹️ ▶️ Marco You can theme it, you can customize it, and you don’t have to build the shopping cart, the tracker for all

⏹️ ▶️ Marco the inventory and all that crap. They do all of that for you. Building a store is a lot of work. They

⏹️ ▶️ Marco do it all for you. And Squarespace Commerce is included in every Squarespace plan. So if you wanna

⏹️ ▶️ Marco use it, great, no additional charge. If not, you just wanna make a site, a portfolio, whatever the

⏹️ ▶️ Marco case may be, you can do that too. All this starts at just $8 a month. You get a free domain

⏹️ ▶️ Marco name with that purchase if you sign up for a year up front. And you can start a free trial

⏹️ ▶️ Marco today. No credit card required for that free trial. It’s a real free trial. You don’t

⏹️ ▶️ Marco have to give them a credit card and hope that you remember, otherwise you’ll get charged, nothing like that. Real free

⏹️ ▶️ Marco trial at Squarespace. Go to squarespace.com and use offer code critical

⏹️ ▶️ Marco to learn more and to start building your site today. Now one more thing. If

⏹️ ▶️ Marco you hurry up, they are interviewing designers and engineers, because they

⏹️ ▶️ Marco want to hire 30 designers and engineers before March 15th. Now right now, this

⏹️ ▶️ Marco episode’s gonna be released on March 6th. So hurry up, basically. But

⏹️ ▶️ Marco if you interview for an engineering or design position before March 15th, they will invite you

⏹️ ▶️ Marco and your partner to be New Yorkers for the weekend. They will fly you out, put you up at one of the city’s best hotels,

⏹️ ▶️ Marco and give you a long weekend of being a New Yorker. Go in a restaurant, attractions, et cetera,

⏹️ ▶️ Marco and they will pick up the whole tab for it. They’ve been voted one of New York City’s greatest places to work for two years running,

⏹️ ▶️ Marco so put them on your short list. They’re looking to hire, again, 30 engineers and designers by March 15. So hurry

⏹️ ▶️ Marco up, go to be a part of it dot Squarespace comm to learn more and apply. So

⏹️ ▶️ Marco thanks a lot to squareface. Once again, remember, squareface.com offer code critical.

⏹️ ▶️ John If you’ve been hearing Squarespace ads on podcasts for months, but not going to the site to sign up, now’s the time to do it with

⏹️ ▶️ John my code to show the other two.

⏹️ ▶️ Marco I wonder if I can get them to tell me like, you know, in a couple of months, tell me which of our codes

⏹️ ▶️ John one which of it Yeah, and it’s too late for you to so now everybody pile on my code so when Marco gets this information

⏹️ ▶️ John I will be the overwhelming winner.

⏹️ ▶️ Marco Well I don’t think our codes stopped working. I’m pretty sure the codes still work it’s just you know

⏹️ ▶️ John the… I don’t know that would be bad because then like you whoever had the first code would have the accumulation of

⏹️ ▶️ John you know they had months of of users signing up. Anyway everyone use my code.

⏹️ ▶️ Marco So Casey was the after all this time was the methodologies talk on this

⏹️ ▶️ Marco show everything you hoped it would be?

⏹️ ▶️ Casey actually really wasn’t as exciting as I thought.

⏹️ ▶️ John You think it’s over though? Are we done?

⏹️ ▶️ Marco Are we? I don’t know. We don’t have to be.

⏹️ ▶️ Casey We don’t have to be. I don’t really have that much more to say, to be honest. After all that.

⏹️ ▶️ John Well, I have a question for each one of you.

⏹️ ▶️ John, Marco I

⏹️ ▶️ John mean,

⏹️ ▶️ Marco we are going to have nine episodes

⏹️ ▶️ John of follow-up. Maybe Marco can abstain, but like, which, what

⏹️ ▶️ John methodology or part of a methodology have you found to be,

⏹️ ▶️ John make the biggest improvement in how you feel about coding or how you write code.

⏹️ ▶️ Casey So Marco, do you have an answer for that?

⏹️ ▶️ John Doesn’t have to be like a formal one, just anything you’ve done, you know?

⏹️ ▶️ Marco Honestly, what has improved my code the most by far has been open sourcing it.

⏹️ ▶️ Marco And not necessarily because of the contributions I get, which are good, but I don’t get a whole lot of them.

⏹️ ▶️ Marco It’s mostly that if I know I’m going to be open sourcing it, I hold myself to a higher

⏹️ ▶️ Marco standard and I and I kind of like reconsider my decisions more and so by

⏹️ ▶️ Marco editing myself more and by by pushing myself to a higher level of discipline for these

⏹️ ▶️ Marco very important modules that I’m open sourcing that that has helped me dramatically

⏹️ ▶️ Marco and you know as an independent developer there’s you know I don’t really have code

⏹️ ▶️ Marco review I don’t have pair programming you know there’s a lot of of methodology

⏹️ ▶️ Marco type stuff that I just can’t do as one person. And a lot of the stuff I could do,

⏹️ ▶️ Marco like having tons of tests, I could do a lot of that stuff, but it would take so much

⏹️ ▶️ Marco of my time and it would slow me down so much that it might not be worthwhile or practical for me

⏹️ ▶️ Marco to do that. And so I don’t do a whole lot of the other stuff, but certainly,

⏹️ ▶️ Marco yeah, open sourcing by far, that’s helped me than anything.

⏹️ ▶️ Casey So for me, I would say that I think Scrum,

⏹️ ▶️ Casey which is to say the thing where you get together either physically or on

⏹️ ▶️ Casey the phone for five to 15 minutes each day

⏹️ ▶️ Casey and talk about what you’ve done, what you’re doing, and what stands in your way, that sounds

⏹️ ▶️ Casey wonderful in theory and in practice

⏹️ ▶️ Casey never works. Even in my company where we take agile extremely

⏹️ ▶️ Casey seriously, and of course, all the people who think I’m wrong about everything are laughing right now,

⏹️ ▶️ Casey but we do take agile very seriously. And whether or not you think I’m, I know what I’m talking about. I assure you that

⏹️ ▶️ Casey they do. And so they, they take Scrum very seriously and we have Scrums every single day

⏹️ ▶️ Casey and even though we take all this stuff so seriously, scrums never

⏹️ ▶️ Casey last the 15 minutes they’re supposed to last and they always go into tangents that they’re not supposed to go in.

⏹️ ▶️ Casey And so scrum has never helped. However, that one project where we had that perfect

⏹️ ▶️ Casey storm of willing and capable developers, willing and capable

⏹️ ▶️ Casey QA, willing and capable PM, and willing and capable product owner slash

⏹️ ▶️ Casey client, when all of us really went all in on Agile

⏹️ ▶️ Casey and really bought into it and really believed in it and really took it seriously,

⏹️ ▶️ Casey it was fantastic because it allowed for us to

⏹️ ▶️ Casey roll with the client’s ever-changing requests, which to be fair, they were actually very good to

⏹️ ▶️ Casey us and didn’t really change things that often. But when they did, the product owner,

⏹️ ▶️ Casey the client would come to us and say, oh, I really want to do this thing, how many points is that?”

⏹️ ▶️ Casey And we’ll go and talk for a few minutes. Okay, it’s eight points. Ah, man. All right, let me figure out

⏹️ ▶️ Casey what eight points I want to get rid of and I’ll get back to you. And we didn’t have to argue

⏹️ ▶️ Casey with them. There was no scope creep. There was no, well, if you’d like

⏹️ ▶️ Casey this to happen, you’re going to have to take some other stuff out. Well, how much other stuff? We don’t

⏹️ ▶️ Casey know. You’re just going to have to take out other stuff. Well, I need to know how much. None of that awkward conversation happened. They took

⏹️ ▶️ Casey it upon themselves to realize, well, you know what? You’ve told me that this thing

⏹️ ▶️ Casey that I really want is eight points. And so I know that I need to take away

⏹️ ▶️ Casey eight points from what’s currently on the docket. And oh my God, it was so wonderful. I mean

⏹️ ▶️ Casey that genuinely. It was so wonderful. And I think this is exacerbated by the fact that

⏹️ ▶️ Casey in consulting, you have this client versus I’m

⏹️ ▶️ Casey not versus necessarily, but you have your client and your own team. And sometimes that can

⏹️ ▶️ Casey be an adversarial relationship. But when we were all on the same page with Agile,

⏹️ ▶️ Casey it was so wonderful because we were truly honestly partners in getting this project done and it was

⏹️ ▶️ Casey great. And so to answer your question, John, the one time of the 10 or so

⏹️ ▶️ Casey years I’ve been working, the one time that Agile really, really, really, really stuck,

⏹️ ▶️ Casey it was incredible. But to be fair, I’ve tried Agile many, many other

⏹️ ▶️ Casey times, and it hasn’t really worked out that well. And at best, it was a distraction, and

⏹️ ▶️ Casey at worst, it was a hindrance.

⏹️ ▶️ John Yeah, I would say for me, it’s hard to pick because a lot of things, like there’s a lot of steps

⏹️ ▶️ John and things that I’ve done that have helped. I mean, I recognize Marco’s thing with open sourcing stuff,

⏹️ ▶️ John like me having a lot of my code be open sourced early in my career, although now it is super embarrassing. It’s

⏹️ ▶️ John out there and it’s terrible. really helps, you know, for all the reasons Marco said, like, you just feel the

⏹️ ▶️ John pressure to make it better. And especially when you’re a young developer working on your own, like I was, I’m just like,

⏹️ ▶️ John you know, random open source stuff. You need some kind of external motivation because you don’t have a boss

⏹️ ▶️ John telling you to do it. Maybe you don’t have other experienced programmers trying to get you to do stuff. But I think the thing

⏹️ ▶️ John that has made the biggest impact on me in terms of how I develop software was

⏹️ ▶️ John as I started to do more and more testing Uh, and not in any particular

⏹️ ▶️ John thing, not particularly test driven, not particularly even unit tests versus integration tests or his function tests, but just the idea

⏹️ ▶️ John that testing, uh, is not like eating your vegetables. And I, I know I

⏹️ ▶️ John had turned a corner when I think it was like one or two jobs ago. At some point there was some fairly complicated

⏹️ ▶️ John project that they wanted. Uh, but like, you know, just big, long description of

⏹️ ▶️ John how it’s supposed to rework written entirely by non-technical people. So of course they have no ideas about feasibility or anything like that.

⏹️ ▶️ John And they needed in a super short time frame and they’re like, you know, this is super important. We know it’s really

⏹️ ▶️ John complicated, but like, you know, have all this meeting about it, like what’s going to take to get this thing done. And my reaction

⏹️ ▶️ John to being put in that situation to be like, you know, the lead guy on this project was

⏹️ ▶️ John immediately to, uh, to revert to kind of like, you know, not test driven entirely, but

⏹️ ▶️ John like to say, I’m going to need a massive amount of tests, more testing than my tests have to be great. And they have to be

⏹️ ▶️ John awesome and I have to really concentrate on testing Because that’s the fastest way to get this thing done on time

⏹️ ▶️ John with the fewest bugs so on and so forth And the fact that that was my reaction shows that I had

⏹️ ▶️ John you know sort of learned through bitter experience that Testing is not like eating your vegetables

⏹️ ▶️ John It’s not like a luxury you can get that you can afford to do like if you have the extra time or whatever

⏹️ ▶️ John But rather when you’re under the gun is when you really need to pull that out of your back pocket and not be

⏹️ ▶️ John you know know, you know, religious about it and say, like, oh, I’m not going to take a step until

⏹️ ▶️ John I’ve got a failing test and all this other stuff like, not that crazy. But just like, for me to

⏹️ ▶️ John feel confident that I can move at my fastest pace, I have to be sure that the code I’m writing is correct. And

⏹️ ▶️ John the code that I’ve written remains correct during this entire development process. And I’ve never been

⏹️ ▶️ John under quite those same constraints before. But now like, that’s an example of a turnaround methodology.

⏹️ ▶️ John I think people do do pair programming have the same feeling sometimes where it’s like, I’m not going to do that all the time

⏹️ ▶️ John as the most extreme thing. But when push comes to shove, I know which dials I can turn on myself

⏹️ ▶️ John to get my best performance. And I will choose from those things. And I think testing is the one that

⏹️ ▶️ John probably, I don’t even know how, it probably came up because of the test-driven development, hype and everything. But

⏹️ ▶️ John I would not have thought of that on my own to be the thing that I should do when I was a young programmer. But eventually,

⏹️ ▶️ John it came to have it as one of the tools in my toolbox. And I lean on it heavily now. I try not

⏹️ ▶️ John to preach it to other people, but I say like it It should be something that you do from time to time to know how

⏹️ ▶️ John it affects your work

⏹️ ▶️ Casey Yeah, I agree And and it’s funny because formal unit testing is something and

⏹️ ▶️ Casey also formal integration testing is something that I find often gets

⏹️ ▶️ Casey punted if you’re running out of time or budget additionally Performance testing

⏹️ ▶️ Casey is another example of something that gets punted if you don’t have a lot of if you’re running out of time or running at a budget. But

⏹️ ▶️ Casey all of those things are extraordinarily important to give a deliverable that

⏹️ ▶️ Casey you’re really truly proud of. And it’s a hard thing, man, when somebody’s

⏹️ ▶️ Casey looking at you, be it a project manager or a client, saying, oh, my goodness, you really,

⏹️ ▶️ Casey really, really need to get this thing shipped. And you say, no, my test

⏹️ ▶️ Casey classes aren’t complete yet. There’s not enough code coverage, so you need to leave me alone.

⏹️ ▶️ Casey It’s a hard thing to sell, and it’s a hard thing to say. But so often, if you don’t

⏹️ ▶️ Casey get that right up front, you’ll pay for it later. Same thing with performance testing. Oh, well, you know, we don’t

⏹️ ▶️ Casey need to worry about that we shouldn’t have but five users at a time. And something weird happens next thing you know, you have 500

⏹️ ▶️ Casey users at the same time and your website comes to a screeching halt.

⏹️ ▶️ John Yeah, the key thing is to is to recognize when each tool is appropriate. So for the example that I cited,

⏹️ ▶️ John I was handed a big giant, you know, Word document, there is Word documents of this complex

⏹️ ▶️ John system not written as a programming spec by any means but merely written as like, like,

⏹️ ▶️ John you know, a fantasy scenario, wouldn’t it be cool if and what about this, and this would do this and this would do that really complicated

⏹️ ▶️ John stuff that involve tables or whatever. It was kind of like unintentional waterfall where it was like

⏹️ ▶️ John a big idea of a complex system that is just now in the kind of like blue skying

⏹️ ▶️ John stage, but then needs to be shipped needs to be shipped this software in a very short period of time, like less than a month.

⏹️ ▶️ John And that’s a case where you can say, look, if you agree this is how this needs to work, and you think

⏹️ ▶️ John you’ve got it all down, the fastest way for me to do this is

⏹️ ▶️ John to lean heavily on testing, because there are so many complicated scenarios that I need to run through. And it’s not

⏹️ ▶️ John like I’m going to get 100% coverage. It’s not like I’m going to test every possible iteration of input. But at the very

⏹️ ▶️ John least, this document here describes many different situations and how they interact. And I can test every single

⏹️ ▶️ John one of those things. It’s the only way I’m going to be able to ratchet my way through this code. And

⏹️ ▶️ John that’s different than a situation of like, well, we’re not quite sure what we want to make it but it’s going to kind of be like this. And in that case,

⏹️ ▶️ John writing all these tests would just be like pinning yourself down with spider webs while you’re trying to move to an unknown destination.

⏹️ ▶️ John So you have to recognize like, when do I have enough information to really pin this down with tests right now? Or

⏹️ ▶️ John when do I have to do kind of a more fast and loose agile type thing of all just get something up and running and we’ll look at it and we’ll poke

⏹️ ▶️ John around that and we’ll see how like in that case, you’re wasting your time to writing and changing and writing and changing

⏹️ ▶️ John tests for something you’re not even sure how it’s supposed to work. So in all these cases, like you can’t take, you

⏹️ ▶️ John can’t use the same tool for all different situations. You have to know, like for example, in Marco’s case,

⏹️ ▶️ John when he’s doing the UI, like, Oh, let’s look over there. How does this transition look? Maybe this button should be over there. Maybe this actually shouldn’t be

⏹️ ▶️ John a button. It should be a slider. Let me try this with the gesture. Like writing tests for all those cases

⏹️ ▶️ John would would just slow him down. It would not help. Whereas, for example the sync code which can be largely faceless

⏹️ ▶️ John is like an eye and very complicated in many different states is an ideal opportunity to do a very complicated

⏹️ ▶️ John series of data-driven tests and maybe even some fuzz testing to be a confident that this

⏹️ ▶️ John tiny little kernel of stuff that you’ve made works the way you expect it to

⏹️ ▶️ Marco oh yeah and and one of the reasons why I don’t write a lot of tests is because most of the code

⏹️ ▶️ Marco I write and especially most of the most of the difficult, tricky code I write

⏹️ ▶️ Marco is the former, which is it’s UI stuff that’s much harder to test and write tests

⏹️ ▶️ Marco for and maintain those tests as I change things, as I refine the design, as I

⏹️ ▶️ Marco add buttons and features and move stuff around. It’s much harder stuff to test for. I don’t end up writing

⏹️ ▶️ Marco a lot of the easily testable faceless module math code. That’s very

⏹️ ▶️ Marco unusual for me to write a lot of that.

⏹️ ▶️ John But you got no you’ve got the f-something DB. It’s not FM DB. It’s FC DB

⏹️ ▶️ Marco It’s FC model and somebody else wrote tests for that. This is why open source is great

⏹️ ▶️ John Yeah, but I’m saying like that that’s something like that’s another thing that open source does because most open source cultures

⏹️ ▶️ John have a culture Oh, I’m gonna say most of them have a culture of culture But I’m always depressed when I when I

⏹️ ▶️ John download something untarred and you know run configure and make an error and make tests And it says no

⏹️ ▶️ John make tests. I don’t know what you’re talking about. I’m like like, oh, come on, guys. But yeah, most of the newer

⏹️ ▶️ John software cultures are in dynamic languages instead, and even JavaScript stuff. Like, testing is part of the culture.

⏹️ ▶️ John And if you release something as open source, you’re kind of, it’s expected, there’s social pressure to say, where’s the test suite?

⏹️ ▶️ John How can I tell that this works on my system? I want to immediately run the test suite. I

⏹️ ▶️ John mean, Perl is super crazy on the testing thing, where it won’t even install modules if they don’t pass

⏹️ ▶️ John their tests, unless you know the secret incantation to tell it don’t bother running the tests. And that runs

⏹️ ▶️ John into all the anti-patterns that I talked about. Like, well, tests are software, too. And the people who wrote them aren’t infallible. So a lot of times, the

⏹️ ▶️ John module won’t install because the test won’t pass. But the tests are wrong, because they were written by another fallible

⏹️ ▶️ John human. And you can go too far in that direction as well. But overall,

⏹️ ▶️ John it’s a good idea to test until it hurts, basically,

⏹️ ▶️ John and then back it off from notch.

⏹️ ▶️ Casey Oh, goodness. Alright, so are we good?

⏹️ ▶️ Marco Thanks a lot to our three sponsors this week. Influx by Bravewave, Ting,

⏹️ ▶️ Marco and Squarespace. And we will see you next week.

⏹️ ▶️ John And if you’re into Twitter, you can follow them at

⏹️ ▶️ Marco C-A-S-E-Y-L-I-S-S So that’s Casey Liss,

⏹️ ▶️ Marco M-A-R-C-O-A-R-M-E-N-T Marco Armin,

⏹️ ▶️ Marco S-I-R-A-C-U-S-A Syracuse, oh it’s

⏹️ ▶️ Marco accidental Accidental They

⏹️ ▶️ John didn’t mean to Accidental Accidental

⏹️ ▶️ Casey Gentlemen, thank you for letting me have my moments.

⏹️ ▶️ John And I wanted to talk about it too, but I think the problem is software methodology is too big a topic. It’s like

⏹️ ▶️ Marco software development. It’s not going to be the development show.

⏹️ ▶️ John Right. Discuss it. Software. What do you think, guys?

⏹️ ▶️ Casey Yeah. And the other thing is, it occurred to me that I was describing my experience

⏹️ ▶️ Casey with Agile, But I know that we’re going to or I’m going

⏹️ ▶️ Casey to get so much email. Oh, that’s not how Agile is. Oh, you’re calling Scrum Agile

⏹️ ▶️ Casey and Agile Scrum and you don’t know what you’re talking about. I’m not looking forward to that at all.

⏹️ ▶️ Marco I’m just glad because last week, when I asked people to tell me what the organization did about

⏹️ ▶️ Marco warnings in production, I don’t think we’ve ever gotten that much feedback. And

⏹️ ▶️ Marco it was like, seriously, every time I checked my email all day long, there’d be three more And they

⏹️ ▶️ Marco were each five paragraphs long like it was it was actually a lot to

⏹️ ▶️ Marco keep up with

⏹️ ▶️ John well And you solicit be like tell me about the problems that you have at your work people will say we didn’t solicit feedback in the

⏹️ ▶️ John show about software methodologies, but Well when we get the things of like

⏹️ ▶️ John if you were doing it, right like you didn’t put the butter in the coffee or whatever Like the whole the whole nine yards like it’s kind of like no

⏹️ ▶️ John you don’t understand My religion is the true religion and you’re doing it ever so slightly wrong like if only you didn’t eat

⏹️ ▶️ John shellfish you’d be fine. Like, and it’s, it’s, that’s why I was trying to get at the beginning of like,

⏹️ ▶️ John the whole point of software methodologies, like to take, to, to attempt to impose order

⏹️ ▶️ John and to make things better than they could ever possibly be like no software methodology can possibly do this. Like there

⏹️ ▶️ John is, there is no, there’s no silver bullet. There’s nothing you can do to make it as good as it can possibly

⏹️ ▶️ John be. You just have to decide what is the appropriate level of annoyance for the given

⏹️ ▶️ John task at hand. And then there are many things to choose from, And some are better than others, and people will write in to tell us that. But

⏹️ ▶️ John I don’t think we’re going to get any absolutists who are like, pair programming is the only way to do programming. Anyone who’s

⏹️ ▶️ John not doing pair programming is doing it wrong. And there’s no way anyone who’s not doing pair programming

⏹️ ▶️ John can be as good as someone who’s doing pair programming.

⏹️ ▶️ John, Casey Oh, you say that. You

⏹️ ▶️ John say that.

⏹️ ▶️ John, Casey Well, I don’t think

⏹️ ▶️ John we will, because they won’t listen to our show. And the thing is, that’s the thing we didn’t

⏹️ ▶️ John discuss here is, unless you have a time machine, you can’t A-B test these things. Because software is like,

⏹️ ▶️ John it’s always different. Like you have to get the same exact people solving the same exact problem in the same exact environment with the same

⏹️ ▶️ John exact knowledge And by the time they’re done with that project They have new knowledge and you can’t find people who are identical who have this like it is impossible

⏹️ ▶️ John to validly a B test because Everything software engineers engineers do is novel in

⏹️ ▶️ John some small way

⏹️ ▶️ Marco Yeah, that’s one of the problems with a lot of these things like you know And this I mean this is a problem in so many

⏹️ ▶️ Marco fields and so many so many actions But like when you can’t really

⏹️ ▶️ Marco scientifically test this stuff very easily if at all Then you

⏹️ ▶️ Marco know you might do something that in your methodology and and ascribe your success or failure

⏹️ ▶️ Marco to that thing when in fact it had little to do with it or nothing to do with it and That’s why I

⏹️ ▶️ Marco look at so many so many of these things with skepticism like okay you did it this way and it worked, but if

⏹️ ▶️ Marco you did it some other way would it have also worked and And did it work because of the way you did

⏹️ ▶️ Marco it or did it work because of the people and the conditions they were in? And there’s all these uncertainties

⏹️ ▶️ Marco like I recently got into the the world of high-end headphones and

⏹️ ▶️ Marco I mean the audiophile world is comical in the things that it believes in

⏹️ ▶️ Marco and I go on on HeadFi, the biggest headphone enthusiast

⏹️ ▶️ Marco forum, and I have trouble relating to the people there because they’re all talking about how

⏹️ ▶️ Marco they upgraded the cable to this new cable and now they can hear all sorts of things that cables can’t

⏹️ ▶️ Marco actually make you hear and that all cables you know cables don’t vary that much and

⏹️ ▶️ Marco it’s all psychological and you’re spending $400 on a headphone cable and like I can’t

⏹️ ▶️ Marco understand these people because I know scientifically like what they’re what they’re thinking

⏹️ ▶️ Marco is is invalid and what they’re saying is wrong and and they’re wasting their time and money doing things that

⏹️ ▶️ Marco are that are just totally placebo and I wonder how much of the methodology

⏹️ ▶️ Marco stuff is that same way where is like you know you just you can’t really say that helped

⏹️ ▶️ Marco you

⏹️ ▶️ John yeah I think I think individual people can tell what parts of a methodology they’re using

⏹️ ▶️ John is helpful to them basically by by gauging their own performance they’re like I’ve gotten similar

⏹️ ▶️ John problems like this in the past and I performed this way on it and it’s taking me this long

⏹️ ▶️ John and I’ve had this much difficulty. And I know when they told me to do this, I felt that I was going to have difficulty

⏹️ ▶️ John with it. But I did this new thing this time, and it helped me do it better. And like, that’s like on an individual basis,

⏹️ ▶️ John like I decided to use testing, or I had a friend look at my code before I checked it in. So we kind of had informal code reviews,

⏹️ ▶️ John or I clarified the requirements like that’s the, you know, becoming becoming

⏹️ ▶️ John a programmer and having experiences, you learn what all those little things are. And that’s also part of the frustration is if you’re

⏹️ ▶️ John put into an organization where you’re told to do x, y Z, but not this thing that you know that helps you. And you’re like,

⏹️ ▶️ John Oh, well, you know, I really, I really do better when I’m pair programming, or I can’t stand pair programming. It makes me unable

⏹️ ▶️ John to work. But the organization like it wants to have rules for everybody.

⏹️ ▶️ John They don’t want you to just do whatever the hell they want, because then they feel like they can’t manage anything. And that’s that’s the difficulty of the situation.

⏹️ ▶️ John That’s like even without a B testing, I feel like individual programmers can get a feel for the things that help them

⏹️ ▶️ John and want to repeat that, you know, as appropriate. Did you see that link up in the chat room by the

⏹️ ▶️ John way with your audio file you

⏹️ ▶️ John, Marco oh my god

⏹️ ▶️ John yes uh dalton posted that app.net today and he said he couldn’t tell whether it was a joke or not

⏹️ ▶️ John either and i can’t tell either i can’t like that’s the thing about these sites it seems like

⏹️ ▶️ John it’s got to be but then you never know

⏹️ ▶️ Marco anything that is made for audiophiles that promises better sound quality that has

⏹️ ▶️ Marco no basis in science has no basis in abx testing and costs a lot of money it’s

⏹️ ▶️ Marco probably not a joke That’s that’s the the law of audiophile crap out there is like

⏹️ ▶️ Marco yeah some it’s out there They’re serious and people are actually buying it Maybe probably not a lot of people

⏹️ ▶️ Marco but enough people to make it worth selling a thousand dollar six foot cable

⏹️ ▶️ Casey Yeah, that is absolutely ridiculous.

⏹️ ▶️ John There’s got to be a joke. Come on

⏹️ ▶️ Casey Hey, uh, do we want to do a quick accidental neutral on carplay or do we want to save that for next week?

⏹️ ▶️ Marco We can do it. Honestly. I really don’t think there’s much to say about it yet.

⏹️ ▶️ John I think why do you even say that? that you know how this goes.

⏹️ ▶️ Casey That’s the Top Gear equivalent of how hard can it be.

⏹️ ▶️ Marco Right, exactly. Yeah, I mean, we knew about what they were calling iOS

⏹️ ▶️ Marco in the car last summer, and we knew this was in the works, and there’s some stuff in the

⏹️ ▶️ Marco iOS 7.1 SDK that’s in beta still. There’s some stuff in there that

⏹️ ▶️ Marco looks like it’s probably related. And so this is not really a huge surprise.

⏹️ ▶️ Marco And then even like a month ago, I think it was Stephen Trout and Smith, one

⏹️ ▶️ Marco of the good iOS hackers was leaking screenshots of the simulator

⏹️ ▶️ Marco running with the CarPlay interface. Anyway, so

⏹️ ▶️ Marco it’s not big news that this is happening. The important news I think

⏹️ ▶️ Marco is twofold. that Apple’s actually kind of working with the

⏹️ ▶️ Marco car manufacturers to give a variety of input methods. The Ferrari one that was demoed was resistive

⏹️ ▶️ Marco touchscreen, the Mercedes one used a control wheel and the screen wasn’t a touchscreen at all,

⏹️ ▶️ Marco and then some other one used a touchscreen and so there’s like they’re showing off there’s a variety of different

⏹️ ▶️ Marco screen inputs which is important because if you look at the car screen control landscape as we’ve discussed many times

⏹️ ▶️ Marco it’s all over the map and not everybody including our overloaded BMW,

⏹️ ▶️ Marco they don’t use touch screens at all. Lexus also stopped using them recently, I believe that will probably

⏹️ ▶️ Marco also filter down, that filter to Toyota if it hasn’t already, where these like little remote dongles

⏹️ ▶️ Marco of some sort, these remote knobs or pointer things are being regarded as more safe than touching the screen and

⏹️ ▶️ Marco certainly works a lot better. So it’s nice that Apple is kind of adapting to

⏹️ ▶️ Marco what’s out there to a degree. It’s also not surprising that what they want

⏹️ ▶️ Marco is, with what this what car play seems to be is literally airplay

⏹️ ▶️ Marco basically it’s like it’s iOS is creating the entire interface as a video

⏹️ ▶️ Marco and streaming it to the car’s navigation system and taking over the video screen

⏹️ ▶️ John well it’s two-way airplay because it takes input good

⏹️ ▶️ John, Marco sure

⏹️ ▶️ John yeah

⏹️ ▶️ Marco yeah sure so so it’s it’s basically airplay video output at least so that yeah

⏹️ ▶️ Marco so Apple just taking over the screen so it’s not surprising

⏹️ ▶️ Marco they’re doing this it’s not surprising they got a few car manufacturers to say we will do this soon.

⏹️ ▶️ Marco What will be news, and this is what I said in my post about it, what will be news is when

⏹️ ▶️ Marco a lot of cars have shipped with this. Because that’s still up in the air. That could still not happen or that could

⏹️ ▶️ Marco still take a long time to happen. And you know, if a few car makers introduce

⏹️ ▶️ Marco it on a few of their high-end models for model year 2014

⏹️ ▶️ Marco and the future, and let’s say the chart, Like BMW has this thing called BMW Apps.

⏹️ ▶️ Marco If you want that in your car, you have to pay extra money in most cases on most of the models. And so

⏹️ ▶️ Marco if the other manufacturers offer CarPlay, but it’s a $500 option or a $200 option,

⏹️ ▶️ Marco or if it’s an option at all, it costs extra money at all, and it’s only

⏹️ ▶️ Marco on certain models, how long is it going to be before a lot of cars actually have this on the

⏹️ ▶️ Marco road? And that could be a while. So there’s two sides. As a user,

⏹️ ▶️ Marco if you buy a car with it, that’s great. It works for you. As a developer, I think it’s potentially a lot less interesting

⏹️ ▶️ Marco for a while unless it gets a meaningful install base.

⏹️ ▶️ John I was kind of depressed by the announcement because what it showed me is that, like television thus

⏹️ ▶️ John far, this announcement proves that cars are another area where Apple

⏹️ ▶️ John is not going to be able to make things better as much as we want them to. Like television, they have the little

⏹️ ▶️ John puck and it does some things, but it doesn’t solve the whole television problem. And you’re like, oh, I was really hoping Apple

⏹️ ▶️ John would just go in there and solve everything like they did with music, but they’re not. And in car is same thing there. They’re coming into we know

⏹️ ▶️ John like television. It’s all a screw up situation and everything. They were screwed up like, oh, God, Apple, please save us from these terrible car

⏹️ ▶️ John interfaces. And they can’t. They just can’t. Like what they’re doing is saying, you know,

⏹️ ▶️ John please let us have access to your existing screen where you run your existing software and let us take over it briefly.

⏹️ ▶️ John But that’s not the way that’s like saying, please, Johnny, I’ve designed the iPhone for

⏹️ ▶️ John us but all you get is what’s on the screen we’re gonna tell you what’s surrounding it whether there’s any buttons what

⏹️ ▶️ John they look like how big it is how much it weighs what the battery life is but make a great product for us and as we’ve discussed

⏹️ ▶️ John when we discussed the car interiors what was that was that a neutral or on this show i didn’t remember it was neutral

⏹️ ▶️ John like the things that make a car interior like it’s it’s a holistic thing it’s it’s everything

⏹️ ▶️ John about it it’s from the driving position and the visibility to how many physical controls are

⏹️ ▶️ John to how many virtual controls to how they interact with each other, to the software, the hardware, like it is one

⏹️ ▶️ John big whole thing and it’s like unless Apple can design that entire thing they’re not going to be able to ever really

⏹️ ▶️ John solve the problem and they can’t design the entire thing because they’re not a car maker the same way they can’t fix television because they don’t own all

⏹️ ▶️ John the programming and they don’t own all the television sets and you know I guess they’re doing the best they

⏹️ ▶️ John can and an ideal scenario the integration required for this will shrink to

⏹️ ▶️ John some 10 cent chip that just like everybody has in their cars and they use that same chip to do interaction

⏹️ ▶️ John with Android and whatever else and it’s just like well when you buy a car in the future whatever smartphone you

⏹️ ▶️ John have which we’ll just call phones because all phones are smartphones by this point will be able to throw up its UI on

⏹️ ▶️ John the screen and we’ll make something out of it but that interface is always going to be less

⏹️ ▶️ John satisfactory than it would be if there was one one design thought for the entire thing you can’t

⏹️ ▶️ John just make some rectangle on your car and say this is rectangle where smartphone stuff happens.

⏹️ ▶️ John And maybe there’s some buttons on the steering wheel that activate and do stuff like you are never going to get the right

⏹️ ▶️ John really good interface with interaction of everything, unless someone is designing the whole thing. And

⏹️ ▶️ John I believe car manufacturers are not thus far capable of designing the whole thing. And Apple is not allowed to design the

⏹️ ▶️ John whole thing. So we’re kind of stuck with this crap for now, I guess.

⏹️ ▶️ Casey Yeah. And the other thing I’ve noticed is I had a heated but friendly

⏹️ ▶️ Casey debate with Dave Naney and who writes the excellent software SuperDuper, which if you

⏹️ ▶️ Casey don’t have, you should. And he was extolling the virtues of the

⏹️ ▶️ Casey Tesla interface. And I have not interacted with it myself,

⏹️ ▶️ Casey but he was saying that it’s extremely good and it’s touch screen done right.

⏹️ ▶️ Casey And I have, in Neutral, I quite vehemently said I

⏹️ ▶️ Casey hate touch screens in cars. And I stand by that to this day, but I’ve not seen the

⏹️ ▶️ Casey Tesla interface. And Nainian, among others, he wasn’t the only one, but he was an example of somebody who came out of

⏹️ ▶️ Casey the woodwork saying, oh my God, really, the Tesla interface is so good and this is so bad. And he,

⏹️ ▶️ Casey in a series of tweets, and this might have been a direct message between the two of us, but he said to me, it’s like Mac

⏹️ ▶️ Casey OS on the phone. Do we want that? Or another example is iOS on the Mac. Is

⏹️ ▶️ Casey that really what you want? I’m not sure if I agree with him or not, because

⏹️ ▶️ Casey I really don’t like the name CarPlay. The screens I saw I liked,

⏹️ ▶️ Casey but his point is absolutely interesting and worth thinking about. Like,

⏹️ ▶️ Casey is this really the right answer?

⏹️ ▶️ John Yeah, I think the right answer has to involve more than just that screen. I mean, just look at the little home button, like

⏹️ ▶️ John the UI home button. Why is that there? Because they can’t make a hardware home button. they’re confined

⏹️ ▶️ John to that little screen. And it’s sad that their interface is probably going to be better than the iPod integration

⏹️ ▶️ John that car makers have been shipping for years, simply because, look, it’s not rocket science, people. Can’t you just integrate? We gave you

⏹️ ▶️ John this interface to integrate with our iPods. I’ve got it in my Honda. You

⏹️ ▶️ John can show the track name. You can go next and previous track. But you still did it bad, and you got the details wrong. So just give

⏹️ ▶️ John us a screen, and we’ll do an iPod. We’ll do Siri integration. And in many respects,

⏹️ ▶️ John as many people pointed out, There are advantages to this over the existing systems, because now I can upgrade my phone and I automatically

⏹️ ▶️ John get something better with CarPlay and all that stuff. But if, for example, your car

⏹️ ▶️ John has a really slow UI and CarPlay is laggy on it, or if you buy your $200,000

⏹️ ▶️ John Ferrari and it’s got a resistive touchscreen, upgrading your phone’s not going to fix the resistive touchscreen. And upgrading your

⏹️ ▶️ John phone’s not going to add a physical button. And if your car UI has one touchscreen and they use that touchscreen

⏹️ ▶️ John for climate controls, but then you have the CarPlay thing on it, you have to get out of CarPlay just to change the temperature and you wish they just had a knob,

⏹️ ▶️ John it’s not going to fix that either. So I really wish there was a

⏹️ ▶️ John single-minded, holistic approach to interface. And that’s why I think Dave likes his Tesla so much, because that’s a case where the

⏹️ ▶️ John car maker does do the whole thing. And they do concentrate heavily on touchscreen-type interfaces.

⏹️ ▶️ John And it does come together in a manner better than most other cars. But the Tesla, for example, I

⏹️ ▶️ John think it should have more physical controls. And it’s definitely a version 1.0 software. And it’s not as snappy as an

⏹️ ▶️ John actual iPad is. And it’s like we see that the technology for all this is there. It’s just not like the

⏹️ ▶️ John the correct arrangement of the people with the technology and the people who make the cars

⏹️ ▶️ John to make it happen.

⏹️ ▶️ Casey Yeah, I don’t know. I’m very, very intrigued by this. I think it has a lot of potential.

⏹️ ▶️ Casey One of the things I noticed is that to me, the look of iOS

⏹️ ▶️ Casey seven made a lot of sense in on on screen. I don’t know why, but

⏹️ ▶️ Casey not that not to say I don’t That I dislike it on iDevices But

⏹️ ▶️ Casey I actually really really really liked the look on the Ferrari and Mercedes

⏹️ ▶️ Casey and Volvo Video demos

⏹️ ▶️ John the bar is low I

⏹️ ▶️ John, Casey mean

⏹️ ▶️ John I could show you should show you some screenshots of my Honda’s UI looks like it’s like a web page from 1995 It’s

⏹️ ▶️ Marco not good. My favorite part of the Ferrari video was when the the Apple rep who was demoing

⏹️ ▶️ Marco it She she’s showing that you can switch back to the Ferrari Interface

⏹️ ▶️ Marco she’s like well if you want you can tap here to switch to the to the FF

⏹️ ▶️ Marco interface But we’ll just go right back She showed it for a second

⏹️ ▶️ Marco and it just looked awful And this is a brand new Ferrari the interface looks horrendous and then

⏹️ ▶️ Marco switch right back to this nice clean Apple world Yeah

⏹️ ▶️ John Because Ferrari’s expertise is not in user interface design for the touchscreens in their cars.

⏹️ ▶️ John That is not where their strengths lie. And it’s never going to be. And in this respect, I bet Ferrari’s

⏹️ ▶️ John like, oh, finally, someone could take over some of this stuff. But still, not everyone’s going to have a phone or plug

⏹️ ▶️ John it in. So you have to have an interface there. And the standard is so low for these

⏹️ ▶️ John interfaces. I don’t know what the solution is. Again, Tesla,

⏹️ ▶️ John at the very least, they’re taking it seriously and saying, we’re going to have a different UI. We’re going to take ownership of it. We’re

⏹️ ▶️ John not just going to have some sort of generic touch screen, and we’re going to have some third party write some software

⏹️ ▶️ John and put our logo above it in a different background color and call it a day.

⏹️ ▶️ John I know other companies do much more than that, but it’s a difficult problem. It’s difficult on many levels to figure out

⏹️ ▶️ John what the best balance is between physical controls and touch controls and all the modern features people expect and integration with

⏹️ ▶️ John their devices. So I think CarPlay is a step forward, but it’s a small one. Apple TV

⏹️ ▶️ John was a step forward too, but it’s a small one.

⏹️ ▶️ Marco I think it’s worth asking what problem this solves for everyone involved.

⏹️ ▶️ Marco Now, to me, a lot of the audio functions of it are

⏹️ ▶️ Marco solved perfectly well by Bluetooth. And Bluetooth is extremely convenient because when done right,

⏹️ ▶️ Marco and it’s usually done pretty well in cars, surprisingly, because there’s not much to it. When done

⏹️ ▶️ Marco right, I have overcast on my phone, and if I’m in my house

⏹️ ▶️ Marco and I’m washing dishes or whatever, I’ll play a podcast. And then if I go to my car to go to the store,

⏹️ ▶️ Marco I get in the car, turn the car on and just start driving. And a few seconds later, my podcast starts playing through

⏹️ ▶️ Marco the car speakers. When I turn the car off, it pauses and saves my position. And then

⏹️ ▶️ Marco when I go back inside, I can resume it and play inside. And all of that works

⏹️ ▶️ Marco without having to plug the phone into the car, without having to wait, without having to launch anything. It

⏹️ ▶️ Marco just, I get in the car, Phone happens to be my pocket is always in my pocket, and it just works.

⏹️ ▶️ John Do you have a way to pause

⏹️ ▶️ Marco the audio? Yeah, through the car is built in wheel controls and stuff Because you know

⏹️ ▶️ Marco because the car you using the Bluetooth protocol the car can can signal basic things like play pause

⏹️ ▶️ Marco You know track forward track back stuff like that

⏹️ ▶️ John Can you change? Playlists and stuff because this is like the simplest possible scenario that you’re describing where you’re in the middle

⏹️ ▶️ John of an audio And you know exactly what you’re playing But like I agree that is that’s a step up from what you would have had to done

⏹️ ▶️ John before but like even a slightly more complicated scenario like I’m going on a trip and I want to hear this

⏹️ ▶️ John song or this playlist. That’s a place where CarPlay would have your back because it’s like I know how difficult it is

⏹️ ▶️ John to, you know, using my stupid on screen controls, even if I have my iPod plugged in to find

⏹️ ▶️ John the playlist I want to select it to, you know, enable or disable shuffle

⏹️ ▶️ John to, you know, to do all that stuff with a touchscreen, a touchscreen with with my stupid controls. It is terrible.

⏹️ ▶️ John And Siri is probably also kind of terrible, but it’s better. I would I would rather shout something out to my car

⏹️ ▶️ John and say, and tell it what to play than do nothing. But Bluetooth doesn’t solve that at all, because Bluetooth doesn’t give you, like,

⏹️ ▶️ John here’s a visual interface to all your playlists or all your songs. Now go find the one you want. It’s merely

⏹️ ▶️ John like a wireless version of an audio cable. And so CarPlay, I think, is a step up from that,

⏹️ ▶️ John even if it lacks the seamlessness of you just being able to get in and out of your car.

⏹️ ▶️ Marco Oh, yeah. I mean, for podcasts, I think the difference is a lot smaller, because you tend to listen to one podcast for much

⏹️ ▶️ Marco longer than you listen to one song. and you tend not to have to do serious navigation to find

⏹️ ▶️ Marco the podcast you want to hear at this moment. Like generally you put it on and whatever’s on you keep listening to because it’s

⏹️ ▶️ Marco an hour and 50 minutes long. So it’s not that big of a problem for podcast music. I agree, you’re right.

⏹️ ▶️ Marco And obviously a lot more people listen to music than podcasts. But you know, just pointing

⏹️ ▶️ Marco out that Bluetooth, Bluetooth convenience is pretty severe

⏹️ ▶️ Marco competition for this at the start for audio functions. And Bluetooth is also everywhere

⏹️ ▶️ Marco already. Bluetooth is in so many cars now, so many new models included, it’s been

⏹️ ▶️ Marco around forever, so there’s so many cars already on the road with Bluetooth that it really does solve a lot of these problems in a pretty

⏹️ ▶️ Marco limited but very effective way. So where CarPlay I think will

⏹️ ▶️ Marco really shine is navigation in theory.

⏹️ ▶️ Marco But I think in practice, this is still iOS Maps, iOS navigation,

⏹️ ▶️ Marco and trying to replace a car system, or

⏹️ ▶️ Marco either trying to sit on top of a car system that’s being ignored, or be present in cars that have

⏹️ ▶️ Marco screens but don’t have nav, which is not a ton of them, but certainly there’s still some.

⏹️ ▶️ Marco And is that really what you want? I mean, usually a car’s built-in nav is

⏹️ ▶️ Marco not that bad, and it’s also all loaded, all offline, all built in,

⏹️ ▶️ Marco ready to go. It has the high precision GPS transmitter on the receiver on the car and like

⏹️ ▶️ Marco in my opinion the the GPS that’s built in to cars that have navigation

⏹️ ▶️ Marco is Usually way better and more consistent no than the one in iOS 6

⏹️ ▶️ John well I mean maybe in an m5 that’s true But like I think the big advantage it has is that as your car ages

⏹️ ▶️ John assuming you keep it for a while your phone will Get better and the navigation presumably will get better You know what

⏹️ ▶️ John I mean whereas whatever navigation your car came with that’s the navigation going to have. And that, in my experience, is what happened.

⏹️ ▶️ John When I get into someone’s car and it’s like an eight-year-old car, their navigation is gross looking. And

⏹️ ▶️ John if they bought a modern car, it would be better. But I think the key is that to do navigation well, you need to integrate

⏹️ ▶️ John with the rest of the car. Like Marco said, from the antennas that you’re getting the signal from, instead of having a tiny little

⏹️ ▶️ John iOS device inside an armrest plugged into a cable underneath a big steel roof, all the way up to

⏹️ ▶️ John eventually we’re going to show the augmented reality stuff. You’re going to want to show stuff on the HUD. You’re going to want the navigation to know. Maybe the navigation

⏹️ ▶️ John wants to know speed from the speedometer and the angle of the wheels instead of having to get that info from GPS

⏹️ ▶️ John and dead reckoning. Like there’s so much more you can do when you did navigation built into the car than

⏹️ ▶️ John when all you get is to be, I’m a phone, I do navigation and I can project my image onto the screen. Like

⏹️ ▶️ John it’s such a weak solution to a common problem that cars have been solving for years on their

⏹️ ▶️ John own.

⏹️ ▶️ Casey Well, and the other problem is Marco’s navigation in your brand new M5 is excellent.

⏹️ ▶️ Casey And the navigation in my 2011 3 Series is pretty darn good. I’m actually very glad I got

⏹️ ▶️ Casey a car with navigation because that wasn’t the plan when I went looking for a used 3-series. However,

⏹️ ▶️ Casey even in the… I think the build date on the car was December 2010. In

⏹️ ▶️ Casey the three-ish years since the car has been built, the local

⏹️ ▶️ Casey area has changed quite significantly. And so, if for no other reason,

⏹️ ▶️ Casey even the UI left alone, there’s an extreme advantage in having your

⏹️ ▶️ Casey phone do your navigation because the maps get updated. And I’m not talking like

⏹️ ▶️ Casey the UI. I’m talking the actual data gets updated. And I’m looking right

⏹️ ▶️ Casey now at how much it would cost to get my maps upgraded from BMW. And

⏹️ ▶️ Casey I need to pay for a $40.90 USB key, and that just gets

⏹️ ▶️ Casey me the key. On top of that, I need to pay $204.11 for the actual maps themselves.

⏹️ ▶️ Casey So I’m in $250 to get an update for the nav on my car.

⏹️ ▶️ Casey And one of these days, I’ll probably pony up for it because after three or four years, it gets to

⏹️ ▶️ Casey the point that you’re really in need of it because a lot of the streets I go

⏹️ ▶️ Casey to, I shouldn’t say a lot, some of the places I go to, they just don’t, they

⏹️ ▶️ Casey plain don’t exist on the navigation in my car. So

⏹️ ▶️ Casey that’s a bummer. Additionally, traffic lately, as mentioned by David

⏹️ ▶️ Casey T. Moof in the chat, traffic lately is way better coming off the phone than it does my car.

⏹️ ▶️ Casey My car does accept it, does receive traffic, and it’s good, but it’s certainly not foolproof.

⏹️ ▶️ Casey With the advantages that Waze brings, among other things, with the kind of crowdsourcing

⏹️ ▶️ Casey traffic reports, it’s almost always going to be better in navigation on the phone.

⏹️ ▶️ Casey Yeah, right now your m5 is wonderful, but I’d be curious to see if you said that in three or

⏹️ ▶️ Casey four years

⏹️ ▶️ John Well, that’s another example of your car aging and not doing well with the tech But like I think the root problem is

⏹️ ▶️ John right now It’s it’s unacceptable for someone’s home to not have an internet connection

⏹️ ▶️ John But it’s acceptable for cars to not have an interaction there. It’s never was like I don’t want to pay for two wireless bills I don’t want

⏹️ ▶️ John my car to have a separate connection Like that’s a symptom of the market the shape of the market now Like what we would want

⏹️ ▶️ John is as time goes on as cars get better one of like inevitably cars need to have network connections And cars need to

⏹️ ▶️ John auto update their maps and they need to not charge it like your car is old So it doesn’t do this and modern cars still don’t have

⏹️ ▶️ John internet connections But they can get one through your phone maybe or actually we’re doing the reverse here and saying nope car You

⏹️ ▶️ John still can’t have an internet connection, but my thing that I have that has an internet connection It’s allowed to spray its image

⏹️ ▶️ John up on your screen and you’re allowed to send it in puts down to it But like, you know, not too far in the future,

⏹️ ▶️ John if we ever get the stupid carrier stuff sorted out or like we have better wireless like

⏹️ ▶️ John cars need to have internet connections just like homes need to like

⏹️ ▶️ Casey well mine does even my 2010 built car does and if I subscribe

⏹️ ▶️ Casey to like the super baller BMW what is the BMW assist which is kind of like on star

⏹️ ▶️ Casey I can do basic Google location searches from the car and And certainly

⏹️ ▶️ Casey up until Google freaking ruined Google Maps recently, I was able to send

⏹️ ▶️ Casey addresses from Google to my car, which sounds silly, but oh my God, it’s the

⏹️ ▶️ Casey most wonderful thing in the world. And so my car has some modicum of internet connectivity, but

⏹️ ▶️ Casey to your – that doesn’t really – A terrible

⏹️ ▶️ John software.

⏹️ ▶️ Casey, John Yeah.

⏹️ ▶️ Casey Right. And to be honest, you’re on a kind of different point, which is it should be able to do a lot more with that

⏹️ ▶️ Casey internet connection, then receive extraordinarily small packets of search results

⏹️ ▶️ Casey and addresses.

⏹️ ▶️ John Yeah, like, that’s what I say, where we see all the pieces, we know what iPads are like, we know what iPhones like, and we know all

⏹️ ▶️ John the things that could be useful to cars. And it’s like, we have this tech, it’s not that expensive, compared to the cost

⏹️ ▶️ John of a car. We know people know how to write software to do this, but they’re not at the car companies.

⏹️ ▶️ John And like, you just got to get we just got to get these guys together. And that’s the kind of like, you know, we’re hoping in the Apple announcement or something like,

⏹️ ▶️ John maybe they would Maybe Apple will buy Tesla and be able to do the whole experience. But they’re still so far apart.

⏹️ ▶️ John And the things we know today are technically possible that they’re not financially feasible

⏹️ ▶️ John or just not organizationally feasible. We can all envision, you know, like,

⏹️ ▶️ John why is the car the separate realm where we can’t have the nice things that we know exist? Why do we have

⏹️ ▶️ John to choose between navigation that’s integrated with our car, but is crappy in other ways,

⏹️ ▶️ John and navigation that is, you know, know fast and responsive and can respond to voice

⏹️ ▶️ John commands and gets its maps updated all the time but is not integrated with a car in any way

⏹️ ▶️ Casey yeah I don’t know I’m curious to see where it goes though for sure I’m gonna be very jealous

⏹️ ▶️ Casey when my car can’t do it I’ll just have to get a new m3 it’s the only answer

⏹️ ▶️ Marco I wonder too like like how much of car play

⏹️ ▶️ Marco will will fail to be useful to people who aren’t totally bought into the Apple ecosystem

⏹️ ▶️ Marco like there’s a whole lot of features in Mavericks and iOS 7 where like

⏹️ ▶️ Marco if you don’t use Safari as your browser for instance then this doesn’t work right for you

⏹️ ▶️ Marco or if you don’t use iClouds reminders or calendar or whatever

⏹️ ▶️ Marco and so you know how much of that do you think will apply to CarPlay where obviously it’s very

⏹️ ▶️ Marco much based on Siri and and and actually and you know one topic is third-party

⏹️ ▶️ Marco apps integration with it and Apple as far as I know

⏹️ ▶️ Marco they have not clarified whether anybody will be able to make an app that uses this or whether

⏹️ ▶️ Marco this is partners only like Siri and it sure looks like it’s partners

⏹️ ▶️ Marco only to start at least and and so you know

⏹️ ▶️ Marco to what degree will this be limited if you choose not to have not to use

⏹️ ▶️ Marco Apple services for everything, or Apple’s apps for everything.

⏹️ ▶️ John Yeah, Google Maps is the obvious example. What if I don’t want to use Apple Maps? I want

⏹️ ▶️ John to use Google Maps. Right, exactly. Yeah. I think they’re going to have to limit it,

⏹️ ▶️ John probably. It could be about safety and legal reasons.

⏹️ ▶️ John We have all these rules about you can’t even enter the destination of where you’re going. Your car is not moving. the car manufacturer puts that into their navigation,

⏹️ ▶️ John right? At what speed is it safe to play Flappy Birds on your

⏹️ ▶️ John AirPlay screen? It’s only one tap. We can send that over CarPlay, right? That’s really easy input.

⏹️ ▶️ Marco Yeah, that’ll work with the iDrive knob. Just hit the knob to flap.

⏹️ ▶️ John And I think one of the conversations that Casey was having with Dave on Twitter was,

⏹️ ▶️ John what do you call it, the scrolling, like touch scrolling, like how that’s not quite

⏹️ ▶️ John as natural as you might think would be when you’re in a moving car versus buttons. That was mostly getting back to

⏹️ ▶️ John the resistive touch screen that the Ferrari has. It has to have buttons because it’s terrible, right? But even without

⏹️ ▶️ John that constraint, what’s the easiest way to find something in a long

⏹️ ▶️ John list when you’re in a moving car? Because scrolling through a list is great when you’re looking at your phone in your

⏹️ ▶️ John hand and flicking it with your thumb, but your eyes are on the phone the whole time. When your eyes are supposed to be on the road,

⏹️ ▶️ John if you flick and then look back at the road and look back down and you’ve passed it, maybe that’s not the best interface. That’s why it keeps getting back to Siri.

⏹️ ▶️ John That’s why they keep demoing Siri, because that’s what you want. You want eyes on the road, but still get done what you want to get done.

⏹️ ▶️ John And that’s one of the strengths also of knobs and dials, is that if they have little things, you can feel them clicking. You know how

⏹️ ▶️ John far you’re going. Or you can feel switches in the on or off position. You don’t have to take your eyes off the road. It’s a different

⏹️ ▶️ John environment. And the things that work great on iPads and iPhones UI-wise don’t necessarily work

⏹️ ▶️ John the same way in the phone. That’s why I think CarPlay looks so different. And it is so like sort of Spartan and limited. And they

⏹️ ▶️ John keep demoing Siri. They don’t want you to say, oh, great. Now it’s exactly like mounting my iPad

⏹️ ▶️ John to my dashboard. Mounting your iPad to your dashboard is dangerous in terms of what you can do to distract

⏹️ ▶️ John yourself. And CarPlay, I think, is trying very hard not to be that dangerous. So that’s why I would imagine it’s

⏹️ ▶️ John not going to be open season. Or if it is open season, the things that third-party apps are allowed to do

⏹️ ▶️ John through the interface is going to be so limited that it’s not going to allow you to put Flappy

⏹️ ▶️ John Bird up there or play a movie or something in the front seat of your car.

⏹️ ▶️ Marco Right. Now actually, so the new stuff that’s in the iOS 7.1 SDK

⏹️ ▶️ Marco looks like it would be a way, stupid NDAs, whatever I

⏹️ ▶️ Marco can say, it looks like it would be a way to have arbitrary apps be usable

⏹️ ▶️ Marco from the screen, but only present like a structured menu, kind of like the old iPod.

⏹️ ▶️ Marco Like just so that would be your entire interface could be the structured menu, and you have a few limited things you can

⏹️ ▶️ Marco do, But you’re not just given an arbitrary view that you can do whatever you want with,

⏹️ ▶️ Marco put a game in

⏹️ ▶️ John it. And I bet those menu items would be speakable. You’d probably put in some metadata to say if they

⏹️ ▶️ John say this, that’s what they mean. If they had voice, they want it to be simple interface so you can’t do some crazy

⏹️ ▶️ John thing. And also, ideally, you wouldn’t have to touch a screen at all, but you could activate the app and say,

⏹️ ▶️ John like they were showing, play song name, whatever. Or if you put a menu with five options, pick an option

⏹️ ▶️ John which is send text. And then Casey’s app would send a text, And it was

⏹️ ▶️ John like that type of integration. And that’s what I mean. It’s kind of boring because you look at it, and you’re like, oh,

⏹️ ▶️ John it looks kind of like a car UI. Oh, it’s a bunch of items. And the thing is, sometimes it’s not even

⏹️ ▶️ John as responsive as you expect it to be because of whatever the crappy host operating system or the host hardware is. So

⏹️ ▶️ John it’s still a far cry from the performance and experience of having an iPad and a dashboard.

⏹️ ▶️ John But you probably wouldn’t want to have that anyway in terms of the UI. UI has to be simpler and different because it’s

⏹️ ▶️ John not the same as holding an iPad and using it.

⏹️ ▶️ Casey By the way, I should mention that what was news to me anyway, and I believe news to everyone, was that

⏹️ ▶️ Casey CarPlay will support things like the iDrive controller, which I consider to

⏹️ ▶️ Casey be a tremendous win. Despite Dave Nahanian’s love for touchscreens

⏹️ ▶️ Casey and cars, I’m still of the opinion that having a physical control is a much, much,

⏹️ ▶️ Casey much better way of doing things. And so having some amount of integration

⏹️ ▶️ Casey with things like the iDrive controller, I think is very important and a very welcome

⏹️ ▶️ Casey bit of news that I didn’t know before.

⏹️ ▶️ Marco Oh yeah, definitely. And that’s me too. When I saw that, because that’s the thing you would expect

⏹️ ▶️ Marco knowing Apple and the way they usually do things, you would expect they would say, all right, everything that we support has to be a touchscreen,

⏹️ ▶️ Marco period. Like

⏹️ ▶️ Marco, John they

⏹️ ▶️ Marco would just dictate that and then two manufacturers would sign up and no one else would. Heck, maybe that’s

⏹️ ▶️ Marco why we haven’t heard about iOS in the car for almost a year. Maybe their original plan was to dictate that and they

⏹️ ▶️ Marco couldn’t get enough

⏹️ ▶️ John support. They’ve been slowly backsliding. Fine, resistive touchscreens are in. Fine, you can use a job job. Fine,

⏹️ ▶️ John we’ll put the home button on the screen since you guys can’t find a spot for it on your dashboards. Not going to change your

⏹️ ▶️ John dashboards for our UI. And they were probably all saying, we also want to be able to integrate the same way with

⏹️ ▶️ John Android. So nothing you do can preclude someone plugging in their Android phone to do whatever the hell they’re going to do

⏹️ ▶️ John for that.

⏹️ ▶️ Marco Right, exactly. But yeah, I think the new stuff in 7.1,

⏹️ ▶️ Marco it doesn’t say it’s for CarPlay, and it doesn’t say much of anything actually. There’s not a lot of

⏹️ ▶️ Marco documentation for it, but the new stuff in 7.1 sure looks like this is what it’s for,

⏹️ ▶️ Marco and it’s a way to create a hierarchy of menus for things that could be music or could be

⏹️ ▶️ Marco anything. So that would mean that both Overcast and FastText

⏹️ ▶️ Marco would in theory work over CarPlay. And whether it’s integrated with Siri is

⏹️ ▶️ Marco a different story, and it could be, it might not be, it might be limited, who knows. But

⏹️ ▶️ Marco that’s a different story entirely.

⏹️ ▶️ Casey Yeah, I’m very interested to see whether they do something a

⏹️ ▶️ Casey la, you know, BMW’s Connected Apps, where you have to be a blessed partner

⏹️ ▶️ Casey in order to get access. We’ll see. It’ll be interesting.

⏹️ ▶️ John All right, it’s getting long. Titles.

⏹️ ▶️ Marco Man, this Mac Pro is good.

⏹️ ▶️ John Save it for the next show. Now you get to suffer, now you get to hold back and we’ll wait until next week you tell us

⏹️ ▶️ Marco about it. Well the funny thing is there’s not that much to say about it really. Don’t no, don’t

⏹️ ▶️ Marco go there. This is going to be a short topic. Don’t go there. The biggest thing I noticed so far,

⏹️ ▶️ Marco it is noticeably faster, not by like an earth shaking amount because

⏹️ ▶️ Marco what I had before was already fast, but it is noticeably faster, the IO is definitely faster.

⏹️ ▶️ Marco What is most noticeable by far, besides how cool it looks, is how much quieter it is.

⏹️ ▶️ Marco I mean, that’s like, it’s shocking how quiet this thing is. And I’ve always been

⏹️ ▶️ Marco of the opinion that the Mac Pros were always pretty quiet. You know, compared to what they were doing, compared to any other

⏹️ ▶️ Marco tower PCs that you would have, they were always pretty quiet. But now that I have

⏹️ ▶️ Marco this in the same room, and then across the room I still have TIFF’s old Mac Pro, it’s a big,

⏹️ ▶️ Marco big difference in noise. And John, if you end up getting one of these things, which you probably won’t and probably shouldn’t but if you do

⏹️ ▶️ Marco end up getting one of these things that I think is what you will notice first it just so

⏹️ ▶️ Marco it’s such a big difference

⏹️ ▶️ John I’ll get one eventually I guess assuming this form factor lives as long as a cheese grater inevitably I’ll eventually get one yes I’m

⏹️ ▶️ John looking forward to that that and the size like seeing it there on your desk like next to your water glass practically being the size of your water

⏹️ ▶️ John glass like that’s just going to be such I mean I’ll have more leg room uh presumably there’ll be fewer cables

⏹️ ▶️ John draped from the top to the bottom of my desk you know it’ll be nice

⏹️ ▶️ John yeah

⏹️ ▶️ Marco it is really cool

⏹️ ▶️ Casey so

⏹️ ▶️ Marco titles and i’m actually i’m not touching the case because i i’ve seen pictures online of people who have like you know they’re

⏹️ ▶️ Marco covered in fingerprints so i pick it up by the lip how you’re supposed to from the top

⏹️ ▶️ Marco and i set it all up i didn’t touch any part of the case except the very lip part and i wiped

⏹️ ▶️ Marco that off with a microfiber cloth after i was done

⏹️ ▶️ John listen to that do you hear that sustain but you would if it was playing you don’t get get that reference.

⏹️ ▶️ John Never mind. Titles. Titles! I know this is one of my

⏹️ ▶️ John suggestions, but I kind of like it because who suggested it? It was Dave, who stinks. It was

⏹️ ▶️ John suggested by underscore Darren Smith. I didn’t mean that to reference him, but now that I think about it, it’s funny.

⏹️ ▶️ John And I think that’s a title that will be difficult to guess. Well, I guess if you know the Software Mythology episode,

⏹️ ▶️ John you can guess. But I find that one funny. I didn’t get it. Someone suggested Hell

⏹️ ▶️ John is Other People. I always say, Hell is other people’s code. Like that’s that’s why I always amazed

⏹️ ▶️ John when someone buys a software product like Daniel Jalcud bought MarsEdit and people buy like

⏹️ ▶️ John other apps that companies don’t want anymore. I’m like that’s like my worst nightmare. Like getting someone else’s

⏹️ ▶️ John pile of code dumped onto me right? Even if I got to see it beforehand it would be like

⏹️ ▶️ John you know here you go you paid a lot of money for this hope you can make a good go of it

⏹️ ▶️ John hope it’s not too crazy if it came with the other person and they were my slave for the rest of their life

⏹️ ▶️ John and they’re like, What did you mean by this? What are you doing? Like, what is the purpose of this class? Describe to me. You

⏹️ ▶️ John know, and then if they didn’t know, I could just beat them. You know, so you never thought about what the purpose of this class was, did you? It just does stuff.