Part 1: If My Coworkers Were “Magic: The Gathering” Cards

(2.5 minute read) A game is like a project, the creatures are like my team and other spells are like processes/curveballs that cause it all to pivot.

Advertisements

One of my favorite parts of my job is it’s like I’m constantly solving puzzles. They’re not the same as they were back in my development days, much more complex and abstract now. I often have to figure out how we’re going to put the team together and how we’re going to tackle a given project. It doesn’t always work. But, if I monitor things closely and shift my strategy accordingly, this yields the best chances for success.

One day, this got me thinking of a parallel in the game of Magic: The Gathering (aka MTG). A game is like a project, the creatures are like my team and other spells are like processes/curveballs that cause it all to pivot. Land cards are obviously the setting (e.g. working from home, open office, dim-lit loft, etc.). Yes, I’m a geek. Shove it.

So this post, the 12th post of the year, the post during the holiday stretch from Thanksgiving to the New Year, the only post I’m a day late on this year because I was busy studying for the JLPT (I will likely write a post on that some day), this post is going to be simply for geeky, nonsensical fun. It is certainly part of my craft to have some fun along the way too. Over the past few years, I’ve thought up “what if so-and-so was a MTG card?” and jotted it down in my notes. And so that’s exactly what I did.

Enjoy.

Disclaimer: images were found on the internet. I used the site I found them on in the “artist” section of each card.

1511241314623986.png

apathetic analytics engineer.png

articulate sr. tpm.png

cautious program manager.png

costly contract developer.png

daily standup.png

devout iphone developer.png

elon musk.png

jr. developer.png

race condition.png

subtle scope creep.png

tireless vp of tech.png

It’s been a fun year writing these posts. I’d love to hear your thoughts on subject matters I can dig into next year. Here’s a random selection of topics I have written down:

  • X Benefits of Inspiring People
  • How to talk to clients like they’re people
  • Getting over the fear of asking the stupid question
  • Managing depression
  • That moment when you lose control
  • Jumping on to a sinking ship

See you in 2018!

Part 2 of this series will come out at a later date…

Be Proactive: Why You Should Prepare for the Worst Case Scenario

(3.5 minute read) You won’t be able to turn every type of scenario into butterflies and sunshine, but having a contingency plan gives you a guided path to follow instead of spinning around like a Reactionary Headless Chicken. #bandname

When life gives you lemons…

We’ve all heard that old adage. “Make lemonade!” you instinctively reply. Or something else humorously sarcastic for those of us who are sick of this saying. But, how many of us have been truly knocked out by a life-punch? How would you have approached that situation differently if you had a second chance? What if you had already built a plan for it and reacted based on that?

Let’s hone in the subject matter’s scope to the typical work project and then expand outward to a more general sense of life itself. The experience here can lend itself either way.

The Necessity of a Contingency Plan
Quick quiz: have you seen or discussed a contingency plan for your project(s) or company in the past 6 months? If no, you’ve got a problem and regardless of where you are on the so-called totem pole, you need to raise a red flag. The first step of creating a contingency plan is simply asking “what could happen?” Any one can do that and assuming others are is a risk you shouldn’t be a part of.

This all may sound like paranoia but consider those who study martial arts. They have built muscle memory that instinctively kicks in (pun intended) when the threat of a fight appears. There are situations from earthquakes swallowing servers that bring your e-comm site down to your team all getting bed-ridden-sick right during the final stretch of a critical project sprint. You won’t be able to turn every type of scenario into butterflies and sunshine, but having a contingency plan gives you a guided path to follow instead of spinning around like a Reactionary Headless Chicken. #bandname

Whether you’re a part of a corporation maintaining a digital ecosystem or a software vendor pumping out projects for clients, neglecting to ask “what could happen” carries significant risk. It takes a little bit of effort, but think of it as an umbrella for that eventual rainy day.

Okay, now that you’re sold on this, go here for guides on how to create a top-notch contingency plan!

What would I do if…

  • …if I lost my job?
  • …if a loved one passed away?
  • …if I got sued?
  • …if I got a terminal illness?

These are dark thoughts. It’s a bit stressful to think of earthquakes taking down your site, but personal worst case scenarios are depressing thought-paths. You’ve probably considered a “what if” question or two in solace when your mind is allowed to wander. But, you probably haven’t sat down to specifically think of it and devise ways in which you would respond to these scenarios. Which is why I recommend you set a date. Sitting down with the intention of thinking through these possibilities can be cathartic and bring a peace-of-mind. Personally, I have a Google Drive trove of “so this happened, Stay Calm and Do X Y Z” documents that I create on a regular basis. And, of course, there’s a Trello board too.

And the thing is, for the longest time I would make a mental note of “I need to write this down”. I had seen coworkers and family lose their jobs. I had seen divorce shake up families. I had seen children with disabilities. All of this hurts my soul and I wanted to write down the “what if this happened to me” as if to take it off my chest and put the feelings elsewhere. But yet, I kept not doing it. Not until I finally blocked off some time. It felt so good afterwards that I scheduled a recurring reminder.

