Hi, I'm your host Matt Stauffer, and this episode 101 of The Five Minute Geek Show, a weekly show about development and everything around it. It's one topic per episode about front-end, back-end, mobile, project management, design, entrepreneurship, whatever. If it's geeky, it fits.

Today, we're going to be talking about your top idea. I've talked about it a little bit in the past, but essentially, at any given moment, there's usually one primary thing that your brain returns to you when it gives a moment to rest. I often have about seven of these, which drives my wife nuts. We've talked often about the fact that I need to have less commitments. Not just because I need to be spending less time doing things, but because I need spaces for my brain to not only rest and have moments where I think about things family life related, not just all these kind of entrepreneurial and work ideas that I'm doing.

So, essentially, when you have nothing else to do. When you're stuck in traffic, or when you are using the restroom, or showering, or taking a walk or something like that, your brain kind of rolls on to things. The things that your brain roll onto, often those are kind of like ... People frequently know this, are the things that ... We get some really great thinking done then, right? You've got stuck on something at work, and you go home and you sleep on it, and you come back and you have an answer. Or you go, you take a 15 minute walk.

Sometimes you take a 15 minute walk, your brain just needs to re-orient itself. But sometimes ... For example, I'll often have an idea for an application or for a software of service, or for a project or a book or a blog post or a video. I'll have the idea long before I create the thing. I had an idea for a new product ... Not a product but that open-source thing that I want to do, like 11 months ago or something. Every once a while, it pops into my brain. It hasn't been the top of my mind, but it pops into my brain for a little bit. I think about it, and I think about one aspect of it, one nuance. Well, how would I get these people to carry the content here? Or, what would motivate somebody to want to carry the content here versus somewhere else? Or, how would I handle the fact that there's this type of data coming in there, but that type of data coming in there?

So, it pops up every once in a while, and I kind of think about it for a little bit, and the thinking that I do there kind of moves into the storehouse of answers that I've come up with for those things. So, every single time I've ever created something of significance size, there's been years or at least many months of thinking about the thing prior to the point where I actually get started.

So this thing, I bought a domain name for it three weeks ago, and I told everybody at Titan about it three weeks ago, but I've been thinking about the thing for months. I've been thinking about it even more frequently since then. It's nearly at the top idea of my mind kind of thing where most of my free time, I think, "Well, okay, here's another thing I need to think about it." Then I think through it for a while, while I'm putting my daughter to sleep, or something like that.

So it's interesting that there's not just this idea of the top idea in your mind. I've talked often with people about this top idea in your mind thing, Paul Graham's somebody who wrote something about it recently. It's not just the fact that you have one, which of course is an important conversation, because if you've never thought through these things, some of these important things about that are ... Like, if you're trying to split your job responsibility between multiple roles, there may be certain roles that never get to be the top idea in your brain, which means they never get that kind of free time thinking or that free moment thinking or that extra brain power that allows you to power through some things that might not happen during your normal, actual application of the job.

Often I've told people who've wanted to do three things, I'm like, none of those three things are going to be done ... Or at least probably two of those three things are actually going to be done to a one-third attention level, because two of them are not going to be the forefront idea. So it's not even the time to spend on the thing, it's the time to spend thinking on the thing. So there's definitely things worth thinking about, just with regard to what is at the forefront of your mind.

But what I want to talk about is giving space for yourself to process through the thing over time. It's almost as if ... So, okay, we did a developer battle. I think I'm going to get to my point eventually here. We did developer battle just recently between two of our senior developers. It's their first time doing this thing, where for a very short period of time, you don't know what the task is going to be ahead of you until you actually start, and everybody's watching you. There's all sorts of pressures. There's the pressure of typing while people are watching you, trying to come up with answers in a short amount of time. But one of the things that Keith, who's one of our developers, mentioned was that when he normally codes, he stops and he thinks things through, and he plans them out before he codes. He finds that he really struggled during the battle because he didn't do that. So he didn't have the thinking done prior to doing the coding, so he was trying to think and code at the same time.

