Burnout and Vacation Time

As the holidays and the accompanying vacation time inches closer, it’s a good reminder of the service vacation provides in avoiding burnout. Burnout is a serious problem in our industry and something we should all strive to avoid in ourselves and others. Of course, we rarely think we are burnt out until it’s too late. There are some common signs to look out for – are you constantly shuffling from project to project or thought to thought and unable to catch up? When you do sit down with a task, is it easy to become distracted, putting you even further behind? Are you feeling despondent or even depressed when work is on your mind, maybe even thinking about rage-quitting someday soon? You might be getting burned out. This tends to be pretty common for many of us when November rolls around, since we probably haven’t taken a good vacation since the last holiday season.

That makes the holidays a great time to take a vacation. You need it, and you probably are going to lose some or all of that time if you don’t use it now. If you haven’t scheduled it already, you should talk to your manager and get it scheduled now. Take time for yourself and back away from the edge of the burnout cliff. And the sooner you talk to your boss, the better chance you can actually take the time you want, since all of your coworkers probably want to take vacation at the same time and someone has to draw the short straw!

I suggest that you also work on ensuring that in 2017, you do a better job of planning your vacation throughout the year. One or two days here and there usually doesn’t do it, you need a long enough period of time that you can dump the weight on your shoulders and stand up tall for a while before you go back to work. Take a week off in April or June or September instead of hoarding vacation days. If you can, travel somewhere, but even a stay-cation helps a lot if it’s a whole week.

I also recommend touching a computer as little as possible. We’re nerds, we’re going to touch a computer at some point – and technically you probably can’t avoid it if you want to drive somewhere, watch some streaming movies, or order some food – but we benefit when we aren’t surrounding ourselves with the things that are causing us stress in the first place. Instead of using the vacation to catch up on all the new literature about Product X, pick up a good novel, watch a TV series you skipped when it was new, or maybe pick up an entirely new hobby. Build a chicken coop, or watch someone else build one! Anything that’s NOT work.

Above all, take care of yourself. Enjoy the whole year, not just the holiday season!

Puppet Tech Debt Day 2: Adjusting Rspec Tests

Yesterday was our 14th anniversary, so I didn’t have time to write a blog post, but I did look into a tech debt issue: rspec tests. In addition to adding rspec-puppet-facts, I found a program called onceover that offers two concepts I want to look into.

First, there is a rake task to generate fixtures. I have a similar feature in generate-puppetfile, but it’s not as perfect as I’d like – it often requires some manual touch afterward. Onceover’s rake task does not have that issue. I hope to be able to grab the rake task without being forced to use the rest of it or affecting the existing test set up. Maybe I’ll be interested in the rest of it someday, but not right now, and it’s great when you’re not forced to make a forklift upgrade like that.

The second item is centralizing rspec-puppet tests in the controlrepo rather than inside each module itself. That will change the relevant portions of my controlrepo layout from:

.
├── dist
│   ├── profile
│   │   ├── files
│   │   ├── lib
│   │   ├── manifests
│   │   ├── metadata.json
│   │   ├── Rakefile
│   │   ├── spec
│   │   │   ├── classes
│   │   │   ├── fixtures
│   │   │   │   ├── hieradata
│   │   │   │   ├── hiera.yaml
│   │   │   └── spec_helper.rb
│   │   ├── templates
│   │   └── tests
│   └── role
│       ├── manifests
│       ├── metadata.json
│       ├── Rakefile
│       ├── README.md
│       ├── spec
│       └── tests
├── environment.conf
├── Gemfile
├── hiera
├── hiera.yaml
├── manifests
│   └── site.pp
├── Puppetfile
└── r10k_installation.pp

To:

.
├── dist
│   ├── profile
│   │   ├── files
│   │   ├── lib
│   │   ├── manifests
│   │   ├── metadata.json
│   │   ├── Rakefile
│   │   ├── templates
│   │   └── tests
│   └── role
│       ├── manifests
│       ├── metadata.json
│       ├── Rakefile
│       ├── README.md
│       └── tests
├── environment.conf
├── Gemfile
├── hiera
├── hiera.yaml
├── manifests
│   └── site.pp
├── Puppetfile
├── r10k_installation.pp
└── spec
    ├── classes
    ├── fixtures
    ├── hieradata
    ├── hiera.yaml
    └── spec_helper.rb

I haven’t done this yet but did talk to some others who already do this and are benefiting from the simplified test setup. I’m looking forward to trying it out soon.