Saturday, December 17, 2011

The role of a tech writer on an agile team

There is a common myth surrounding the agile community that being agile means no documentation. This is a huge fallacy. The agile manifesto states clearly that we value working software over comprehensive documentation. It also states the following:

"That is, while there is value in the items on
the right, we value the items on the left more."

For me as long as the documentation is useful and will be read we should still do it. This might be user manuals or supporting sales material. Whatever the document it's often a good idea to have a technical writer on the team. Some clients do require  comprehensive documentation even if it's just a checklist item. If they can't be dissuaded and they are willing to pay for it then I say do it. So yes we do want a writer on the team.

One mistake I've seen teams make is to start the documentation for a story after it's been completely developed. The theory is that this prevents rework, but the side effect is that there's often documentation left undone at the end of the sprint. The tech writer gets frustrated due to the lack of time left and can feel that it's their fault that the sprint commitments weren't met. This can lead to the documentation to be written one sprint behind the development. What's the big deal with that? Well if there are any questions for the developers they're already focusing on something new. These questions can disrupt the developer through causing them to dredge up the memory or go back to the code to remember what they did.

So how do we fix this? One way is to have the tech writer attend all of the important design meetings with the developers and testers. They should get enough information to start work. Sure there maybe some rework and screenshots that need to be taken can't always be done until the end, but you've now lessened your risk for not getting everything done. If the writer has any questions they can ask the developers while everything is fresh in their mind. Another strategy is to pair the writer with a tester on the team. Testers are great at seeing all of the intricacies of the story and can communicate that to the writer.

I'm interested to hear about how other teams deal with technical writers on their team. 

Friday, December 16, 2011

Android Contact Storage issues when syncing Twitter and/or Google contacts?

For the last 6 months I've slowly been running out of phone storage space on my HTC Desire. This means that I've been hovering between 3 and 16 MB free for a while. Unfortunately the HTC Desire only has 128 MB of internal storage and as soon as I go below the 15 MB mark my phone stops syncing its apps.

Until recently I didn't realise where the space was going so I tried a few things, short of rooting my phone, to fix it.

Firstly I made sure that all apps that could be moved to the SD card were moved. This helped slightly but I soon realised that it didn't help as much as I had hoped, this is due to the dalvikCache. Even though an app is on the SD card, Android creates a dalvikCache instance of it on the main phone storage which is usually smaller than the original but not always by much.

Secondly I deleted all applications that I didn't need. Then I started to delete applications that I do use in descending priority order. Three days ago I was down to only having the apps that came loaded onto the phone, the Google+ app and DiskUsage. Blogger, Facebook, Evernote, Feedly and Twitter had all been uninstalled.

This was the last straw and I made a last ditch effort to find a solution, or I'd go ahead and root my phone.

Though I'd searched for solutions many times before, this time I came across an article that gave me some hope.

Clear Storage Space on Your Phone Without Rooting

This article mentions a Contact Storage bug which causes it to bloat but doesn't give a great amount of detail. Mine was around 50MB so I figured that this post might be onto something. Long story short, I tried the solution listed in the post but wasn't able to restore my contacts other than the ones that were saved to my phone as opposed to my Google account. What this did allow me to discover was that I had over 1200 contacts synced to my phone from Google+ each just containing a URL to their profile. I believe that this could well be the reason why my contact storage was so huge rather than a bug.

What I ended up doing to fix the issue was as follows:

1) I uninstalled Google+
2) Turned off all app syncing within Accounts & Sync
3) Deleted my Facebook for HTC Sense account entry from Accounts & Sync
4) Cleared my Contact Storage
5) Restored my backed up phone contacts to my phone storage (not the 1200+ that were attached to my Google account)
6) Verified that the small amount of contacts had been imported correctly
7) Added a new Facebook for HTC Sense account and made sure that Sync contacts was on.
8) When the Facebook sync was complete, I verified that there were entries in my people app and re-linked accounts appropriately
9) Reinstalled all the apps that I wanted.
10) Turned on all the app syncing again, except for Sync contacts for my Google account and my Twitter account.

Note: I did lose some contacts so I don't recommend you do this yourself

When this was all done I had most of my contacts back and Contact Storage was down to about 2MB in size. For now I'm not going to sync my Google or Twitter contacts to my phone as I have between then 1900+ people. This will hopefully give me enough room until I upgrade my phone in 8 months.

I'm curious of any other heavy users of Google+ or Twitter have experienced similar problems.

Wednesday, December 14, 2011

Has the ScrumMaster role evolved due to a vacuum in line management?

If you look at the ScrumMaster role you'll see that they are there to serve the team. They are there to guide the team to improve themselves and the way they work. They are there to protect the team from unhelpful distraction. They are there to help the team overcome any obstacle that is preventing work from flowing smoothly. They are there to help the team self organise rather than telling them what to do. They are there to help the team deal with conflict and finally they have the authority from management to do all of the above. I could go on, but these are the most important parts of the ScrumMaster role.

The thing is all of these responsibilities are all things that a great manager does, so why does the ScrumMaster role even exist?

To me this implies that there are managers out there that don't realise that the items listed above are part of their role. This is especially prevalent in IT where managers have been pulled from the ranks of the company's senior engineers and given some management training. This isn't a bad strategy as managers should have the experience in the field that they are managing, but I'm of the view that management is something you need to have a passion for rather than just the next step in your career ladder. If you don't have the passion you won't necesarily drive yourself to improve continually. Good ScrumMasters have the passion and drive themselves to improve as well as their teams.

Some other posibilities as to why the role exists is due to the inherent lack of trust of management and company's with a culture of fear. The team tends to trust the ScrumMaster more as they have no authority over the team other than that agreed to by the team. In addition, as I mentioned before, they are responsible for protecting the team from undue distractions.

My final thought as to why the role came about is due to consistency. Management styles differ greatly between people within an organization or even the same department. Add in the fact that in larger organizations, managers change every few years which can cause the way the team works to change drastically. With a ScrumMaster you know what you are getting as the responsibilities are pretty clear. Yes each one may do things slightly differently but the core should be the same.

Of course the ScrumMaster is there in another capacity and that is of a pseudo project manager, but this is needed less as the team self organizes.

I'm not trying to bash line managers here, but I do believe though that both roles should be very similar. I also believe that both roles can work together to achieve great results.

I'd love to hear your comments about my post. Do you agree or disagree? Have I missed something?

Thursday, December 1, 2011

The merits of best practices

For many years now I've had a dislike for best practices. This isn't the fault of the best practices themselves, but because people adopt them without thinking just because they've been told that they're best practices. I'm far from blameless in this regard too.

My view is that the merits of adopting should be questioned before proceeding. Unfortunately the problem with best practices being blindly adopted isn't going away no matter how many times myself and others talk about it. With that in mind I propose a new meta best practice:

Evaluate the merits of a best practice before implementing it.

Feel free to evaluate the merits of the above :)

How do you feel about best practices