I think that's part of what it is here. For example, when I created Karani years ago, I'd had the idea in my head, and I actually even started writing some code for it several times. But what it really took was endless running. I hate running, but I do it because I try to stay healthy ... and endless running sessions where I'm seeing the same scenery pass by, and my brain just started wandering. I wandered to various use cases and features for Karani. I'd come back from my run and write some notes down. Or things where you wake up in the morning and you come up with a new idea. I think one of the benefits of Karani is that if I had taken Venture Capital, I didn't even know what it was at the time, and just had to build the whole thing, I really wouldn't have known what to build at first. It was the incremental building process of putting a little out there and then thinking on it.

Honestly, not having enough time to work on a thing gives you more brain power. I wonder if there's actually a value to a constraint where you don't get to do the thing yet, and you need to do a little bit of thinking, a little bit of time sitting on it, and allowing yourself those little kind of thinking moments before you do the thing.

It reminds me of a trip I took to Mexico City with a guy named Saul [inaudible 00:05:57] and you take two weeks there, and you're spending a whole bunch of time, American, middle-class, college educated kids, working with people in extreme poverty. What you want to do is you want to go in and fix things. That's what those types of trips are usually about. You go in and fix things, you feel better. He won't let you touch a thing for a least a week. First week, all you're allowed to do is learn and listen and get to know people. Only after you've had some time just kind of learning and listening and really hearing people and understanding a greater depth and nuance of their situation than I think would be normal for us to assume when you walk in with a broken roof. One, let me fix that roof.

Only after at least a week, at least half your time of really developing relationships with people and hearing them say what they want and seeing their situations, and knowing what other circumstances there are that may influence it, does it even allow you to have any part in actually making a change. It's the same kind of thing.

It can be headstrong. I had a thing recently where I felt very, very emotionally and passionately about a thing and wrote a big, long, kind of hairy email. I showed it to my partner Dan, and Dan said, "Okay, cool, why don't you just kind of sit on it a little bit." It's always a good reminder. You know, sit on a bit and see how you feel about in a little bit. With emotional things, it's because you want to get out of the emotion and make sure you're still happy with how you represented yourself.

But it's the same kind of thing, this, "Okay, great, that's what you've got, but give your brain space to stretch in different directions. To be in a different mood and look at it, to be at a different frame of thinking and look at it, to allow something to bubble up in response to something else you see. You see a Tweet, and you say, "Oh, you know what? That's one of the people I wanted to moderate the thing, and I just realized, why would they be motivated to use this thing?" I had not actually considered the motivation of the moderators, and so now I need to figure out what changes can I make to my overall structure that makes these moderators want to actually be participating in? Obviously, this is the thing that I've been thinking about over the last year. It's just these various things that pop up in response to other stimuli.

But if I had started building it the moment I had the idea, I wouldn't have had that kind of thinking process about the moderators. I just would've built it and would've said, "Okay, moderators, come in", and I never would've had that trigger to say, "Wait a minute, you gotta make sure this is actually valuable for them to be a part of it." So, I know that the thing about the actual tool I'm talking about is super abstract here, but I think the goal ... There's not even a lesson, there's not even a message. It's just think about the value that comes from having to wait.

There's value that comes from just letting your brain rest in the thing and stretch around the thing, and approach the thing from different angles, in different perspectives, before you actually get started on the thing. There may be formal ways to implement that, I'm not sure. But I don't know maybe I think that there's just some value for us to seeing value in that waiting in our work and in our processes.

So, I don't know. I hope that's good. I hope so. Thanks for listening to The Five Minute Geek Show. We're back at Five Minute Geek Show and Twitter number five.

FiveMinuteGeekShow.com, five. Subscribe to us at iTunes or RSS, if you like the show, share it with your friends, rate it in iTunes. Thanks! Till next time, Matt Stauffer, Five Minute Geek Show.