Final Thoughts
I wonder if meticulously writing down my plans for responding to misfortune is like a mental martial art that trains me to make appropriate judgement calls in the heat of the moment. And the event doesn’t necessarily have to be something I spent time planning for. I’ve had a few stretches in life that were really challenging and that made me realize I’m not immune to really bad days. It makes me incredibly thankful for what I currently have because there’s no promise the great cosmos gives me that I’ll have it tomorrow. So maybe I am a bit paranoid and writing these things down is overkill, but it makes me feel at ease. Ultimately, your personal zen is what matters, so do what it takes to have it and protect it.

Google often makes us lazy. Consider stopping right now and spending five minutes or so jotting down how you would respond to some worst case scenario of your choosing without consulting Google (or the next best thing). Just you and your mind. Meditate on what you write and let me know if you got any value or if it was a waste of time. Inquiring minds want to know!

The Garbage Man Stan Complex

(3 minute read) – The Garbage Man Stan complex is that moment when you’ve crossed the point of no return and failure is imminent. You have to be aware of your own limits and make the right decisions to avoid getting trapped into that situation.

There are times when you have to disconnect mentally just to handle all the things in front of you to keep them from blowing up. Eventually this becomes a game that you will inevitably lose. I call this the Garbage Man Stan Complex.

Garbage Man Stan?
I’ve participated in a handful of game jams (i.e. developing a game from scratch over a small set of hours) in my past. I don’t get too as often since career, family and side projects dominate my life now. But, every once in a while, I make a concerted effort to join a community of indie developers and create something tangible, maybe even presentable, within an impossible timeframe. The sense of accomplishment of turning something in within time is rewarding enough considering my side projects take years to complete. For more reasons why, Martijn says it best in his post, The Many Benefits of Speedhacking.

There’s one game that I made during TINS 2007 (yes, an exact decade ago) that I’m particularly proud of. It was called, you guessed it, Garbage Man Stan. Marvel at its next gen level graphics:

gms

The randomly generated rules (it’s a game development competition…are you surprised?) called for a theme about garbage, using current news events and utilizing smoke and flame effects. I started with the following synopsis:

The player, playing the part of Garbage Man Stan, will maximize their revenue by incinerating a steadily increasing flow of delivered garbage for as long as possible until one burner inevitably overflows thus ending the game.

The most exciting game ever, right? That is quite literally THE game. Everything else I did beyond that point was to add a factor of fun or make it more of a novelty. The trucks bounced like they came straight out of a 1930’s cartoon classic. Side note, who’s playing Cuphead right now? Anyway, proud to say I placed in the top three in Technical, Genre and Artistical in a group of 20-ish people with this game.

The Complex
Getting back to the day-to-day, it often feels like stuff is being dumped on my plate faster and faster and it is up to me to address it before it overflows and I lose the game, so to speak. I am not talking just work or life, but everything, the “a billion and one things” conundrum. I’m sure most can relate. I know my strengths and I am better at depth than breadth. I prefer to focus in, consume all the data and think deeply about what something means and what should be done about it. I am also happier when this is what I get to do. Nonetheless, life for me currently is more about how well I can package up chaos and make it look beautiful. It’s taken a while to adapt to this, but discovering I can do this, and do it well, has been very rewarding in itself.

The Garbage Man Stan complex is that moment when you’ve crossed the point of no return and failure is imminent. You have to be aware of your own limits and make the right decisions to avoid getting trapped into that situation. Failure to do so can lead to anxiety, panic attacks, mistakes and/or poor project outcomes. Not to mention the overflow is just that: a negative impact to others’ lives.

While we’re on the theme of games, consider the Sims. A Sim has needs that are constantly depleting at different rates based on the Sim’s personality. This is true of work too, but at a more abstract level. How long have you sat on that email? How long have you been ignoring that co-worker? How long have you let a bug live in production? Even though you’re hitting the highest priority items as fast as you can, inaction on another can also cause you to lose the game.

Summary
If you’re in an impossible situation and there’s too much to do, the best you can do is all you can offer. Even if you end up in checkmate, the good thing about life is that it does go on. Expel the feelings of defeat, learn from what went wrong and go on as a better version of yourself. That’s called experience. You’re going to be just fine, but you have to keep going.

Speaking of game competitions, I’m participating in TINS 2017 coming up on October 20th! If you’re a developer, whether you’ve done any game development or not, you should consider joining! The last competition I did was in 2015, so I’m a bit rusty. And my time to “just code” has also taken a significant hit recently. I’m excited to see if I’ve still got it. Follow me on twitter @supersilvey and cheer me on!

9 Deadly Sins Causing Your Software Estimates to Fail

(6 minute read) – Estimating technical projects is difficult. Tech is expensive and complex. I’m guilty of so many mistakes. Learn from me.

“What’s the level of effort?”

The dreaded question.

