Part 2 of 2: How To Make Your Life Easier As A Tech Worker (IT/Software Engineering/System Administrator): Motivation

The lack of motivation can affect your work and personal life severely. These are some of the things I found to be helpful:

  • Having a daily status. This helps you to understand what needs to be done, what needs to be done later, what problems you faced, and helps communicate what you’ve been up to with your peers/clients/superiors. Good daily statuses answer the questions:
    • Did you have any roadblocks today?
    • What did you do today?
    • What is on your task list today?
    • Also I find that its incredibly helpful to finish the daily status prior to leaving for the day and reviewing the items left to do in the morning when I get in. Once the daily status is reviewed it is incredibly easy to focus and knock out tasks.
  • Daily statuses may help you get a raise or help to establish job security. Daily statuses can help you to support your claims of higher pay due to work performed. With a daily status, your manager can go back through them and see work performed, and it’s easier to account for your work. My coworker uses this template. [As mentioned in the last part of this series].
  • Plan out the tasks that need to be performed prior to starting them. If you have a task to build a twitter clone, breaking the tasks into extremely small tasks such as evaluate database, create test interface, create authentication system, etc would be a good way to go about it. Reviewing prior to the start of work is the way to go about this. With a good understanding about the tasks to complete, it becomes incredibly difficult to procrastinate or avoid working. The tasks are easily achievable and you have something to show for it, even when the work isn’t incredibly visible.
  • Organize similar tasks in batches. I’m sure Tim Ferris wasn’t the first person to suggest this, but I found this tip from one of his books. If you have lots of individual tasks that have the same process, collect all of the tasks and perform all of the actions in a batch-like fashion. For example: If the task is to go to the store every time you need something, consider creating a list and going to the store to get all of the items at once. This will cut down on the costs (time, money, and stress) involved with driving to and from [his example was batching bill paying].
  • Monitor your time – this may be an extension of the daily status suggestion. Monitoring your time helps you to identify times where you may become unproductive or easily distracted. It also helps you identify the amount of time that you can work until you need a break.
  • Weekly self reviews – this involves a bit more time. A weekly self review can help you see the big picture of the tasks that you performed that week, and may even change your mind about the approach taken. For example, if you repeatedly struggled with a Java GUI component every day of the week, a weekly review would show that a different component might be beneficial or that it might be helpful to go for training on the individual component.
  • Clear out your email box. Similar to a cluttered desk, a full inbox makes emails difficult to search through, and may cause new emails to be lost.
  • Keep a notebook or journal. New ideas rarely come when you want them to. Keeping a physical notebook helps you to write the ideas out without becoming distracted with what you’re working on. Also, a physical notebook acts as a unique outside task from your current job. It’s similar to “Rubber Ducking” the problem. Roald Dahl suggested doing this, too – he kept a notebook and wrote down every idea he had for a story as soon as it came to him (even using the dust on his bumper once when his notebook was missing).
  • Keep A Blog: Blog about the problems you’ve faced and how you overcame them. For example, when I had an problem with a particular issue with my Gentoo configuration, I wrote a blog post after going through the trouble of finding a solution and testing many others. When I ran into the same issue again when re installing  the solution now was quickly available to me. Google picked up the post and made the search even quicker. Also, it may turn out to be an issue that others have faced. If your blog is fairly popular you may even get feedback, or kudos for solving the problem that others have had.
  • Writing down expectations/concerns about tasks. This may sound silly, but writing down the potential negative feelings you have towards a technical approach may help you overcome biases or aggravation down the road. http://life-sucks.org/negative-thoughts
  • Keeping a task list. Creating/using a task list will give a quick feedback on completing tasks. Use an online to-do manager that can schedule tasks, organize them into projects, and can integrate into your existing PIMs [Outlook, Kontact, Gmail+Calendar]. Some examples of this are doit.im, trello, vitalist, Toodledo, Nozbe, and Nirvana for GTD.
  • Keep track of things you want to learn. This helps when you have free time during work and want to learn something. Also, learning new technologies helps you with new tech projects and makes you more marketable.
  • Read Regularly. This may not be directly beneficial to completing the problems you face today, but this is more of a multiplier. It helps you to branch out from your current set of problems, and find new solutions. Blogs, RSS feeds, technical books, and most other books will help keep you motivated and productive.

Part 1 of 2: How To Make Your Life Easier As A Tech Worker (IT/Software Engineering/System Administrator): Automation

After some time of being a student, and a tech worker [Software Engineer, IT Consultant, or  System Administrator], you should start to find ways to make your job easier.  These are some of the things I found helpful:

  • Create templates for daily status emails. If your employer/ client requires a daily status, this makes the task of writing up the daily status easier. Outlook has the ability to keep track of email templates.
    • If the daily status is being sent to multiple people it may be helpful to create a distribution list. A distribution list is less likely to lose contacts between statuses.
    • One template a coworker of mine uses is this template.
  • Create filters for emails. This can help reduce the amount of email that requires attention. For example if a group communicates with a shared distribution list then create a rule or a filter that can organize that into a separate folder. This can also clear out “Build succeeded” emails [if your company automatically subscribes you to those]
    How To Create Rules In Outlook.
    How to Create GMail Filters.
  • Use SSH keys: SSH Keys can save a little bit of time by creating password-less logins. Also with SSH keys, scripts are able to run commands on other SSH enabled boxes. This means that much of the repetitive system administrative tasks can be automated. Gentoo Guide to SSH [This include generic non-gentoo instructions.
  • SSH Commands: SSH Commands are shell-less sessions in which a user logs into a SSH box with a key to kick off only one specific command. For example, say you had to reset an environment, and it required quite a few commands. With an SSH command, you would combine all of those commands and then kick off the command as an SSH command with its own key. From there on, you could kick off those commands by connecting to the SSH box with the key.  More information.
  • Backups- It can’t hurt to backup your data. I’ve never found a single person that was reliable at doing this frequently. Setting up rsync, SSH-keys and making it a cron job is a good first step. I’ve heard good things about luckyBackup, but I haven’t had a chance to try it. 
  • Using Salt/Puppet to automate system administrative tasks on multiple machines. This would be a bit more helpful for those who regularly roll out new software to multiple machines, or need to perform other system admin tasks.
  • IfThisThenThat (Review) is an online service that connects other online services to perform the intended result. For example, if a Google search reveals specific keywords, you can have that update a twitter account.