DrupalEasy Podcast S14E6 - Ryan Price - How to start a Drupal project the right way
Transcript
[0:00] Music.
[0:10] Hey, now welcome back to the drupal Easy podcast, my name is still mike Yellow and this is the last episode of season 14, so this is episode six.
After this, we're gonna take a few months off, we're gonna get our ducks in a row, we're going to get season 15 all planned out and then we'll come back strong with a new set of episodes for season 15.
So this episode concludes season 14, which is themed as a how to series of episodes where we've, each episode so far, we've learned how to do something and this episode is gonna be no different,
when we talk about our oldest or one of our oldest drupal friends, Ryan price on how to start a drupal project the right way.
So talking to Ryan is always fun and educational, so we'll get to that in a second, but before we do let me tell you about drupal easies long form training courses.
Now, our beginner focused classes called drupal career online,
that's 12 weeks long, twice a week, office hours,
and a whole lot of other benefits of the drupal Easy learning community that begins on february 13th if you want to learn more about it, One of the best ways to do that is to attend one of our upcoming free taste of drupal webinars,
these are one hour long and they are basically designed to answer all of your questions about drupal career online.
[1:37] Next we have our newest long form course called professional monitor development.
The full version is over 90 hours of curriculum, but it's already started lucky for you, the light version begins february 14th, it cuts out a few topics, it's a few weeks shorter.
Um and it will save you a few bucks as well. So check that out. If you're interested in hopping into professional module development, you can learn more about that at drupal dot com slash P. M. D.
[2:13] Welcome back Ryan to the drupal podcast. Um I believe we've had you on the podcast before just just a few times, just maybe like two or 200 or so times, something like that.
[2:26] Yeah, so welcome to the new format we're calling this season 14. Do you know why I'm calling this season 14 Because it's better than season 13.
Well because this is the 14th, it's been 14 years since we started the podcast.
14 years since the old the old days of, we didn't even have a drupal meet up in Florida in the whole state of Florida and and now look at where we are,
look at where we are, exactly the greatest drupal camp.
There is exists in Florida.
[2:59] I mean that's um yeah, just put that on the business cards.
[3:03] Yeah, I'm sure herschel already has four or five sparkly stickers that already say that release.
So alright, hey, let's let's talk about how to start,
a drupal project the right way I know that you will have thoughts about this and I have thoughts about this and so let's just dive right into it.
Well, so 11 thing I can say about like starting a drupal project is the place where I'm sitting right now professionally,
has me answered that question in a certain way that maybe I wouldn't have a few years ago, so,
I actually work at a drupal agency and we have a tool that is an open source tool but people that are on our team developed that tool, it's called Doxil.
Um so one of the first things I think about is is there is there a Doxil file for this project?
And I think for you, maybe that would be something like is there a DDT file for this project?
But I'm telling you right now there isn't because this is a brand new project green?
Yes, so one of the first things that I think about is which way that am I going to host this on my laptop or am I going to host this on some sort of a development server, like that's.
[4:22] For me, that's one of the first things I think about because if I don't have a working site, if I don't have a place where I can like import export config save to get, then I can't do any of the rest of this stuff. Right?
[4:36] So it sounds like you're saying that there are some projects that you aren't developing locally.
[4:42] Um it is possible, it's not very common, but like um not every single project that I work on, do I need to have a local copy of it?
I just sort of need to like go check in on something, but if it's like if it's a brand new project, somebody, somebody is going to set up a local environment for this.
Okay, so let's call that step one, set up a local environment for the project, yep, is that fair?
That's step one or is there another step one? Maybe that Step two.
[5:13] I would, I would also hope that we knew like where are we going to eventually be hosting this?
Because part of that like setting up the local environment can sometimes also be like download your Pantheon Secret key or your acquia, you know, credentials and like do the little like terminus thing or the A. C.
[5:33] A q cli I forget what the actual command is, but like the little,
thing, images that you might have to do there and if it's not either of those, um, just like figuring out,
is there anything that you can do with your web host so that when you eventually want to download your database and suck it back into your local that,
it will be easier to do that at some point.
[5:57] If there's anything to do at this stage, if there's anything you definitely know about it, I like to do it now. Right.
Right. So maybe step one is, you know, if possible, determine hosting because that is going to inform how you're going to set up the code base initially.
Right? Like for example, Pantheon wants you to put things in the web folder.
Some places might want to put them in the public folder, the public underscore html folder like right.
Some of those really basic things like your your hosting provider may have an opinion about they may not.
Right, what else is like up there the first, you know, the first day on a new project, what else are you thinking about composer, create project, the composer template that you're starting with?
Yeah, exactly that. So I think lately I've pretty much always used the drupal recommended setup.
There's very few cases when you really need to do the the drupal forget what it's called, but the like development version, like unless you're running like drupal 10 beta where you need to do something like that,
And even maybe by the time this comes out will drupal 10 Bay to be a thing?
Uh, There is, I mean like if you're hosting on Pantheon and you're using their like integrated composer, you actually start the site in the Pantheon environment, right?
Yeah. You have to start it on Pantheon and then download the get in order to get there sort of like pre setup file stuff.
[7:26] Yeah. All right, so you have the code base, let's say you've determined the hosting, you've you've you've got the composer create project stuff going, you've decided your local development environment, whether it's, you know.
[7:41] Orlando something else you install,
you know, do a drupal install somewhere either remotely or you do it on your local um and now you're staring at like, you know, the installation screen, do you start mr price,
do you start with a standard install or the minimal install?
[8:02] Pretty typically standard. Yeah, I don't really have a lot of times where I'm like, no, I don't want the node module turned on or something like that, but you do have to like, you have to turn off like comments right?
I think that's one of the ones that still kind of like a questionable for me is like contact forms, comments are turned on by default. Contacts are turned on by default, but like, most of the other defaults, I'm happy to have.
Alright, interesting, interesting, going with standard. Alright. And then what? So you get it all installed, what's next?
Probably very, very first one is admin toolbar probably also, I would say Devil is going to be in there as well. Like, do I always need to have Devil?
No, but a lot of projects that I work on, we will eventually write custom code.
So like, let's get it in addition to Devil is um the PHP coding style and PHP code beautify and fixer.
So like, I think, I think when you download Devil, it's going to include those things but.
[9:17] What I what I do know is I will set those up early PHP CSS and PHP CBf,
to make sure that when I want to do something where I want to check the code style that I have them available to me in that environment,
on one project I used recently there was a tool that we use that was called Grumpy PHP which kind of like includes a bunch of these different tools together.
But the two ones that I really pay attention to the most is PHP CS, which is coding style and PHP C b f, which is the code beautify and fixer.
So if PHP CS can find the issue then PHP CBf can fix the issues that are obvious. The ones that are like automated can can be fixed.
And in one of the reasons why you need to have some of the drupal specific tools is PHP CS doesn't know what drupal coding style is by default, it doesn't know how to like fix things to look like the drupal coding style by default.
[10:19] But it's nice to have an opinion.
So I like the drupal one, just fine and if I do end up having to put something into a contributed module then,
I know that I'm going to be doing it in the drupal style with two spaces with,
else and if being one word a space after an if statement, you know spaces between a string the dot to concatenate things, things like that.
So All right, So we have admin toolbar devil are PHP tools, anything else that kind of goes in that first pass that first day?
[10:58] I mean the very first day I might just then start thinking about some other things, but pretty soon I'm going to start thinking about search engine optimization. So things like path auto?
The redirect module and the meta tech module will almost always go into my, you know, sort of like standard toolkit and then there's very few sites that I work on when we don't need some sort of a form.
So typically that is a web form unless the client has a specific tool that they don't need web form, um, some other sort of third party form plug in.
But usually we're putting in web form for something,
because even sites that don't have any logged in user traffic, they're gonna have a form somewhere, contact us, contact us about this particular, you know, file that you want to download or hey, I just finished watching the video.
Now, I want to find out more who do I get in touch with?
There's always, if your website is not collecting information, I don't really know what is your website doing at some point.
Somebody needs to get that that form and say, I'm ready to make a buying decision.
[12:10] All right. So you've got like your basic modules installed, maybe enabled, you've kind of got the, you know, the initial drupal core code base.
Now it's time to set up your repository and I think I'm mainly talking about your, your dot get ignored.
So what would you recommend for folks who are building are starting with a brand new project.
Are there just you look at more of just like the standard stuff if you're committing dependencies, are not committing dependencies? Or is there any other kind of tips and tricks with setting up to get ignored that, that you've learned over the years?
[12:50] Yeah, I mean, I think like the nice thing is as we have evolved the,
sort of drupal core recommended and like, you know, sort of like later stage drupal really do come with a nice default for a lot of things that you would want to do in your GIT ignore file again.
Like your hosting provider may may publish either,
a sample, get ignored or a documentation page where they will also say, hey, we recommend that you include the following things and you get ignored file or structure directories in a certain way.
But for me, I don't like to have to check in drupal core contributed modules and the vendor folder and actually checking in the vendor folder.
I was talking to somebody recently and they were having a problem where they weren't able to download like a new version of a module and they couldn't figure out why.
And I said delete your vendor folder and then after they deleted their vendor folder, it worked because there's a couple of files in that vendor folder that are like.
[13:54] They're not as hard and fast as the composer lock file, but like you definitely want to hang onto that Composer lock file.
But then there's some other files that happened in the, in the vendor folder that composer generates that if you don't know they're there and you might want to clear them out sometimes,
then you can get stuck and they could be dependent on the hardware.
Yeah, from they were created as well.
Right, which version of PHP are you on and you know, what's your local environment and some other things like that? Like you don't really want to keep anything in that vendor folder.
You treat it like you can remove everything in that folder and re download at all.
So let me get your opinion on something that I've been asked about a lot scaffolding files.
Do you consider those? I mean they are technically part of drupal core, but do you generally add those to the dot get ignored or do you generally check those in to the repo?
Are you talking about like the read me file and the maintainers text and that kind of stuff.
Index dot PHP update dot PHP robots. Ht access all that, all the drupal core files that exist outside of the core directory.
So I would say robots and hT access more typically, yes, we are checking those in but.
[15:08] The rest you add to get ignore, I would say yeah, you don't actually like if you expose maintainers dot text and for some reason you're hosting is set up to allow people to see text files.
Actually, there is a very recent thing that showed up on online the Tesla Motors website you could see there there, get ignored file, was it?
And so um, you know, some snoopers coming by and maybe they didn't know this was a drupal site, it's pretty easy to tell that it was a drupal site, but maybe there's some sort of a hint in there that,
that you originally created this during the drupal 8.2 days and maybe you've upgraded since then, but maybe you haven't.
Um, I actually came across a site that was on drupal 8.2, I think that was a publicly available website that somebody wasn't updating and we know there's certain,
you know vulnerabilities that exist there, like maybe not easy to exploit unless you have a logged in user etcetera etcetera, but the fewer hints that you can give out to people, exactly what version of drupal you're running exactly what version of what module you're running generally is a good idea.
So something like a maintainers dot text, if that ends up being readable by your server, can give away a lot.
Right. So I actually I, the answer I normally give is I take a two pronged approach to this.
[16:34] Number one, I use the scaffolding plug in the drupal core scaffolding plug in settings to not even, you know, generate stuff like maintainers dot txt.
It's very easy to add, you have to add some some settings in the extras section of your composer at Jason file and you can basically tell the scaffolding plug in,
you know, I don't need maintainers, I don't need this file, I don't need that one so you can make it so that you know, those files never end up,
outside of the core directory and granted yes, they are buried in the core directory and that assets directory, but they're not in their usual place.
And then I generally will add everything else to the dot get ignore,
unless it's modified, customized and the two files that you mentioned are those,
you know, it's normally robots dot txt and also sometimes hT access for for for my clients but that's normally like a day one task for me is get that stuff set up and get my repository.
So it's nice and clean and and stuff like that.
[17:41] How about like these these day one task. How about the Common Rookie Mistakes?
Well I would say um or even things that are like they seem confusing when you're first getting going is like you can set up in your settings dot PHP.
The sort of like uh I forget what the specific name of it is but the allowed domains, right? Like the domain name where you expect this site to show up, if you only put in your main like dot com domain in there is going to break stuff.
So you may also want to be very quickly setting up a local settings PHP that you don't check in, right, that you're going to get ignored that will only exist on your laptop.
And then if for me any time that I go ahead and do something like that, then I will usually create a folder that is outside the webroot. But somewhere in my project where I have sort of like a clean copy of that file. Right?
[18:37] So let's say that my local site is you know, drupal dot com but I have a dev version which is drupal easy dot de de vore.
Drupal easy dot Doxil. Something along those lines, you know what I mean?
I can keep that in a local file. So if for some reason I have to,
give somebody else a copy of the code base, I can include some instructions,
in the readme a file or maybe even as a script that goes along with my,
my local doctor setup that will take that file copied into the correct directory,
so that their local laptop response to the correct domain name and doesn't give weird errors on the screen when somebody's trying to access the deficit, I wouldn't qualify.
That's not so much a Ricky mistake.
That's more of just like a.
[19:25] A good teammate type of situation um you know and making sure that you don't check in any of your local database credentials into the settings that PHP file.
I think that's a good one gets up to the server and now maybe it'll get confused depending on if you have set it up correctly with your hosting provider.
[19:50] Again, some of this stuff is kind of hosting provider specific but how about other things that you you know, and I think you've had a lot of them because I know most of the projects you work on our obviously team projects.
But yeah, I would even say like something simple like setting up the site name or the administrator email address.
Like it's one of those things when you're going through installed you're like yeah yeah yeah whatever.
But if you never kind of go back and go back to that like basic setting page and just be like site name and email address or user one email address that can really come back like two or three months later.
And you're like you've done all this stuff and then all of a sudden somebody comes by and like what's wrong with this?
And you know, you have to have that egg on face moment of like, well I didn't do this on the very first day because I was in a hurry or you know, just forgot about it or whatever.
So that could be one to check. I've actually been on projects with other folks um where none of us know the user I.
D. One usually well usually but password so we always just copy the data based on the local and use, you know, dress U. L. I.
And and reset it every time. I think the day the common rookie mistake is setting it that U. I. D. Password to something like admin.
[21:12] Oh yeah do not set it to something that can be found in a password dictionary.
Yeah even if it's like a password generator, even if you think it's only on your local um you know unless it's like a throwaway site for yourself, give it a real password for sure.
Absoluteal, stuff like that can slip through the cracks. I saw something recently that like if you have a password that is shorter than 12 characters you might as well not even have a password,
it's so depressing.
[21:45] But I think once you get up to around like 21-24 characters and you have to have like not just you know like all lowercase letters but like some lowercase letters, uppercase letters whatever.
Then you know it starts to be a lot harder to crack unless it's somehow common like monkey monkey one like it doesn't matter what,
what sort of combination of whatever like don't use monkey monkey one as your admin password doesn't matter how many letters and underscores and characters and whatever used to get in there, it's probably everybody's thought of every possible version of that.
But the thing where you can put three words together so like you know snail bear and canoe which is none of those is in my password but something like that.
And then you stick one special character in there and maybe one capital letter and one number like that gets to be essentially unbreakable you know before the heat death of the universe.
So your password generator can generate something like that and that's something you can easily read to someone over the phone. So it doesn't need to be like uppercase lowercase special character dollars, whatever.
It can just be something kind of simple. But even your own password stuff like that.
I use a password generator for everything and it makes my family mental when they need like the netflix password.
I'm like here you go.
[23:12] It's like this 30 character string of random letters, numbers punctuation.
[23:19] But you know the ones the ones where you basically just have like three words that you could read out loud is as long as you don't just use the words themselves, like you can get really far with them but they don't feel secure to me.
[23:31] I don't feel I know they probably are, but they just don't feel right. Anyway, let's climb out of that rabbit hole real quick.
So I've talked to a lot of the technical things you do to start a project, right?
But I know you have feelings about this this rhyme.
So how about more? Just from a working with the client,
looking at the big picture of their project, Like what are some things that you want to make sure in place before you start the actual technical side of it?
Right? And and for me, like I start asking these questions before anybody actually signs a contract.
So like this is a really big part of my job, me specifically that.
[24:16] I get involved and I say, okay, what problem are you trying to solve by having this website and how are you going to know if this website is successful?
And this can be really hard questions to answer. And like it seems like what, what do you mean? What is the answer to this question?
We need to tell people about our stuff. But like if you don't know.
[24:41] Whether or not your project that you just spent all this time and potentially money on is doing what you expected it to be?
Like, we need we need to do more well more of what, where are you now? And how will you, will you be happy if you get 5% more?
10% more? What's what is considered successful for you or this is too slow?
We needed to be faster. How much faster, you know, is there a is there a point when you will say, oh we've, we've gotten fast enough, you know, so there's like things that you need to decide on and, and beyond that, what are we measuring?
Exactly? And you know, people have gotten really kind of skipped out about,
analytics and you're tracking me, but like at some other level you kind of need to be able to say from the business perspective like yeah, it was worth it to do this project.
So it does, it does make sense to think about these things.
And then for me it's like what is the most important problem that this website is solving? So let's say that it's Airbnb right?
[25:48] Airbnb is the most important problem they're trying to solve is which city should I stay in?
No, right, you generally know where you want to go before you hit a site like that.
You say I need to go to Seattle, I need to go to Athens Georgia, right, wherever it happens to be.
I'm going to be there from this day to this day.
You know, those things sort of before you arrive at the site.
So they're not trying to solve that problem for you now, they,
Airbnb specifically, like they do kind of have sort of like browse and discover feature, but that wasn't the first thing they built, the first, the very first thing they built was I'm going to this city on this day and I need a place to stay.
[26:29] And how is the fastest that we can solve that problem for you so that you will give us your money and and then be happy that you did so right everything else is just a funnel to that point.
Exactly like everything else is just wrapping paper.
Yeah exactly. So if you can do that thing people will throw around this word M. V. P.
And it can mean a lot of things to a lot of people um the minimum viable product but essentially like if your website cannot do that one thing,
then don't bother right like figure out what that thing is and put a giant flag and say before we really sort out anything else we need to figure out how to do that.
Like you can talk all day long about I'm gonna use some old references here.
We need a flash player and we need some you know video and beds and we need some sliders and you know we need to make everything mobile friendly and accessible and like yes you do,
but you got to figure out what's the critical path for your customer to be able to go and do something.
And to me the content type that I build first the ticket that I assign first um after get set up with your local environment is always going to be something on that critical path.
[27:50] And on the projects where you really need so many other things in order to complete the critical path.
Those ones can feel really really frustrating until you can get,
all of those ducks in a row like oh well we're waiting on the outside vendor to give us the database so that we can do the thing with the other thing and,
the legacy system hasn't been upgraded to the java virtual machine of the newest thing yet and the oracle database is down.
And those are the ones that I I really dread sometimes.
But also some of the ones that present some of the most interesting challenges is like how can I get as much of that funnel sorted out on my end. So that all I'm doing is waiting for someone else.
[28:36] So, so figuring out those most important things like the blog posts are usually not the most important things unless it's a news site, right?
The podcast episodes as much as I love podcasting and listening to podcasts, unless the podcast is the product, it's usually more of a part of the wrapping paper. Really right. Like on on drupal easy.
I would say the thing that you're hoping that people will get is to sign up for a class.
Right? The thing that you're hoping that people will get is to download one of your, your books, you know, reading a blog post and then getting to the end of the blog post and going, all right, this is neat, what else can I see that's here?
You know, it's all part of the funnel. So II.
[29:22] The I don't even know if the question that I have here, but sometimes when you're in a team environment working for an agency, you're not in a position to be asking those questions though, right?
Like you might be the person starting the project from a code standpoint, but you may not be the one who has the and I'll just say authority to actually have that conversation with the client.
[29:51] So how do you you know, how do you solve for that when Right.
I mean if if somebody starts telling you like the first thing we're going to build is the home page.
Unless it's a very highly specific sort of like a landing page type of a site.
I think they're probably doing it wrong.
[30:11] You know, I mean at some level right to talk about like how do we measure success of the project for some people, they cannot even start to think about that until they can actually see a whole complete page.
So I understand that desire. And so some of it really has to come down to like training of the client on behalf of whoever you're interfacing.
You know, usually if you're not the one who gets to make that decision, then there's probably someone in between you and the client.
And so that project manager, that account manager, that salesperson like that's their job to set the expectation with the client in the first place.
But if somebody tells you work on the home page first, you might have other issues.
But to go back to I would like to sort of like call back to something we said earlier, like, what are some of the first contributors unsolved on my list is web form, right?
Because a lot of sites, the point of conversion is filling out that form right at the end of the funnel, is that point?
Like that's as far as the website can take you in a lot of cases,
unless it's an e commerce site or unless, you know, it's a membership driven site or something along those lines, where once you become a member then you can be doing some other activity.
[31:23] It seems to me that like creating your first post on a membership driven site,
could be considered a conversion, like setting up an account,
you may not actually be committed yet, but once you create a comment, once you create a new blog post or upload a new video or share a story or whatever it is, like, then you can consider yourself to be finished.
So. But yeah, from from when you're trying to like work with the client and somebody's asked you to work on a thing that you feel like is unimportant as the first thing.
Sometimes there is a reason for that. Sometimes there is a plan for that, sometimes it's because well we are waiting for this other thing to happen, but it should,
should at least be like a little bit of a flag in your brain, if if somebody says, okay, the way that you buy things on this site is X.
And you don't have to build that X first, unless there is some mitigating circumstance.
[32:17] Alright, let's um let's start to wrap things up here. Do you have any horror stories?
[32:24] About setting up a project or where you came onto a project that already existed.
That was set up really well, I would say a lot of the ones that I can think of are where there's no instructions.
Right. So pretty early on in my setup is also writing a read me file, even for a project that I,
set up for myself, it's a personal project and I don't give myself a read me file then I'm going to be mad at myself later.
Why don't we do this right down at least like five notes about what what was set up and so if somebody else doesn't do that for me, I have the same thought.
I'm like if I was doing this for you and I didn't give you this file, I would expect you to give me an angry email and be like, hey, I don't know what's step one, step two and step three, you should at least say all right.
You know, I'm going to use the Doxil command because those are the ones that are fresh in my brain.
Fin in it. Right. Fin db import and thin start.
I should at least tell you that you need those three commands. You need to put your database into this directory and then run this command.
And if you can't tell me those things and expect for the site to show up at this U. R. L.
Just put those things into a little tiny text file.
[33:47] Or if your site is expecting to be set up at a very particular U R. L.
And I don't know what that is and I try to visit the site,
because I just set it up how I think it should be set up and all of a sudden I get redirected off to some other place on the internet and then I need a VPN access to get there like that to me is considered a failure.
[34:09] Alright. That those are those are those are good answers there. I like those. All right, let's go to the final question. You ready for the final question.
[34:18] If you could go back in time to let's say your first few months of using drupal.
[34:27] And you could whisper in young Ryan's ear some sage words of advice.
[34:35] What would they be.
[34:39] If this is a brand new site and you have never ever installed drupal before.
Well, it doesn't have to be related to, but that was that was for me.
Okay, I'm sorry if this is the first time you're setting up this site, do not be afraid to start over.
[34:59] That's good. Yeah, I like that. Delete your database. Delete your Config files and reinstall the thing you've already done it once.
So the second time you do it will not take as long you've gone down a bunch of rabbit holes I would say drupal eight and nine and I guess 10 now make this a less of a problem because in older versions of drupal,
used to be like leftover database tables for years and years and years, you would go back and be like this, what is this database table doing in my database?
What is this Config file doing over here? Like where did all this junk come from now?
Maybe you still have have those like module files will be in there if you didn't take them out of the composer. So like clean up after yourself and don't be afraid to start over.
If you uninstall the module, remove it from your composer file, it doesn't take but like an extra one minute 30 seconds to just go back and clean up like and that's that's the thing I could say to myself in a lot of different professional arenas is like.
[35:58] You may you may be going down a particular path, right?
Don't leave 35 photo shop players in that file that you're never ever going to need, save a copy and call it junk.
I don't care what you call it, but like, you know this is project 15 junk versus project 15.
The one we're actually gonna use just just start over.
It's okay tabula rasa clean the slate.
That's really that's really good because I when I thought about this question for you, I thought to myself,
I don't even know how I would answer this, but your answers,
you know, I really like your answer, because that's actually one of the things that I teach in our beginner class is, you know, I have students spin up new sites almost weekly on their local,
and as we do that, you know, I explained to them that, you know, everything on your personal machine, your laptop, you it should be disposable.
[36:58] You should be able to throw out that client, drag that client site to the trash and recreate it and not be afraid of doing that.
[37:08] Yeah, I used to tell people from, from a podcasting perspective, like if you can get to episode six,
of your podcast, you should consider that when you've actually started it because putting out one of something.
I'm not saying that it's not hard because one of the hardest things to do is to get from 0 to 1, but once you have gotten past that one, right?
And I think a lot of people have the patience and the willpower, Especially if it's part of their job to get to one.
[37:43] But the patients and the willpower to get to five or six, there's a different thing that happens in your brain when you go, I can lift £250.01 time too.
I can lift £150.06 times.
It's a very different activity and I think the latter gives you more confidence.
Exactly that. Exactly that.
[38:10] Alright, well, always great catching up with you whether it's podcasting or not, that's a good excuse to talk to you and hear your voice.
Um Yeah, so thanks for joining me, Ryan.
[38:33] I can't wait to hear it. Tell me I have been a really big fan of this, this particular book, there's kind of two that are kind of related,
um I kind of think that one of them is slightly better than the other, so it's called the phoenix project and the unicorn project, both of them, if you are actually in the I.
T. Industry are potentially very stressful.
They're sort of like when you read like a murder mystery file and you are sort of like putting yourself in the place of the person who was all the bad things were happening too,
or as you're discovering all the weird bad things that have happened to someone, like some people get really sort of like emotionally attached to the story.
So these things are written, it's a novel, so it's,
it's meant to be like on day one, all this bad stuff happened and I'm gonna tell you a lot of bad stuff happened on day one, but the reason why all that bad stuff happened is because,
it sort of has to be like by the middle of the of the project, they've sort of figured out how to deal with some of that bad stuff, but then,
they realized like in trying to solve some of their initial problems,
they've uncovered new problems they never even knew existed by sort of like entering into this system where they're trying to apply,
devops practices and agile practices to something, an organization that was really very highly traditional and you also have to remember that.
[39:56] Um the phoenix project, I think it was written in 2012.
So some of the stuff in there feels a little bit out of date.
And then when you read the unicorn project, you realize like, well now they acknowledge that,
something like Uber exists and, and um, some other, like, sort of social media things are just more commonplace and, and etcetera etcetera, etcetera, but um.
Highly recommended reading um will that teach you a lot about starting projects?
No, because a lot of what they're doing is they're entering into like existing projects or like a project that is already three years overdue and they're trying to figure out how to save this thing.
[40:36] But it's a very interesting set of books there. Um I assume it's the same author, same author, I believe it's Gene kim. If I'm getting it right, you can get them in paperback, you can get them um an e book, you can get them as an audio book.
I've read it as an audio book more than once and I recommended it to many, many people. Yeah.
You know, this topic, starting a project is uh it's so important, at least in my head because I know that I have,
you know, in the past started a project, made a mistake,
early that maybe not right the time and it was a mistake, but maybe a month later I looked back and said, oh, I should have did something differently and not gone back and corrected it and then regretted it for years after every time I had to work on that project.
So I think starting it early, I mean starting starting a project the right way early and not being afraid of going back like you said, Ryan and fixing those mistakes.
[41:40] And taking the time to fix those early mistakes.
I think it's for me, I know like I have to do that now.
Like I can't, I almost become like,
obsessed with fixing stuff that I know is not right,
in the past, in the recent past before moving forward, just because I know myself and how much I would hate it if I had to stare at that particular thing through the lifetime of the project.
[42:06] If I, if I could have like a a part B of my one thing to whisper to myself that it would be,
do not be afraid to go to someone else and just ask for help, just say, hey person at my company person in my user group person on slack.
I have tried these three things that I think are supposed to do this.
None of them appears to be working a lot of times when you,
are just getting started with something, it can feel really daunting because there's no product in front of you and getting that product in front of you before you get to the fifth one or the sixth one.
If you've never even gotten the first one because you keep getting these weird errors and just ask for help,
go do some googling, you know, go watch some videos, go listen to some podcasts like take a break, get offline and go find a person.
[43:08] I guess sometimes you have to find the person online, but like get away from the command line, get away from the, from the darker window, whatever it happens to be and and try to explain your problem to someone else.
And sometimes the simple act of explaining helps.
Sometimes you really need that other person's experience to say,
Have you thought about this thing that the other person doesn't even need to know anything about drupal sometimes just a more experienced person will be able to help you diagnose the problem because they've dealt with something similar before, agreed,
it is, it is a technique that I use very often and one of the main reasons why I appreciate having a manager at my work, being part of like that hierarchy structure.
You sometimes can wonder like what are these people for? It turns out there they're typically at least as experience if not more experienced than you and you can describe a problem to them and they'll go like the problem that you're having isn't the problem that you think you're having.
Let me tell you about the problem that you're having and it can really make your day that much better your week, your month, your, you know year that much better by just saying this is not that problem anymore.
Alrighty well once again, thank you very much for your time, Ryan, appreciate it.
Um, hopefully people will learn something.
[44:30] Send us, send us, send us a little note on the social media I would say twitter, but I don't know about twitter anymore.
[44:39] I'm on, I'm on drupal slack, Find me on drupal slack as a Liberator.
[44:41] Music.