Zen to Done and Inbox Zero

3

Posted by Howser | Posted in Being Agile, Tools and Techniques | Posted on 14-01-2011

After LoonDog’s Inbox Zero post, I changed my Inbox to show my total number of items. This scared me inspired me to give inbox zero a shot (which is completely different than giving it a try, as we on the team all know what happens when we try).

To prepare myself for this effort, I went back to Zen to Done, a great  e-book that I got a couple years ago. It works as a companion piece to Getting Things Done, as well as on its one. ZTD addresses some of the problems that people have with GTD, and top on the list is this: GTD is a series of habit changes, but it advocates implementing those changes all at once. Making a lot of habit changes at once encourages failure because it’s too much change at once. It is better to focus on 1-3 habits at a time, and focus on those habits for 30 days. This increases the likelihood that the habit(s) will stick.

My SMART goal for inbox zero was:

Specific Process my work, personal, and paper mail inboxes daily
Measurable At the end of the day, no inbox items for that day
Achievable I can do this
Realistic My three inboxes are not overwhelming to handle daily
Time-bound 30 days

How did I do? My work inbox is empty as of this writing. My personal e-mail is empty about 3-5 times a week. And my paper mail inbox is a disaster. I only got to inbox zero at most 10 times in the 30 days.

Changes Made

  • I was forced to be honest with myself about several mailing lists that I was a part of but that I never read. I unsubscribed, lowering my incoming e-mail.
  • I’m much more willing to delete an e-mail after I’ve processed it. I delay emptying my Deleted Items folder for a month do give myself a “safety net” if I accidentally delete something important, but so far I haven’t needed it.
  • I installed Taglocity for Outlook to tag my e-mails instead of using separate folders. After adding Taglocity’s default list of tags, I quickly experienced tag overload. I pared it down to just a few that I use frequently: archive, hold, follow-up, and read-later.

Lessons Learned

  • I need better paper organization at home. I don’t have a good place for some of the paper mail I receive and want to keep.
  • I need to be more brutally honest about what I keep and throw away with paper mail. I tend to keep mail from charities, thinking that I may contribute, but in the end it just clutters up my life until I throw it away in a cleaning binge.
  • With e-mail, I can more easily find the e-mails that I need to follow up on because I don’t have to sift through a huge inbox to find them.

As far as e-mail inboxes go, consider me a convert! For paper mail, I’m going to need another SMART goal and 30 days to solidify some better habits.

Test Drive Your Work

1

Posted by Faceman | Posted in Coding Agile | Posted on 03-01-2011

As the Data Guy on the team, much less of my historical experience has had formal Test Driven Design (TDD) principals involved. I have a clear understanding of the concept; however putting in practice has always yielded inconsistent results. I have come to realize that inconsistency can be directly driven back to the amount of effort given to developing the test cases (duh!). It’s not that I don’t consider what needs to be tested, but that I have historically considered it from my perspective rather than the point of view of the person who’ll be using the output of my efforts. In iteration 4 I have had 3 situations where I identified a “gap” in my logic before releasing the code to another developer. This meant one less iteration (not Iteration :) ) of “I am not getting the data I want”, or read differently – three less defects. Certainly I still have room to improve here and I also have the benefit of having my “users” get back to me in pretty quick fashion if there’s a problem. However the lesson is important and relevant to all of us – make sure your “head” is in the right place when you’re working through test cases and they’ll be worth their weight in gold to you.

Rally Tips

3

Posted by Howser | Posted in Collaboration, Planning, Execution, Tools and Techniques | Posted on 02-01-2011

Although powerful, Rally’s user interface can be a daunting and confusing tool to navigate. Over the last year, I’ve discovered a few features that have made user story and task entry and maintenance more efficient.

Import User Stories

Rally supports importing user stories via a CSV file. It took me a few attempts to get a couple of the field values right when importing, but once it’s working, it’s a great way to add a set of stories quickly without having to fill out the New User Story form each time.

When you are in a project in which you have editing rights, select the Plan tab, User Stories view. The Actions drop-down on the right will have an Import option. Selecting this option takes you to the Import User Stories screen, where you can download a data import template.

Import User Stories

