Dave's Notebook

How to be (Personally) Agile

When I first wrote down the idea for this post, I was originally thinking about how we might use agile development practices in a work place that practices Water Fall or worse.  But since then, I’ve expanded my thinking to include the concept of using agile everywhere, including where it “isn’t allowed.” Here’s what I’m talking about.  What does your work environment look like?  Many of the places I end up working either are using no formal process at all, or weakly attempt some form of Scrum or Water Fall.  In fact, my current major gig has a “project manager” (I use the term loosely) that manages our project with MS Project.  There is not even a formal issue tracking system.  And this is at a very LARGE organization that SHOULD know better.

image

Agile in an Anti-Agile Environment

Kanban Board

Now, I’m not saying I’m the most organized guy on the planet.  In fact, in an environment like this, it would be easy to just go with the flow.  But I know me well enough to know that if I don’t have a place to keep track of the task I need to accomplish, something will fall through the cracks.  So, I got permission to use Trello along with the Plus for Trello plugin on Chrome so that I can at least track the task that have been assigned to me.

Trello, for those who don’t know, allows you to setup a basic Kanban board and configure it any way you would like.  From the basic, “To do”, “In Progress”, “Done” format to something more in line with your actual work flow.  For this project, I have “Back Log”, “On Hold”, “Up Next”, “In Progress”, “Done This Week” and “Done”.  Yeah, that’s a lot of columns.  But I want to be able to keep track of where my task are at that level.  The beauty of Trello is that you can configure it however you want.

Plus For Trello builds on that and allows you to add estimates to each of your Trello Cards.  While they refer to the estimate as “hours” I just translate that to “Effort Points” and track how much effort I think I’ve completed rather than how many hours I’ve actually worked.

Between the two, I can track how far along in the project I am, how many effort points I tend to complete each week, and I’m the only one on the team who can give a reasonable guess as to when I will be done with this project I am working on.  And when I need to change the estimates, I can show when they changed and why.

Productivity Hacks

But agile isn’t just about Kanban boards and accurate estimates.  Agile is about becoming better.  So, what are some ways you can become better at work without being any more disruptive than you have to be?  Here are some ways that have been effective for me:

  • Use the Pomodoro technique

    The Pomodoro technique is a technique that has you highly focused on the task at hand for 25 minutes at a time.  No interruptions for email, social media, coffee.  That’s for the breaks or their own Pomodoro.  After 25 minutes of work, you get a 5 minute break.  Sometimes I just sit in my chair and close my eyes.  Kind of a mini nap.  The routine has you do 4 Pomodoros and then rest for 15 minutes instead of 5.  If you take a lunch, you should take your lunch break during one of the longer Pomodoros.

  • Avoid Distractions

    I don’t know about you, but the last time I had the luxury of an office was 2.5 years ago when I was working from home.  I miss those days.  But now I close my virtual door by putting on headphones and listening to this Pandora station that I created.

  • Batch E-mail

    As I said before, don’t check email while you are working.  I check mine during the Pomodoro breaks.  If you get more than what you can handle during the breaks you should create a Pomodoro for them.

  • Schedule Your Day!

    OK, this may or may not work for you depending on your environment.  But, it is worth a try.  Personally, I know that my best hours are in the morning and that I start losing my concentration around 1:30.  I start my day at around 7am.  Ideally, if you want me to be productive, you won’t schedule meetings prior to 1:30.  So, I went into outlook and scheduled myself as “Busy” from 7am to 1:30pm.  Now when someone looks to see when I am available, they will see that I am available from 1:30 to 3:30.

    You might object that this is not being honest.  But I would argue that it is if you honestly believe that keeping appointments with yourself is as important as keeping appointments with other people.  It is just a matter of perspective.

  • Turn Off Your Phone!

    OK, I’m assuming you are all programmers and not sales people.  But, I would go so far as to say that the only time you should answer your phone is when you have an appointment.  I stopped answering my phone YEARS ago.  Most of the calls that I got were either sales calls or recruiters.  Then I finally got smart and created a silent ring tone for my phone.  That is my default ring tone.  And my default vibrate pattern is no vibration at all.  I don’t even know that my phone rang until I look at my phone and it says I have a missed call.

    But, I can hear you say, I might miss something important.  Well, yes, there are calls that I don’t want to miss.  For those, I assign real ring tones.  Everyone in my family and some VERY close friends, all get a real ring tone that makes a sound.

    What about potential clients?  Well, first I schedule the call via email, if I even determine it is necessary, and second I ask for the number they will be calling from so that I can assign a ring tone to that number.

    I wish I could do something similar with my desk phone at work.  I answered it yesterday only to have it be a sales call.  I should have known better!

 

Agile Home

There is a whole course on PluralSight about being an Agile Family.  I’m not talking about that.  I’m talking about being personally Agile at home just like I am suggesting that you can be personally Agile at work, regardless of the environment.

Kanban Again

Yep, I use Trello at home too.  But not the Plus for Trello plugin.  At least not yet.  I have a list that keeps track of my exercise rotation.  I have a list for Saturday.  I have a list of chores I need to do.  I have others, but those are the ones that I use regularly.

Schedules

I schedule my whole day.  This probably sounds more extreme than it is.  I was finding that not having a schedule, especially after work, was actually preventing me from getting stuff done that I really wanted to get done.

Here are tips for scheduling:

  • If you really want something to get done, schedule it.
  • Don’t schedule every last minute. For example, I know it generally takes me 45 minutes to get home.  But I also know bad traffic could make that longer.  So I don’t plan the next activity after work until 4:45.
  • Schedule your Kanban list. I’m assuming your Kanban list are projects that you want to get done.  Well, if you really want them to get done, when are you going to work on them?
  • Don’t try to do too much. Once I started scheduling, I realized I was trying to accomplish way more than was physically possible.

Schedules are a great way for you to determine, ahead of time, what is most important to you.  Once that decision has been made, it is just a matter of execution.  If there are other things you’d like to be able to do, put them on the back log.

The Point

So what’s the point of all of this?  Don’t wait on someone else.  You can be agile even if/when others aren’t.