School taught you how long you could procrastinate before starting an assignment…and then starting just a bit beyond that point. Early on, it’s an innocent enough question. Those with a few wrinkles on their head know the underlying evil associated with The LOE. My team gets a good chuckle when I skim over their technical explanations and then not-so-subtly request, “So…what’s the level of effort?” They see me as a developer no more.

Developers tend to work on projects for a fairly long time. As time passes, passionate, devoted developers become personally invested in projects. They want to see it succeed and do well. Projects are like a relationship and estimates are the first impression. Nothing saps a human being’s spirit more than a volatile project built on a poorly constructed estimate. Let’s look at several common offenses that can doom your project from the start.

1. Rushing
We live in an age where technology is being pumped out. We, the tech industry, have set the precedent of high competitiveness and capability to build quickly. So are we really surprised that our non-tech coworkers have quick turnaround expectations on estimations? Doing an estimate the proper way without commandeering others’ busy schedules takes time. And, typically, tech projects require the largest piece of the pie. So why not slow down and do it the right way?  Rushing makes you miss important details that will haunt you later on.

2. Sloppy or nonexistent requirements
Technology does not infer anything; every logical step is explicitly instructed to execute. The more ambiguous a project is defined, the greater risk the project will miss the target and/or vision.

Sometimes requirements have to be left open to allow creative flexibility during the design phase of the project. If that’s true, tech needs to be re-estimated afterwards or aimed unnecessarily high upfront to compensate for the unknown functionality that has to be implemented. Let’s not mix goals/desires with requirements.

I had a good Dilbert comic strip to share here, but I didn’t want to pay the license fees for it.  Just google “Dilbert Estimate” and get quite a few “I’m laughing because it’s true” moments.

3. Weak assumptions
One would think the contract defines what you are going to do and if not explicitly written, it’s an easy discussion. Wrong. The funny thing about words is people imply so many things from them. Having to explain your estimate didn’t account for something because it was not explicitly written and your stakeholder thought that it was covered is still an unpleasant conversation. Suddenly, your client either feels like they had been deceived or they feel ignorant for not understanding. That’s not the goal! You’re setup for success if they are setup for success. Get into their head and write down explicit assumptions that protects your scope and their integrity.

4. Forgetting Life
Bathroom breaks, vacation, administrative work, emergencies, etc.. Life happens (a common theme of this blog!) and to not figure that into your estimates and timelines puts one or all of your goals at significant risk. Tech is expensive and many forces want to cut down estimates, but neglecting to consider incorporating contingency hours is eventually going to cause the train to go right off the tracks.

5. Shotgun Estimating
Building a large project in haste without proper planning or requirements (see everything above) in the hopes of it sorting itself out during the course of the project has historically not worked well in my experience. Large buckets of money can disappear very quickly when you get deep into highly complex software projects. It’s better to break projects down into more consumable portions and put down wide ranges for the future phases noting that they’ll have to be re-estimated once you get the current phases done. If you’re dealing with a large budget, start breaking it down into milestones as quickly as you can. Continue the estimation phase even if it’s already done.

6. Percentages
Using percentages is a crime. It’s an insult to the people who have very real, day-to-day, time-consuming objectives throughout the course of the project. Every resource should have X amount of hours for each and every task they are planning to do. At the end, you want to compare how close you came in on each task. You gain nothing from a having a resource that’s 15% of some arbitrary number.

7. Going Solo
I have my weaknesses and my strengths, as does each and everyone on my team. The strongest estimate is one that is done divvying up the various tasks to best fit the team’s strengths accordingly. If you are filling in hours for another resource or team, you could be greatly missing the mark. Let them have a say and furthermore, let them take ownership of hitting/missing their hours. If they miss the random hours you put in, it’s really easy for them to put the onus on you.

8.Estimating in Silos
Estimating processes often turn up like Jr. High dances: no one goes across the room to talk to the other side. Stop that. Gathering details of what creative, UX, strategy, marketing, copywriting, etc. are envisioning can only help your team bolster hours to ensure they can meet the expectations. Also, providing feedback to those other disciplines can shed light and make them compromise accordingly to ensure a sound scope.

9.Taking it Personal
Estimates are always negotiations. It amazes me how many people get personally offended when their hours are questioned. There needs to be push and pull for the betterment of you, your team AND your stakeholders. Don’t let this drag you down or threaten your numbers. A reduction of your hours should always come along with stronger, more limiting assumptions and requirements. You need to take this hardline stance to ensure your project’s success.

Summary
I was taken aback a few months ago when I was complimented on how well I do estimates. Quite honestly, it’s hard to feel like this is a skill given how non-scientific it is often approached. Nonetheless, I’ve refined my approach through countless experiences and missteps. I’m guilty of all the “sins” above. I’ve tracked all of this closely and made sure to learn and grow each time. The one thing I know is estimates are often a very, VERY small portion of the overall project and doing them wrong can make long, drawn out projects incredibly taxing. It behooves me to fight the good fight up front no matter how unpleasant any conversation may be. Because a good estimate often leads to a happy team, satisfied stakeholders, a quality project and a reasonable budget that can be done within a reasonable time.  You’ve heard this before.