Time Management Training

The concept of corporate time management training for employees amuses me. The idea of sending employees off to time management training to make them more efficient is just bizarre. Why would an employee want to learn ways to work harder for the 8 or so hours they are at work and still get paid the same to do so?

Don’t get me wrong, making the most of your time is vitally important (its the one resource you can’t get more of). But, I don’t think shipping people off to time training management training is the solution. Fact is, you first need some motivation to make better use of your time. What exactly is it that you are trying to accomplish by being more efficient. Is it to handle an ever increasing work load? If so, that could be a losing battle.

In fact, I find time management training seems to fall into the trap of “paving the cow paths”. You tend to find ways to be more efficient in what you are doing, rather than assessing how important those things really are. Case in point, being more efficient in all your meetings …

Automating because you can

I like to automate things I do. It’s generally good practice to find ways to avoid repeating yourself. especially as a programmer. However, I find it easy to fall into the trap of automating just because you can (or assume it is always better to).

It helps to take a step back and consider the facts before automating:

  • How long will it take to do this manually?
  • To your best knowledge, at this present point, how many times are going to repeat this?

Note, that you are looking at historical data ONLY when you decide to automate. No wild guesses about what you need in the future (keeping in mind how bad we all are at predicting the future).

This gets you out of the trap of automating something that takes 30s by spending 15 minutes writing a script to do it. Sure, after 30 times you make up the cost, but do you really? 

There’s a hidden cost with automating, and that is distraction. You stop what you are doing and go off and start something else in order to automate the step. So you end up losing focus and getting side-tracked.

Remember there is an opportunity cost to automating. So if it will only take you 30s to type out what you need, and it will get you to the next point in your project, then perhaps, you should skip over the automating and keep going (at least the first few times anyway).

Vimium

Vimium is a Chrome extension that makes your browser keyboard friendly. It’s actually very cool and lets you navigate a lot quicker around a web page than you would otherwise.

After you install it, the following shortcuts are particularly useful (note you need to be focused in the general page and not inside certain items for it to work).

  • shift + ? for help
  • shift + F (capital F) to open things in new windows
  • o to open things from browser history (esc to close this).
  • / for find
  • r to reload
  • esc to close modes

Should you use frameworks?

One of the best things about the CodeIgniter PHP framework is the wide range of classes and helpers available, everything you need to simplify working with URLs, forms, database connections, email, strings, XML, sessions and security among many, many others. 

But should you use such frameworks? I believe you should, and my reasoning is this:

"I’ll never write code that is as bug-free, secure and efficient as a community of developers in a framework."

Many programmers fall into the trap that they think they can write code better than all those that have come before them …

Luckily these days most new programmers now learn a language and then a framework almost immediately helping to mitigate this syndrome and promote good code use.

It all comes down to how honest you are about your skills. Remember, for every few lines of code you write, you have more than likely introduced a new bug.

Combine anchor and img in CodeIgniter

CodeIgniter has a number of cool URL helper functions, two of them are anchor and img which generate the anchor and img HTML tags for you.

What’s even better though is you can combine these like so:

echo anchor('http://www.praj.com.au', img('http://content.praj.com.au/blog/favicon.gif'));

Which produces the combined image with a link anchor around it.

“Left wing? Right wing? I’m staying in the plane.”

How do you get your information?

Do you request it (pull) or is it forced upon you (pushed) through things like TV, mass-media, advertising and other ways you have no control over? Fact is, if you don’t control how you get your information (and can selectively filter it), then chances are it is going to be very biased and altering your behaviour in ways you probably don’t realise.

Such companies are not stupid, in fact they spend millions of dollars learning exactly how to manipulate you and the best way to do it. You can’t beat this (much of it is based on human psychology). So instead, what you need to control is how that information is getting to you. If you are requesting (pulling) information, you have more of a say on what it is and how you get it. However, if like most of the masses, it is pushed upon you (think TV) then you’ve already lost.

If you think this post seems a bit over the top and paranoid, then, surprise, you’ve already lost. If you don’t care, you don’t care. But the question is, do you really not care, or have you simply been programmed to think that you don’t care, when really you do?

Use one system for capturing notes

Regardless of how you do it, email archive, text files, word documents, Evernote, sticky notes that put around your monitor, it doesn’t matter, as long as you use that one system primarily for capturing and tracking your information.

Why? Because there’s nothing worse than having to search multiple systems to find something because you have been chopping and changing systems. So pick one that works for you and keep using it.

TextMate Tasks Bundle

I came across a pretty cool “Tasks Bundle" for Textmate the other day, which I’ve started using for development and work and really like.

Here’s a screenshot (it has a layout that is similar to what TaskPaper does):

Tasks Bundle

A few things you may want to change through the TextMate bundle editor (Bundles > Bundle Editor) are the key assigned to completing the task (I changed this to CTRL + X) and perhaps them theme colors to your liking. 

Find in files with grep

Of all the terminal commands, the one I find myself using the most (several times a day) as a developer is this:

$ grep -lr “<search text>” .

It performs a recursive search (-r) from the current location (.) looking for the search text provided and returning a listing of matching files (-l).

Basically it does a “find in files” from the command line. Very useful for quickly finding things, and super-fast (no need to wait for a GUI to load and sluggishly do the search).

Settings when developing in Moodle

Normally Moodle caches javascript, language strings and themes (CSS). This is usually a good thing, except when you are developing and need to be able to see changes immediately without purging caches. 

Here some settings to change when you are developing in Moodle to save time purging caches:

Javascript Caching (as mentioned previously):

Site Administration > Appearance > AJAX and Javascript
Cache Javascript (cachejs) 

Language Strings Caching:

Site Administration > Language > Language Settings
Cache all language strings (langstringcache)

Themes Caching (for CSS changes):

Site Administration > Appearance > Themes
Theme Designer Mode (themedesignermode)

You could also update the mdl_config table and change these values accordingly (matching name field on the name provided in brackets):

update mdl_config set value = 0 where name = 'cachejs';
update mdl_config set value = 0 where name = 'langstringcache';
update mdl_config set value = 1 where name = 'themedesignermode';

Ideas

A lot of people guard their ideas, thinking that the idea is the differentiator between success and failure. The idea is just a stepping stone to building something, and the real key lies in making that idea successful through great execution. Turns out even if you have a “weak idea” but execute it extremely well, it will still be worth a lot.

So I say, focus on executing. On actually doing something with the idea (not trying to come up with the most brillant one), and see what happens. You’ll be on step closer to success each time you do this. In fact, what’s rare in the world is not brillant ideas, but people willing to execute on their ideas.

soapUI

If you work with and develop web services then you can ‘t really go past soapUI. It’s multiplatform (Java based) and has a range of functional testing features.

Pareto Principle (80-20 rule)

Most people have heard of the Pareto Principle and its applications to productivity.

80% of the value comes from 20% of the effort.

The principle is a mindset. It is about optimising and making sure you are sticking to that 20% of the effort that creates the majority of the value.

I think it helps if you also consider the inverse when working:

The other 80% of the effort only results in the remaining 20% of the value

This is where “busywork” comes into the picture. You know those days where it feels like you were busy the whole time and did a lot, but when you reflect the next day you can hardly see any progress? That was a day spent on the wrong side of the equation. You were only adding a few extra percent of value, and yet spending a large percentage of effort getting there.

So make sure, 80% of your time is going to that 20% of effort which will result in 80% of the value - its a simple formula :)