All posts by Joshua Howard

The ‘I HAVE To’ List

I’ve experimented with a tonne of productivity tools and processes. I’ve taken deep dives with each of the following programs:

And what I’ve found is that there are some common concepts that are shared between them. Each of them implements their own unique strategy towards concepts like prioritization, organization, and execution. They each have their own twist or approach to tackling your to do lists, your dreams, your goals, and life all around.

But for some reason, none of these systems really made things better for me. I noticed that I was busier but I wasn’t really better. I started to notice each system had it’s own little flaw that always seemed to suck all the life out of the process and before long I’d had abandoned it. The Burnout was real…



I do think that they are each worth learning about and attempting. I see each of these systems as a small stepping stone in my pursuit of accomplishment and I don’t discredit them. However, they haven’t (or I haven’t) improved my life with any of these strategies.

So I invented my own… and I call it the “I HAVE To…” list.

Advertisements

You see the problem I kept running into with each of these systems was that I would always end up getting them over-loaded. Some systems ask you to capture all your thoughts and organize them into quadrants or process each item and prioritize it. Backlog items that aren’t important and break down tasks that are bigger.

For me though, not only did I have all of the normal stuff to do like my goals, and tasks, but I had an enormous amount of day-to-day shit that I needed to get done. Dishes, dinner, cold lunches, homework, sports, diapers, practices, tests, doctor visits, home repairs, and the list goes on…

I would be forced to either try to keep up on all of these items in my head or write them all down into the system. Then I would have to organize them, prioritize them, backlog them, break the bigger ones down… and damn was it time consuming.