Once downloaded, fill in the details of your stories, save to a file, and use the same screen to import them.

Note that the template includes custom fields that have been added to the user story form, which is good for us because we have custom fields that help us know when a story is ready for QA.

Quick User Story Task Entry

The view I use most often is the Iteration Task Status view, available from the Track tab, Iteration Status link. It’s nice because you can see both user stories and defects for the iteration, and you can expand both to show tasks.

Another nice feature of this view is the ability to add new tasks inline. On each User Story line is a button for Inline New Task:

Once clicked, a line appears under the story for entering a new task. Each task line has both a Save and a Save and Add New button. Save and Add new allows you to add several tasks in sequence. I like the fact that it can be done via keyboard only – no mouse input!


Note that, unlike the task form, entering tasks this way does not cover all available task fields, but it covers the important ones.

Multi-Edit Task Update

I use this feature when I’ve completed several User Story tasks since my last Rally update. I go to the task listing for the User Story and select the Multi-Edit option. This allows all task rows to be edited in a single update, rather than having to update each task separately. This way I can enter my actuals quickly and save changes once. One bummer here is that you must use the mouse to specify State, but the other fields can be updated via keyboard.

Taking care of your tools

2

Posted by RudeDog | Posted in Agile Thoughts, Tools and Techniques | Posted on 02-01-2011

If you made your living as a carpenter you might have a tough time of it if half of your tools were broken or unusable.  If your saw blades were dull and you could only cut soft wood then the jobs you accepted would be limited.  So if your trade is software development your tools are different but the same rule applies.  You either have to provide your own computer or one is provided for you.  In either case if you drop that computer and damage it you are without the ability to perform your duties and therefore are restricted from earning your living.  Here is where the title of this post should be jumping out at you.  Nearly all of us have company issued equipment.  It is intended to be used for company work and only company work.  We all know there is a gray line that is commonly crossed in this area.  Many of us download and trial new software (aka. TOOLS) that we sample for improving our ability to build, develop, and maintain software and the systems that house them.  We each have a responsibility to keep our systems well maintained and functioning.  This includes installing and actively running valid anti-virus software.  If we fail to do this we put at risk Team, Product, Company.  If we are not vigilant one infected system could impact several other team systems before it could be detected properly and action put in place to counter.  Think of how much time that would cost us in lack of productivity?  Not to mention the need to validate that an infection is truly contained and not somehow in the source code.  Anytime we are downloading trial software and utilities we need to be acutely aware of where it is coming from and that our ACTIVELY RUNNING anti-virus software will scan it on download and ensure it does not contain a Trojan or worse inside the install.  I have observed a few people in the organization running AV software in idle mode where Access Protection is disabled.  Let’s be honest with ourselves, what is the point in that!  I would rather be running AV software in full secure mode and endure having to drop shields when, and only when, I know I am intentionally installing software.  Heck yes it is a PITA, but so is getting caught with a sudden pop-up wanting to sell or install Anti-virus 2010 and having to get it uninstalled from the registry and the few hours it takes to get that complete. 

Very few of us have our workstations joined to the domain and to be honest that would be the best way for system policies to be pushed down that would severely restrict use of your company issued tool and to roll out and audit AV and Spyware protection.  With the changes underway in the organization this may be something we eventually go to in the future.  For now I prefer to view my role and your role as “collaborative” to ensure form and function.  Let me just say it plainly.  Keep your system maintained as you are supposed to and don’t expose the TPC to unneeded risks.  This includes not running Torrent software packages (or anything similar) on any company hardware or on the company networks.  When it becomes apparent that someone is not following this behavior each of us needs to call that person out; it is called Radical Honesty.  Learn it, Live it, Love it. 

BTW, disable the Windows Media Sharing services that get enabled accidentally very easily on Win 7, we don’t need the extra chatter on the network for stuff like that.

Drinking the brew of the wireless monk

4

Posted by MadMan | Posted in Tools and Techniques | Posted on 02-01-2011

Working in the computer programming field one receives a lot of requests for help from family and friends. Usually I retort with my “I don’t do tech support” line, but after a particularly persistent friend called me 8 times over the course of 3 weeks I finally caved and agreed to take a look at his problem. “I keep losing internet” was the typically ambigious description of the issue he was having. Knowing he uses wireless I figured that was where I would start to troubleshoot.

