Wednesday, October 14

Everything is High Priority and Distributed Agile

W
went to the Agile Product Owners and Business Analysts Meetup Group last night.

The facilitator cancelled at the last minute. Since I was the only Co-Organiser at the meeting I stepped up and ran the session.

I wheeled out the whiteboard and we brainstormed topics that the attendees wanted to talk about. Then we dot voted on the captured topics and two of them received most of the votes.
  1. Everything is High Priority 
  2. Distributed Agile

Everything is High Priority 


It seems to be a universal experience. Almost everyone has come across bosses, stakeholders or customers who refuse to prioritise.

Most of the solutions generated by the attendees involved avoiding the concept of priorities altogether.

  • Using Ranking (Not allowing items to have the same priority. Just using a ordered list.)
  • Using Defaults (Telling them your best guess priority and telling them that unless you hear back from them you are going with that)
  • Using Business Value.
  • Using Business Value divided by Estimated Time of development.
  • Using Risk (what are the elements that have the most unknowns)
  • Controlling the size of the backlog / ranked list.

Distributed Agile


A large percentage of attendees had experience with distributed teams.

The issue that seemed to cause the most trouble was timezones and either non-overlapping business hours or where the overlap was small.

There was also agreement that some sort of digital Kanban Board or some other form of item tracking was vital.

Some face to face contact was also considered vital.

Sharing the pain of off-hour meetings and not letting one sub-team feel like second class team members was also mentioned.

Making sure that all sub-teams had a clear understanding of the process and a clear understanding of the reasons behind the process could be an issue. Credibility of the company could be an issue as there was a danger of Agile being seen as a business fad if it was enforced top down.

  

Tuesday, October 13

Zen, Improv Theatre and Responding to Change

Steve Mitchell conducted a very interesting and useful session at Agile Coaching Circles last night.

I experienced Steve's workshops before at LAST Conference 2013. Along with the session on visual communication his session was the most memorable workshop at that conference. I have certainly obtained a lot of mileage out of those workshops over the years. I have used them on software teams to increase mindfulness and creativity, at my toastmasters club as an ice breaker and on my children as a fun bonding activity.



Steve's workshops are an interesting blend of Improv Theatre, Mindfulness Training, Divergent Thinking Training and Buddhist Philosophy. With one exception the exercises  Steve taught were different from the ones I learnt before.

He started off with a spatial awareness meditation to help get us in the mood and shake off the cares of the day. 



When I have used Steve's exercises on client's before I haven't incorporated his Eastern Philosophy, however after the session last night I am starting to think that was a missed opportunity. The Buddhist religion has surprising synergy with Change Management as its core principle is the need to be open to change, that all suffering is caused by resistance to change, by attachment to the Status Quo and our own Imagined Future. I probably won't mention to my clients that elements of what I am teaching come from Buddhist Philosophy. Steve certainly didn't mention Buddhism during the session, I was only aware of the origin of some of the ideas from other sources. Mindfulness, of course, comes directly from Buddhism, even though listening to Western Psychologists and Business Gurus, you would think they invented it.


It was a refreshing change to attend a workshop that was so active. This active participation  is one of the reasons I find Steve's exercises so valuable. Instead of passively receiving the wisdom of the presenter the attendees are constantly engaged participants in their own learning.  Even small workgroup sessions are not this active.


Instead of teaching us how to convince others how to accept change, Steve taught us to be more open to change, by both, teaching us by example, and teaching us that change begins with us.


Monday, October 12

Common Complaints heard at the Scrum User Group Meeting


I attended September's Scrum User Group meeting where we split into 6 workgroups of about 6 and discussed what issues outside our traditionally immediate sphere of control where causing us problems. Areas that might not get addressed in a normal retrospective as being outside scope. Although I must say that my teams have discussed most of the topics brought up in the Scrum UG in retrospectives at one time or another.

The first thing I noticed was how similar the problems brought up by my fellow workgroup members were. The first half of the session was devoted to identifying problems, after which workgroups created cards outlining the problems which were then displayed.

We all examined each other's cards. We were supposed to pick a card, then form another set of workgroups to brainstorm a solutions. All the card listed very similar problems. In fact I couldn't tell which one been written by my original group.  I picked one at random and a second workgroup formed to tackle brainstorming solutions.

The number one pain point was

Constantly Changing Requirements


Most people wanted to freeze requirements and / or reduce / funnel / manage communications.

Interestingly the Aconex Project Manager was very much against freezing the backlog during a sprint.

My approach to the problem is the opposite.  I will increase communication often with a larger pool of stakeholders. I will make the conversation more concrete with design mockups, paper prototypes, mocked up screens with fake data, and more traditional partially functional prototypes.

Changing Direction and Losing Focus

There is a tension between maintaining a targeted focus and being adaptable enough to respond to an evolving understanding of the requirements. However I would rather lose a little of the sunk costs than end up with something that is not going to be used.

If it is clear that the stakeholders are not able to provide a clear consistent vision for the product or service that the team is building I am not afraid of going back to the discovery phase.