I decided that maybe these strategies just weren’t meant for me and I set out on researching how other, already successful people manage their lives. I’m not talking successful people that are just working a great job and appear successful on social media. No, I’m talking full blown, massively successful people like Arnold Schwarzenegger (5x Mr Universe, 7x Mr. Olympia, numerous Hollywood Blockbusters, and Governor of California), Dwayne Johnson (won the NCAA Championship, 20 year WWE career and became known as, “The Rock”, wrote a #1 Best Seller as voted by the New York Times, Hollywood movies, and the recent purchase of the XFL), and Elon Musk (founded PayPal, founded SpaceX, became CEO of Tesla, revolutionized electric vehicles, and launched rockets into space).

And I started researching how these guys go about their lives. How they operate on a daily bases to reach these audacious achievements. What I found was that they all had one major difference in the way they approached their lives on a regular basis. While the rest of us are sitting around saying, “I should workout, I should eat better, I should quit smoking, I should spend more time with my kids, I should, I should, I should…

But these guys, they don’t say anything like that. These guys are so driven, so motivated and focused, that when they talk about their days, they don’t say anything close to what we say. They say things like, “I HAVE to get my workout in, I HAVE to stick to this diet, I HAVE to design this product, I HAVE to build this vehicle, I HAVE to spend time with my family, I HAVE to, I HAVE to, I HAVE to.”

Advertisements

And the reason they feel that way, the reason they say that they, “HAVE” to do something is because they have powerful “WHY’s” and they repeat them to themselves every single day, over-and-over. So I took this concept and I laid it out for my goals. I figured out what I really wanted and what my “Why” was. Then I took each of my Goals and Why’s and I wrote my “I HAVE To” list.

This “I HAVE To” list works just like a normal to do list except it represents what you absolutely HAVE to do on this day to achieve your goal. If you can’t get these items checked off then you need to rethink your goal or rethink your WHY. This list contains only items from your Goals and you HAVE to do each item. If anything gets completed today, it HAS GOT TO BE THESE ITEMS ON THIS LIST.

I sit down each night, just before bed, look at my Goals, read over my Why’s, and write my “I HAVE To…” list. If you’ve been struggling with productivity or found that some of the more popular programs haven’t worked for you. I challenge you to give the, “I HAVE To…” list a try and let me know how it works for you!

Advertisements

The Singleton

This is the first part in a mini-series of posts around design patterns in software engineering.

The Singleton Design Pattern is one of the most commonly used design patterns in game development. I’ve personally used it in every game project I’ve worked on and it has been extremely valuable. However, in my professional development I’ve yet to find a truly valuable place to use this design pattern. Now that doesn’t mean it has no value in the professional world, it’s just not as commonly used.

So what is the Singleton pattern? What does it do and when/where should it be used? The Singleton pattern is named as such because it is used when you want to enforce your application to only ever have a single instance of an object. The most common place I’ve implemented this design pattern is when I need to implement an object “manager.” This happens frequently in game development.

Imagine your developing a game and in that game enemies are created. There are numerous amounts of these enemies and you need a way to manage these enemies. Having a long list of enemies to keep track of and then pass around to various other functions and objects in the game can quickly turn into a maintenance nightmare. To get around this, we can lump all of these enemies under a single umbrella, a single manager.

Now that we’ve got ourselves a single EnemyManager we need a way to make sure that the next developer that comes along doesn’t go and create a second EnemyManager in another area of the game. Think how hard it would be to get your job done if you had two bosses. The same concept applies here. We don’t want two different managers giving orders to our group of enemies. This is where the Singleton pattern comes into play.

The Singleton pattern ensures that no matter what, no matter when, where, or how… our application will only ever have one single manager. I find that this pattern is most valuable when you have an application that can spring into action in the middle of it’s workflow. For example, think of a game developer working on level 20. Without this pattern, he needs to start the game from the very beginning where the managers are initially setup, walk through all of the start menu’s, just to get to his level so he can test his changes. This can be extremely time consuming.

BUT… if he implements the Singleton pattern, he can create his EnemyManager on every level of his game and the pattern will ensure the manager is created correctly on level 20 and all other levels of the game without any conflicts or duplication. So what does this pattern look like in code? I’ll share an example in .NET:

using System;  
   
public class EnemyManager
{  
   private static EnemyManager instance;
   
   public static EnemyManager Instance  
   {  
      get  
      {  
         if (instance == null)  
         {  
            instance = new EnemyManager();  
         }  
         return instance;  
      }  
   }  
}

So what are we looking at here? Let’s break it down.

private static EnemyManager instance;

This is our single instance of the EnemyManager. You’ll notice that our class itself is not static but does hold a static instance of itself. There are a couple advantages here:

  1. A purely static class can achieve similar results as the Singleton pattern but it cannot implement interfaces that we might use like in the Observer Pattern (we’ll cover in another post).
  2. The Singleton pattern can allow itself to be passed around as an object for Dependency Injection (we’ll cover in another post).

The next piece is how we enforce only a single instance of our EnemyManager to exist and how we protect the one true instance from duplication.

public static EnemyManager Instance  
   {  
      get  
      {  
         if (instance == null)  
         {  
            instance = new EnemyManager();  
         }  
         return instance;  
      }  
   }  

This function is what all other objects will call when they need to grab the EnemyManager instance. When another object calls:

var enemyManager = EnemyManager.Instance;

Our getter will first check if the local ‘instance‘ variable is null. This is where the first check is made to see if an instance of the EnemyManager has already been created at some other time. In our example, we’ll assume this is the first call to EnemyManager and therefore the ‘instance‘ is null. What happens next is we assign a new EnemyManager to the ‘instance‘ variable and then we return it.

Now if we were to make the above call again… when our getter function reaches:

if (instance == null)

We’ll see that we’ve already created our instance of the EnemyManager and instead of creating a new EnemyManager, we’ll return the one that was previously created.

So why does this help our game developer while he’s working on level 20? Well instead of having to create our EnemyManager only at the beginning of the game (to avoid duplication) we can actually call to create our EnemyManager anytime we need it and always guarantee we’ll get the one single instance. This is because even if we start our game on level 20, the Main Menu, or anywhere, our code will make sure that only one EnemyManager ever exists and that we’ll never end up with two managers (having two bosses is such a terrible thought…).

The Singleton pattern is fairly easy to implement but it’s important to know when to use it. Here are the times I’ve found it most useful:

  1. If you know you only ever need a single instance of the object that’s a good sign you’ll want to use the Singleton pattern.
  2. If your application can be started in various states, like level 20 in our example above, and you want to ensure the right objects are created only once.
  3. If you need to have a single instance of an object but you also need to implement Interfaces and/or use Dependency Injection.

If you do find that you need a single instance of an object BUT you do not need to use Interfaces, Dependency Injection, or other Object Oriented Principles then you do have the option to make your entire class static.

Find Your Why. Repeat your Why.

Why is it that accomplishing our goals and the things we know that we should do, so damn hard?

I’ve wrestled with motivation at various stages in my life. I’ve been on both extremes of the spectrum from highly motivated and engaged to “I don’t feel like doing shit today…

You see, Motivation works very much like a roller coaster and when you’re up, it’s great, but when you’re down… well it’s not so great. The problem with motivation is this roller coaster ride. It’s also the reason it’s so hard to stick to our diets, quit smoking, learn that new habit, or accomplish anything that requires great or consistent effort.

We’re constantly subjective to this wave of motivation and until we can make a change in this area, we’ll always be influenced by it. Motivation helps us get that new diet started but when things get harder, when temptation kicks in, when the workout gets tougher, that same motivation doesn’t ever seem to be enough to push us through.

And that’s exactly where our problem lies. You see our Motivation, when it first inspires us, is so strong that it’s enough to get us to initiate a change in our lives. It’s the upward ride of the roller coaster.

Maybe we had a moment where we felt unattractive with our weight or we felt guilty for not spending time with someone we love. Whatever it was, it was powerful and that motivation drove us to start that process of change…

And then after a while… a couple of days… a couple of hours… we lose that motivation. It fades away and with it goes our ability to make a change. And then the next hurdle comes in journey of change and now we don’t have nearly enough motivation to overcome this adversity.

So how do other people do it? How do great athletes do it? How do successful actors and musicians accomplish so much? How does that blogger on Instagram get up everyday and hit the gym?

Their secret, the reason they are able to overcome that next hurdle, is that they keep their motivation so high that they never ride the downward side of the roller coaster. When they step onto the road to change, for them, the ride is always up.

At first it seems hard to understand how they do this. How do they keep their motivation up? How do they keep it from coming down and avoid that roller coaster?

They have an enormous WHY. What do I mean by this? They have a situation, in their lives, a moment, a history, that is so impactful, so motivating for them, that they are able to stay at the top of their game day-after-day.

Arnold Schwarzenegger, Jim Carrey, Inquoris Johnson, Marshall Mathers, Mike Tyson… the list goes on and on and on. Each of these people are highly motivated, Extremely Motivated in their lives and the reason why is because they had difficult, rough lives first.

These challenges gave them a reason to push back and to push harder and for them, it wasn’t a roller coaster. It never was a roller coaster because everyday when they woke up, life was hard. Their motivation was right there in their faces and they had no choice but to live it. So when they grew up, they were raised in an environment that demanded they stay highly motivated to ever have a chance to survive.

How do the rest of us tap into this? How do we capture this level of motivation when not all of us are going to come from a rough background. How do we find that same motivation? The best way to do this is to answer this one simple question… Why?

Why do you want to accomplish what you are setting out to do? Why does it matter at all? Why do you care? Why, Why, Why, WHY?

And answer this question multiple times, every day. Don’t just think of one reason why. Write down your reasons why. Write down four, five, ten reasons why you want to what you want to do and then as life changes, as you grow, add to your list of why. Remove things that no longer motivate you from your list of why and replace them with new motivators.

And once you have your why’s the next step is to put them on repeat in your life. Make it so that every day, every morning, every evening, every night, you look at this list of why’s. Just like Arnold Schwarzenegger, Jim Carrey, Inquoris Johnson, Marshall Mathers, and Mike Tyson had to wake up everyday and live their reasons why, you should be doing the same.

Find your WHY. Repeat your WHY.

Good Cop, Bad Cop

Raising kids is one of the most challenging things I’ve ever had to take on in my life. Even before your first child is born your life begins to change dramatically and you’re called to step up to the challenge of Parenthood. And damn is it a challenge… always… from Day: -280 until forever…

the sandlot GIF

But hard work comes with big payouts and the payouts I’ve received as a parent far exceed any of the difficult times I’ve experienced as a parent. And at the end of the day, it’s always worth it to work hard at being a great parent.

So I want to share one of the most effective approaches I’ve had in my journey as a parent. It’s something I’ve learned through trial and error and it very much works like the ol’ Good Cop, Bad Cop routine. If you’re not familiar with this routine it sort of goes like this:

  • Cops catch 1 of 3 robbers, they throw him in into a room, and try to get him to give up who his buddies are.
  • The first cop comes into the room (Bad Cop) and he’s a real hard ass. He starts laying into this robber telling him they have him on tape, they’ve got his finger prints, they’ve got all the evidence they need and they are going to lock him up for life.
  • The job of this first cop (Bad Cop) is to instill fear into the criminal. That’s his only purpose. To make this criminal start to worry, start to be concerned, start to care… and then the cop leaves.
  • After a bit of time, the next cop comes into the room (Good Cop). This cop comes in and he sits down with the robber and he starts talking to him in a calm voice. He says, “Look man, I know the judge on this case. I know this is looking bad for you, BUT… if you can work with me, if you can cut a deal with me on your buddies. We can make something work. We can get you back on track”
  • This cops purpose is to instill hope. By inspiring this hope within the robber he brings him back from the low of the Bad Cop and in return the robber is encouraged to cooperate. He feels motivated to help the Good Cop because he feels the Good Cop is looking out for him.

This is the basic run down of Good Cop, Bad Cop routine and in parenting we sometimes call this Tough Love. In practice, this technique is extremely effective in parenting and the balance between these two roles or the failure of that balance, is the real key to parenting success.

Anytime I’ve watched other parents struggle with raising their children it’s because they lacked effort in one of these two areas of Bad Cop, Good Cop. Either they are too often the Bad Cop or they are only the Good Cop.

Bad Cop parents are always coming down on their children. Always being hard on them, always pointing out their flaws, or jumping at the opportunity to punish them or correct them. And what happens in these cases is the child grows rebellious or becomes submissive lacking the ability to stand up for themselves.

Good Cop parents aren’t in any better position either. These are the parents that can’t say No to their children. They can’t find the fault in their child’s mistakes or they spoil their children at every chance. As the child grows older they learn they can do anything, say anything, and there are no consequences for their actions. And then what happens when they have to go out into the real world with this approach to life? They aren’t ready.

So why does Bad Cop, Good Cop work so well and what does it really look like? I’ll share a real example of how this has been applied in my life and why I feel it’s so effective.

One bright and sunny day my 7 year old stepped off the school bus and he came running up to me, tears streaming down his face. When I asked why he was crying he said it was because he got a bad grade and I thought, “Okay… a little dramatic but whatever…”

The next day I get a call from his Principal. Come to find out, this little rebel got the idea to draw on the school bus with a permanent marker. Now, in the scope of things, I could really care less about this happening. He didn’t hurt anybody and he clearly didn’t realize what he was doing was going to upset people (also he wrote his own name… so not to bright on his part).

What I was really mad about though was that he lied to me about what had happened. You see, to me, that trust, knowing that my kids will tell me the truth when it really counts is incredibly important to me. It’s the only way I can guarantee that as my kids get older and life gets hard, they will honestly tell me how things are for them and when they need help. Many teens and young adults struggle at these stages of life and pride or embarrassment keep them from getting the help they need. It’s important your kids can be honest with you.

After talking with the principle I was pretty pissed that I’d been lied to and out came the Bad Cop. I approached my son and let him know that I’d learned the truth. I let him know I was mad and that I was mad he lied. I dished out a punishment and I walked away. And even at this moment, I could see how much of an impact this had on him. He wasn’t just upset he was in trouble, he was upset because he’d burned a bridge with me by lying. THIS is what you want your children to feel. The guilt, the shame, the regret not because they are in trouble, but because they’ve wronged someone they love. And this only happens if you’re both the Bad Cop AND the Good Cop.

After some time had passed and I’d let go of what had happened I approached my son again. This time as the Good Cop. I sat him down and in a more calm voice I explained to him why I was mad. I asked him why he lied to me and I talked with him about how that lying made it harder for us to be best friends. That the lying, would ruin our trust and damage our relationship (now these are big concepts for children BUT I’ll tell you, start teaching them now. Don’t wait until your children are already teenagers to try and teach them about honesty and trust. If you do you’re already behind the game).

During this conversation we talked about his mistake, what he could have done better or different, and then we gave each other a big hug and reminded each other that we loved each other. I told him I was proud he was able to be honest with me in the end and that I hopped he learned his lesson but that also (Bad Cop) he still needed to make amends for his mistake, apologize, and make it right. He wasn’t happy about having to do those things, but he was ready to make it right with my support.

This approach to parenting is so effective because it gives children what they are really looking for in their parents. Discipline and Love. These two pieces are crucial to leading a happy, successful life and children need both. Discipline to help them stay on track until they are mature enough to discipline themselves and Love to remind them that they aren’t alone in their journey.

If you’re new to parenthood or you’ve been doing it for some time. Take a look at your strategy. Are you mostly Good Cop, mostly Bad Cop, or have you found a good balance between discipline and love?

Progressive Pomodoro’s

If you’re not familiar with Pomodoro’s it’s a simple concept of working for small chunks of time and then taking short breaks. The idea is to maximize your focus and optimize productivity by allowing your mind to ‘get in the zone’ for a brief period of time and then taking a short break to recharge.

There’s a ton of information out there on Pomodoro’s and how to use them: What is a Pomodoro?

In practice, I’ve found pomodoro’s work best when I’m already highly motivated. When I’m feeling great and ready to go, a 25 minute pomodoro is a good chunk of time for me to knock out some solid work.

But what happens when I’m not feeling great? What happens when I’m not on top of things? What happens when the task I’m looking at is dull and boring or when the task requires a higher level of effort to complete than my normal day-to-day? When a 25 minute pomodoro seems impossible…

I could try forcing myself to work through a half-assed pomodoro doing subpar work or I could complete a Progressive Pomodoro. A Progressive Pomodoro works like a regular pomodoro except instead of starting at 25 minutes, I start at 1 minute.

1 minute of work.

1 tiny insignificant minute of work.

This one minute is usually opening my tool of choice, reading a single email, reviewing my next action, starting the research into the task I need to accomplish. It’s just a small insignificant piece of work that I can’t say no to completing.

And then when that minute is up, I take a 1 minute break. I read an article, check my social media, or just go get a drink. It’s my 1 minute break so I do whatever I feel like doing. After that break, I take on 2 minutes of work.

2 tiny insignificant minutes of work…

Then I take a 1 minute break and after that I take on 3 minutes of work.

3 tiny insignificant minutes of work…

And I repeat this process over-and-over until I’ve either completed my task or reached a point when I start to feel like the next chunk of work is too much to accomplish. At this point, I hit the reset button. I go back to square one, back to…

1 tiny insignificant minute of work…

Welcome to The Hardest Work

I’ve recently become motivated to share my journey through life, my experiences, my failures, and my successes in hopes to inspire others as I’ve been inspired.

Since this is my first post I’m still working out the details of setting up this blog. I’m hoping to cover a wide variety of content and topics including:

  • Productivity
  • Motivation
  • Parenting
  • Programming
  • Fitness
  • and More!

I don’t have a set plan yet but I hope to share as much as I’ve learned about various topics and that readers of this blog can share their experiences back with me.

If you have suggestions for content or topics you’d like to hear about please let me know!