Hi, I'm your host Matt Stauffer and this is Episode 100. One, zero, zero. We've made it! I have not, I was going to say tweeted. I've not podcasted, I've hardly blogged, I thought I was back a couple months ago and then it turns out that babies don't like sleeping. Turns out, who knew? So finally back-ish, it's going to be a slow roll back--I'm not going to promise that I'm 100 percent, but I'm back enough to record Episode 100. Hurray, huzzah, there was much rejoicing. If I wasn't so lazy I'd put sound effects in here. People clapping and cheering.

The Five Minute Geek Show! it's a purportedly weekly show about development and everything around it. It's purportedly five minutes long. It's really whenever the heck I can get to it and turns out it's sometimes between five and ten minutes. It's one topic per episode, that's true. About front end, back end, mobile, project management, design, entrepreneurship, whatever. If it's geeky, it fits.

I'm glad to be semi back. My son is out of school, and all of a sudden my schedule is rearranged and I'm able to find pockets of time for podcasts and blogs now, so my goal is to get a podcast and a blog out this week. That's what I'm going to try and do.

So this week we're going to be talking about community. Capital C community. If you are not a PHP developer this will be a little bit less relevant. If you're not a developer, it will be even less relevant, but it'll touch on some things.

There is often a line that is repeated by various people within the PHP community that Laravel, the people in Laravel, the Laravel community, are elitist and that they encourage silos and that what they really needed to do (if they weren't pigeon holing themselves into just being Laravel developers) is be involved in the greater PHP community.

People, hoity toity, are proud of the fact that they are just a PHP developer, and they would not be so base as to identify with a particular framework. They say, well, I hope you don't put "Laravel developer" on your whatever. "Why wouldn't you just say PHP developer?" They'll point to the wonderful efforts of people like Cal Evans, and other wonderful human beings whom I love, who do great things to encourage the PHP community to have an identity. Every single time they say these things, I respond in the same ways, and they stop responding when they realize their argument is awful and then somebody else spouts the same crap a month later.

So! I'm going to say it out loud here. If you have the temptation to go ham on somebody because they consider themselves a WordPress developer, or a Symfony developer, or a Laravel developer, or whatever else developer because they should be just thinking of themselves as PHP developers... Next time you identify yourself as a PHP developer, I'm going to walk up and I'm going to say, "why are you identifying yourself as a PHP developer? Why aren't you just a web developer?" Then when you go to a web development thing, "why are you are identifying as a web developer, why aren't you just a technologist?" When you go to technologist thing I say, "why are you a technologist, why aren't you just a person?" Why aren't you just a human? Where is the line? You have made up an arbitrary line that you think is the acceptable place for someone to identify, below which is not possible. And we haven't even started talking about geographical location or anything like that.

Is it acceptable for someone to identify that they're in the London PHP group? Is that unacceptable because that's a delineation? No, none of this stuff matters. All these groupings are helpful.

Now remember, if you've listened to this podcast for any time you understand that a lot of the things I'm talking about come out of faith and religious background. So let me tell you about denominations. In denominations, you have the differences between people of the same faith, similar to sects and stuff like that. Where you have multiple people who ascribe to the same general thing, but are different in certain ways. There's all sorts of horrible things where people have mistreated each other, they've killed each other and all that kind of stuff, with the difference between religions. So, in general, we tend to think of unity as good and division as bad, right? So we often have this naïve concept that if we could just rid ourselves of denominations, and everyone would just be the same faith, the same religion, then all of our problems would be gone.

The problem is there are perfectly acceptable, and perfectly normal and often very healthy, differences in opinion, and denominations give you space to find the other people who follow along that line in a different way, and celebrate together with them without having to separate yourselves entirely from the community that you're a part of. Or without fighting all the time.

Let's say you have a particular interpretation of how something says whether its Saturday or Sunday. What's the seventh day in the bible--is it Saturday or Sunday? Well, that's going to make a pretty big difference about when your church meets and all this kind of stuff. You could fight about it all day all the time, or you could both do the same stuff on different days of the week, and just split along that line. Split has this negative connotation, but maybe you can just both do great things on different days of the week.

Laravel does different things, provides different things, has different priorities and perspectives than Zend. If Zend and Laravel were to mush together into one, you would have a lot of battles because Zend has a very specific set of goals and priorities that are not the same as Laravel's. If they're allowed to co-exist separately, then it's perfectly acceptable for both of these sub groups to be a part of a larger sub group, which is a part of a larger sub group. Why PHP? Why are you in PHP and not Ruby? Well it would be very awkward to have every meet up ever be about PHP and Ruby. Let alone the differences of opinion, how are you ever going to talk about something when everything is completely different?

There are healthy things about us finding natural differences in a healthy way accepting and sometimes even celebrating those differences, and also being willing to be a part of the greater community. Now, does me being in one denomination mean I'm now no longer part of the larger faith? No. Does that mean I'm incapable of participating in concepts or meetings, or whatever that relate to the larger faith? No. Similarly, does being a WordPress developer mean you now say I'm not a PHP developer? No. So chill out, take a chill pill, get off your high horse and allow yourself to be in multiples; and guess what, you could be a Laravel developer and a Symfony developer, and a PHP developer, and a Ruby developer, and a JavaScript developer, and an Ember developer, and a React developer all at the same time. It is possible! You can do it. It's like this magical thing where you can be a part of multiple communities and no community police is going to come stop you. It's fine, it doesn't matter.

So just enjoy it! Allow yourself to celebrate being a part of whatever communities to get the benefits out of them. Being a part of the WordPress community means you connect with other people who are learning how to make money as a WordPress developer, and that is very different than how to make money as a Laravel developer, right? That's fine. There's nothing wrong with that. Trying to learn how to really up your skills in Symfony and Laravel often looks very similar, but not always. So having differentiation in the community allows space for us to share some resources, and not share the other resources, and that's perfectly fine.

Really, this is just me going on a rant. Surprise! That's what this podcast is. Here's the fact that every community has various levels that overlap, and various levels of not overlap, and that is perfectly fine. You can be a part of many communities that are a part of many other communities that are sub groups, of sub groups, of sub groups, and there's no magical line. PHP as a community is not the magical line beneath which everything is an atrocity.

Within Laravel, you may find yourself a part of the DDD community, and you may find yourself a part of the Hyper Ruby inspired minimalist Smalltalk community. Those are two communities within the Laravel community and that's okay, because you don't have to do one or the other. It's fine, I'm not actually adding anything new to this conversation at this point, I'm just throwing out random things and saying its fine. Just chill out. Allow people to enjoy being a part of the communities they are.

If you want to have a positive impact I think the thing that I hear from these people the most is, well, why don't you participate more in the larger PHP community? They don't say those words, but I think that's what is the inherent. Then say that in a positive, not critical way. Hey WordPress developers, did you know that there's this much larger PHP community that we want to invite you into? Here's ways that we can welcome you.

It turns out the best way to welcome people is not by calling them silo'ed whatever heritics. The best way is to be kind, and to enter into their spaces and to learn from them, and to offer what you have to them, and to be nice people. It turns out that's the trick. Be nice. Take care of people. I feel like I'm making voices where I'm mimicking people more than normal, so I hope I don't get too many complaints about how snarky I was in this one.

I really do love you all. This is Episode 100, I'm making the heart symbol in front of my chest right now. I also got not a lot of sleep last night, and I'm super caffeinated so that might be part of it now. All right we're almost out of time, I will not go over 10 minutes, thank you.

Thank you friends for listening to 100 episodes, those of you who've been here for all 100, and if not, that's okay--thank you for being here for Episode 100 anyway. This is the Five Minute Geek Show, we're at @5minutegeekshow on twitter, fiveminutegeekshow.com. You can subscribe to us on iTunes or RSS if you like the show, and it'd be amazing if you would share it with your friends, rate it in iTunes.

Until next time--Matt Stauffer, Five Minute Geek Show.

Ready to do it? All right go.

"If one more label try to stop me there's gon be some dread head boys in the lobby, UH UH"