The natural tendency is to start coding too soon.  At the initial inception and discovery phases I prefer to use whiteboard, flip charts and pen and paper. Even when Teams resist early coding, they often go to Illustrator and Photoshop too soon. It is better to use hand drawn designs to build the initial consensus.

Scrum usually recommends not interfering with the sprint backlog within the sprint, but in practice work items are constantly being re-evaluated and re-interpreted as the sprint progresses. Just because you have the same card on the board as it travels from the waiting end of the board to the done end of the board, doesn't mean that it symbolises exactly the same task at the end of the sprint as it did at the start.

Interruptions


One solution that is often proposed is placing a gatekeeper between the development team and the stakeholders. Statistics and studies are often cited that show the high cost of context switching and the frequency of interruptions in the modern workplace. However the gatekeeper usually becomes a bottleneck. Communication suffers and is distorted as gatekeeper re-interprets and re-phases the information according to her understanding and experience which is often different from both the development team's and the stakeholder's. Most teams suffer problems because of lack of communication and a gatekeeper's job is to reduce communication.

My solution would be to setup cadences of set times to to co-ordinate or ask for assistance and have the team come up with their own protocols on how and when to interrupt.  Often it is we, that interrupt ourselves. So turning off toast and only checking email and messages at set intervals can help.

Often the cost of changes and interruptions fall unevenly on the team overloading your knowledge keepers, your specialists. Shifting your highest performers to coaching and training the other members of the team will mean loss of inefficiency, productivity and poorer quality in the short to medium term. Yet failing to do so, can lead to them being overloaded, becoming bottlenecks, and risking knowledge loss when they leave.

Other Issues that were discussed where
Unsurprisingly the Convenor / Moderator / Event Organiser Craig Brown picked up on the similarities in topics workgroups focused on, as well. There was a discussion at the end where the themes of the night were elaborated and possible solutions shared.




Monday, October 5

Pencil and Paper Battleships


School holidays and I wanted to spend time with my daughters. I remember how I used to play Pencil and Paper Battleships with my brothers. I do a search and none of what I find is anything like what I used to play with my brothers. So I made up some sheets from memory and they were a big hit with my daughters.

Maybe a kind reader could tell me where we got these rules from. I am not sure whether we made them up or got them from somewhere else.

Burns Family Rules for Battleship

Place the following battle units on the “Your Ships” grid. The units can be rotated or flipped to face any direction. However they cannot be placed running in a diagonal direction. Units cannot be placed next to each other. There must be at least a one square gap orthogonally and diagonally between each unit.

The following ships must be placed in ocean squares on the grid.



The following air units must be placed on any squares on the grid.
The following ground units must be placed on land squares on the grid.



Now that all units have been placed on the grid. Each player takes turns guessing the location of their opponents “Ships”. They fire off a “shot” by calling out the ‘Letter’ and ‘Number’ of a location on the grid. Their opponent calls out ‘Miss’ if they have nothing at that location and ‘Hit’ if they do have something there. If all squares of a ‘Ship’ have been hit then the opponent announces the type of “Ship” sunk and the fact that it has been destroyed. The tally box of the ‘Ship’ (to the right of the grid) should be crossed out when a “Ship” is destroyed. The first player to destroy all their opponents ‘Ships’ wins.
Three times in a game a player can use a mega-bomb. Mega-bombs hit everything at the called location and all 8 adjacent squares. The opponent calls out any hits from the bomb and their location plus the names of any ‘Ships’ destroyed. Cross out an ‘M’ tally box each time you use a bomb.


Game Sheets 



Thursday, October 1

Source Code on Github for Simple Card Game written in Swift


I knocked up a simple game in swift using SpriteKit as part of a job interview. Its based on a game my family plays all the time using real physical cards. I put it in the app store under the name Rickety Kate and uploaded the source to Github. You might find it takes 8 to 16 days for the code in the repository to find its way to the app in the App Store, one and half review cycles on average.




I probably over engineered this one. You can build your own deck of cards, anything from a 40 card deck with 4 suites to a 168 card deck with 10 suites. I knocked up some very simple input controls to control the options.




Putting 1x and 2x images  in texture atlases was a little finicky. I did a little experimentation and the 2 versions of the images seem to need to be in the same atlas for the 2x images to be automatically used in a retina device. Also here were problems unless all images in a atlas had the same number of versions e.g. they all needed to have 2x versions or none should have them. I have not tried using 3x images yet.

I am going put out a series of very simple games and apps. I put out another card game called Sevens. Next one after that is going to be a tilt game with retro neon line graphics. Set in the wreckage of a large city post alien invasion, you pilot spacecraft picking up refugees, and ferrying soldiers, diplomats, wounded, equipment and supplies while avoiding Lurkers, Tripods and Space Jellyfish.


Update: Rickety Kate 1.1.4 Just passed review (22/01/2016) and  v1.0.2 just passed review (09/01/2016)

Rickety Kate is now localised for English, French, German, Portuguese and Spanish.