The Five Most Important Ingredients in Doing Technical Stuff ™
We were talking (arguing!) about the most important ingredients that are critical for executing technical work (aka doing Technical Stuff ™). Josh claimed there were four skills necessary, at which Laine scoffed and said that couldn’t possibly be true. Turns out, he was pretty much right – so we wrote that post. Then we realized there’s a fifth thing that’s not only necessary, but vital – but it isn’t a skill. So…we had to change the title. Usually in a list, three or four things is the right answer, but… not today, apparently.
And so, with no more ado, the ingredients critical for doing Technical Stuff are:
- Support
- Kitty Typing
- Experience
- Googling
- Determination
Helpful Pre-Requisites
We lied! There’s a little bit more ado, because there are also a few things that, if you have them, your chances of success shoot way up. You can still do Technical Stuff without these, but it’s going to be frustrating and significantly more painful than it should be.
- Know the objective. What are you trying to solve with this Technical Stuff? What would you expect to see if it’s done “right”?
- Have a safe place to experiment. Try iterations of the Technical Stuff somewhere that you can do that without hurting other systems – local development, sandbox development, self-healing other systems backed by a whole lot of resources and some super chill admins, etc.
Okay. Now no more ado. Definitely for real this time.
1. Remember You Have Support
This one was the last-minute add, which is funny because it’s definitely the most important.
You have people! They like you!
People can support you. What you’re doing is important, or hopefully you wouldn’t be spending your time doing it, and these people are resources that you should know exist. Your team, your friends, your community – people interested in either your success or the success of what you’re doing. People can and will help you – please let them. This can be someone who: knows more about the technology you’re using, knows more about the requirements of the system, will go for a walk with you when your brain is full, will feed you chocolate/coffee/Mt Dew, and, sometimes, just listens to your struggles and reminds you that the problem is worth solving.
2. Kitty Typing
Are you wondering what on Earth “kitty typing” is? We’re so glad you asked. The name of this one came from an amazing gif, (please just…trust us. It’s worth clicking on.) plus a very over-tired and therefore giggly Laine while we were trying to make our first iteration of OpenShift build and deploy pipelines via Jenkins work. This cat is the hardest working technologist on the internet. You’re welcome.
This translates to…just start, or sometimes just do literally anything. Don’t remain paralyzed with indecision or the perceived need for perfection. If it’s important, if it’s the most important thing you should be working on, do something about it. You don’t need to wait until all of the ducks are appropriately lined up, or until everything is completely figured out. Pick a task and start chipping away at it – it will give you momentum, which is one of the coolest concepts in science. Even if you fail, you’ll learn something new (see the next ingredient…) – and if you continue to just do things, you’ll look up and realize you’ve figured out something amazing, maybe even something that no one has done before. This is how innovation happens, big and small, and there’s a huge thrill in doing it. Just start doing stuff.
3. Experience
People learn via experience. Just do literally anything (kitty typing!) turns into oh hey, I did that thing before! I know X about it now because I lived it. This is how developers learn a system they work on, or more generic skills like “being good at debugging” and “not strangling annoying coworkers.” Most things follow a pattern, and if you do something enough times and pay attention, you’ll recognize the pattern when it happens again. This theory of Four Important Skills Five Ingredients, for example, was put together by observing patterns we learned when doing development with a bunch of awesome smart people. Also this blog post exists because we followed patterns we found that make blogging together effective and fun (blog-ception).
Pay attention to what works and what doesn’t. If something doesn’t work, pay attention to how it didn’t work so the next time something breaks in a similar way you’ll be able to identify and follow the pattern. Pattern-matching saves time and effort, and will get you farther every time you see the same pattern happen.
Tada! Now you have experience!
4. Googling
This may be the most underappreciated skill of all skills. If you don’t know a thing, Google it. The internet is made of machines whose job it is to get information to your brain. The world is your nerdy oyster.
People good at this skill find that the ability to locate, understand, and apply information (bonus points if you can then explain it to other people) makes life enormously easier. We’ve also both run into people who are at least ten times better at this than we are – so part two of this skill is knowing when to ask for help if your Google-fu fails you (support!).
“The reason I’m in IT at all is that I’m really good at Googling.” – our sage, nerdy friend
Googling is especially helpful when using popular enterprise tools like Java, IntelliJ, and Jenkins. The internet loves these kinds of tools, and information abounds. Vendor-specific tools are harder, and you have to get good at the vendors’ web sites, which isn’t always easy.
Honorary mention in this category: internal knowledgebases, e.g. an internal wiki or Slack search. If your company uses Slack, Confluence, or anything with a search functionality, it can very quickly become a gold mine of information, and in particular Slack’s searchability is top-notch.
If you get good at making the robots find information for you, it can really speed up how fast you can solve problems.
5. Determination
There’s a not-so-hidden component inherent in the others – don’t stop. Kitty typing, experience, Googling, and even asking for help will only get you so far if you’re not willing to keep on keepin’ on until you get somewhere useful. Remember why the task you’re completing is important (please please ask if you don’t know), and keep going.
Determination does not mean, however, pushing yourself past the point of your brain functioning. Technical work is knowledge work, and brains have limits. Sometimes it’s a really good plan to take a breather and let your brain background-process the problem, or give your troubleshooting muscles a break. Again, this is where support comes in – tap into those resources who will walk with you or feed you chocolate. Let your brain recover. But don’t stop, pause – and then keep going.
Um…SURPRISE!
Now for the big reveal that surprised even us…this list:
- Support
- Kitty Typing
- Experience
- Googling
- Determination
with know the objective and have a safe place to experiment, isn’t just how to do Technical Stuff. It’s…how to do literally everything.
Us: 😯 😯
We’re not experts in…well, much of anything, actually. Certainly not how to do everything. But we pay attention, and we love people, and we try to figure out what works for one person so we can help another. So…remember you aren’t alone, learn how to wrangle information from existing sources, and don’t be afraid to try stuff to see if it works. If you get stuck, seek help. And don’t stop trying.