One of the most overlooked issues when it comes to wifi routers has to be wireless channel selection, or which frequency the router is using. The 802.11 wifi specification describes 14 channels that are available for use by wireless routers in the already crowded 2.4GHz (also used by cordless phones, microwave ovens, and bluetooth devices) range. Only channels in 1-11 are fair game in the USA though: [Wikipedia]

Knowing that my friend lived in a townhouse I surmised that there were probably many other wireless routers in the area and that perhaps there was a channel conflict with another router that was causing his problem. To help determine if this was a cause I used VNC to remotely control his laptop (which I had setup before on a previous tech support ticket with this particular friend). Once there I installed the excellent free wireless troubleshooting tool “Inssider” (available at http://www.metageek.net/products/inssider).

Inssider provides (amongst other features) a graphical display of the channels the wireless routers are using and the signal strength associated with them. I fired up inssider on my friend’s machine and started scanning. “Holy crap” was the expression that came to mind when inssider revealed that there were twelve wireless networks in the area at my friend’s house. Most routers come from the factory with the channel set to either 1, 6, or 11. This was revealed in the scan as there were four routers on channel 6 (including my friend’s), five on channel 11, and two on channel 1. The other router presumably manned by a fellow tech savvy individual (nod) was tuned to channel 9. The visual display inssider gives you makes it easy to see which channels have the least overlap from other routers and according to this, channel 3 proved to be the best option to move my friend’s router to.

Inssider display of wireless router's in my friend's neighbourhood: What a cluster, except for my friend's network - Toonses - now standing tall and proud on channel 3.

I switched his router to channel 3 and told him to let me know if he kept losing internet any more. It’s been several months now and I have not received anymore tech support calls. Problem solved!

Kaizen and Agile?

2

Posted by Murdock | Posted in Agile Thoughts, Agile Values, Being Agile, SDLC Approaches | Posted on 02-01-2011

One very important principal behind the Agile Manifesto is:

  • “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”

Many of you familiar to Agile ways may think great, we already do that at the end of each iteration.   We have this handled, right?  We can now move on to other principals we are having more challenges with?

Wrong.  Within software development, regardless of methodology, one must really take this a few steps further and apply some Kaizen concepts.  While kaizen, a Japanese term for continuous improvement, has been applied across many different industries and contexts, there are some key elements of kaizen which can have a significant impact on a development organization’s ability to improve.

  • People at every level of the organization must participate in the process.  From a kaizen perspective, the real value here is that in many cases problem identification and the best recommendations come from the folks who are dealing with it every day.  This aligns very closely with the agile concepts of empowerment and self-organization teams.  Everybody on the team should continuously be looking for and taking charge of ‘kaizen events’.
  • Have a goal of eliminating waste that adds costs without adding value. Within software development, there are ALWAYS opportunities to eliminate waste and become more efficient, and sometimes there are really BIG opportunities to do so.  From better software design and more meaningful unit tests to better planning and communication, all of us should be able to put together a lengthy list of specific items we can improve on.
  • Kaizen depends on collecting and analyzing data for the purpose of identification AND improvement monitoring. We do this as a team, to a limited extent, at the end of each iteration.  I will present the iteration metrics and graphs, compare the numbers against prior iterations, and we’ll discuss areas of improvement.  But I believe this does not occur frequently enough.  When development iterations begin again in the coming release, I will begin daily analyzing of pertinent data, including burn-down/up and cumulative flow reviews.  By looking at and thinking about these things on a day to day basis we can then really begin to apply continuous improvement in our development processes.

So whether it be looking for how we improve our coding practices, our development processes, or even how to improve our approach to improving, one thing is certain, we will always find something that we can focus on.

The Value of Getting It Wrong

2

Posted by Duggles | Posted in Agile Thoughts | Posted on 02-01-2011

For Christmas, I got the book Where Good Ideas Come From by Steven Johnson. (I really enjoyed his book Everything Bad Is Good For You, so I’d asked for the new one pretty much sight-unseen.) I’ve not finished it yet, but I can recommend it already: he has some really interesting thoughts about innovation and the environments that foster it. If you’ve got a few minutes, this video gives you a good sense of his main theses (and it’s also pretty dang cool).

One item that has stuck out for me in the part that I’ve read so far is the value of errors in innovation. In particular, an experiment that showed what happens when you intentionally introduce errors into what’s essentially a brainstorming session and how it affects the group’s creativity.

At this point in the history of experimental psychology, scientists have a pretty good handle on free association: if I say “green,” there’s about an 80% chance that you’ll say “grass” or “blue” or another color; the chances are much smaller that you’ll “innovate” and say something like “Ireland” or “money”. So by letting a group of subjects free associate after being shown a particular color, and then recording their responses, you can get a specific, quantitative understanding of how much creativity is generated within the group. In an experiment that I find fascinating, one scientist recorded the innovation of small groups after having been shown a specific color, but then threw a monkey wrench into the works: she planted an actor into the group and had that actor pretend to see a completely different color. Where the test subjects saw green, the actor pretended to see red, for example, and proceeded to contribute to the group from this completely misguided standpoint.

Adding error like this had a counterintuitive effect on the rest of the group: it increased their creative output. Where before the group may have been stuck with standard answers, introducing someone who saw red instead of green prompted others in the group to move beyond the obvious. But keep in mind that this isn’t just a group member who’s marching to his own drummer: this guy is truly getting it wrong. “Fire” and “stop sign” are not sensible responses to the color green. They run directly counter to the direction the group needed to go, and yet they helped the rest of the group explore alternatives that they might not have done otherwise.

All of this made me reconsider the group thinking sessions that I’ve been a part of in the past, and how we’ve handled someone who’s got the whole thing bass-ackwards. I’ve always been in favor of the “no wrong answers” rule in a brainstorming session, but considered it a way of keeping everyone involved more than anything else. And when the goal of the session is more directed than just “come up with ideas” – when, as is often the case, you’re actually trying to get somewhere useful – keeping the wrong-headed involved tends to be less of a priority. But it turns out that it’s more than general politeness or “being PC” that should have us valuing each others’ contributions without dismissing or denigrating them: getting it wrong is still wrong, but it may also be useful.

Count on Me!

2

Posted by The Kentuckian | Posted in Agile Values, Collaboration, Planning, Execution, Tools and Techniques | Posted on 31-12-2010

Part of being consistent and reliable is having the ability to do what you say you are going to do, when you say you are going to do it. In previous posts, I have hinted towards this a few times so now I want to just bluntly say that this is one of my morals, and I make great efforts to stand by it.

My reasoning for bringing this topic up is mainly because we recently had a team assessment where everyone on the team anonymously rated each individual member on many different aspects. One of the categories that I scored the highest on was consistency and reliability. This is an area that I have always pushed to do my best in, so now I will share my mentality.

Being on time for meetings, conferences, or just about anything involving others waiting on you should be a practice for everyone, because the reality is, no one likes to wait. It’s understandable to be late occasionally, as life happens and no one is perfect.  One of my methods to ensure that I am on time for meetings is setting an alert or reminder on my mobile phone to go off typically around 10 – 15 minutes before.  My phone is always with me, so I know I can count on it, if I forget.

Planning to arrive or call into a meeting early is also very necessary. If I am busy or focused, and I hear or see an alert pop up on my phone or in my e-mail, sometimes I will go ahead and call into the meeting right away.  If not, I will at least hit “snooze”  for 5 – 10 minutes beforehand so I can still call in early.

Meeting with others at a specific location requires you to factor in a few additional scenarios. These scenarios include things such as traffic conditions, travel distance, and in some cases weather. Again, planning is very relevant.  I typically try to leave several minutes before the amount of time I know it will take to arrive. For example, about once every week or two, I meet out with some friends at one of our local coffee shops to chat and catch up. I usually arrive about 5 or 10 minutes early from the time we planned, so I use that time to go ahead order my coffee and get us a good seat. My consistency in doing this has been inspiring to them as well, so often we will all arrive early.

With a little effort and dedication, anyone can improve on their reliability!

You deleted a partition by accident?

0

Posted by RudeDog | Posted in Tools and Techniques | Posted on 13-12-2010

I am sure we have all been there at least once.  In my case it happened here just recently and I thought I would share on it.  I had attached my trusty 200GB external USB drive to a laptop to pull off any favorite data before I wiped and loaded it with XP.  IBM has a weird way of sometimes setting aside odd boot partitions so when I got to the install I missed that I had the 200GB attached and deleted the partition on it as well.  It does not help that I was doing this very late at night.  So at some point I figured out what I had done wrong and did some googling and found the link to EASEUS Partition Recovery and downloaded and installed it.  I then connected the external USB drive and scanned for it and found and repaired the partition.   Somewhere long ago I used Easeus before and they have improved the look and feel.  It is free and great in a pinch.

http://www.easeus.com/partition-recovery/download.htm

I would love to test it against an SSD to see if it is just a reliable on them as well as hard disks.

Are you giving back?

1

Posted by RudeDog | Posted in Agile Thoughts | Posted on 12-12-2010

So to each and every team member I have to ask this question, what are you doing to give back?  Give back what you ask?  Give back to your community is my answer.  We are encouraged to live and understand and work toward servant leadership.  I for one believe in this concept and have for a long time.  It is rare to hear it said in the workplace but can sometimes be recognized by the actions and the intent.  What better way to practice servant leadership!  I commonly serve the members of my family placing my own needs far behind that of the others in our household.  Remembering this helps me to keep my focus on my own humility.  It is my own thought that I was given gifts and talents and it is my charge to do something more with them than earn a living and provide for my family.  I give from the little time I have to others that are in need of my unique gifts and talents.  There is a food bank and assistance center about 15 minutes from my house where many friends of mine go to volunteer their time.  The center provides assistance to those who are need of assistance with being able to pay their electric or water bills, they offer job hunting assistance and guidance, a clothing bank, and they offer a computer lab where people can come and learn software such as Microsoft Word.  Simply said the center serves the poor and often the homeless.  Nearly everything they use in their computer lab is donated equipment and a few generations old but still very usable.  Working with some other engineers we have been able to smooth out some bumps they experience from time to time and set a path to improve their operational uptime and avoid downtime.  This work does not come at an easy cost.  I am not sitting around on an average weekend but rather I am busy with a hectic schedule of coordinating foster kids visits to family and the normal weekend catch ups from what we missed during the week.  I also assist some elderly people I know with computer problems that they may have.  Most of these people I see giving much of themselves to others so my work for them in my eyes is already paid for.  I consider it a “Paying it Forward” kind of thing. 

There is a story of a girl walking along a beach where the storm of the previous night has washed up hundreds of starfish along the shallow waters.  A man watches as the girl picks each one up and carefully takes it to the deeper water and tosses to allow for the starfish to survive.  He is amazed at such a futile attempt at saving the hundreds possibly thousands of starfish that have been washed up into the shallows.  He cannot resist the urge and begins to talk to her saying “Young lady I have been watching you now for five minutes at what you are doing.  These starfish are washed up in the hundreds in this section of beach alone, you are trying to save them and yet in a few hours the sun will have baked most of them to death in the shallow water”.  Although the young girl heard him she did not respond but kept at her task.  The man was somewhat exasperated and after an awkward time of silence spoke to her again “Young lady how can you possibly think that you are making a difference?”.  Ever so gently the young girl released yet another starfish into the deeper water and paused to look up at the man and replied “It made a difference to that one”.

I am reading a book right now by author Max Lucado called Outlive Your Life.  In Outlive Your Life Max challenges us all to do more with our lives, to make a difference in our world.  My grandfather taught English during the great depression at a CCC camp in Northern Arizona near a town called Adamana.  The CCC camp was there to build what would eventually become Route 66.  He was paid to teach the workers, he chose to also teach in his off time the children and wives of those few whose families came along to the desolate stretch of high desert to live in the tent city and semi-squalor conditions.  I am fortunate to have had grandparents who lived thru the great depression and learned the valuable life lessons they in turn shared with their grandchildren. 

So I challenge each of you to consider giving back.  Step outside your comfort zone.  We could even consider doing it together as a team building exercise.  As Nike put it so well, just Do It!