Sunday, January 31, 2010

Embracing scrum

Introducing scrum to a first-timer team may not necessarily be difficult. Even if the team is completely ignorant of the scrum-way-of-working, the following steps could ensure a smooth process sustenance.
  1. As a scrum master, focus only on the scrum process for the first couple of sprints. Ensure that none of the steps are bypassed and every step (that has been decided by the process team) is adhered to as a religion.
  2. Hand hold the team about what is to be done at each step - what questions are we trying to answer here? Develop your own "team jargon" that the team can connect to, for each activity.
  3. Punctuality is a MUST. All meetings start absolutely at the decided second, and ends as decided or earlier. All meetings have to be conducted and recorded even if there is nothing to discuss.
  4. Conduct the Daily scrum meetings with passion. New teams members start respecting and appreciating scrum from the Daily scrum meetings. Keep the sessions clean and crisp. (If you are not confident, practice your part thoroughly or attend other scrum meetings). These sessions will help you drive across the core spirit of a scrum team.
  5. Celebrate each sprint closure.

Saturday, January 30, 2010

Flash Dial (Gauge) Component

For an application, I needed a Dial (Gauge) component made in flash (preferably in AS3), and open source!. After searching for sometime, I got some great, and some not-so-great components. A few are listed below:
  1. One of them, a classic, is from Bright Point, but unfortunately in flex.
  2. A good collection of components from AnyChart lie here, but not free.
  3. Another one was from XML/SWF, mediocre, but again paid.
Hence, decided to write my own. I am sure this could benefit few of you too.

Objective:
  1. Create a flash Dial component,
  2. that had capability to define regions (at least 3),
  3. as well as support percentage display,
  4. customizable background colors,
  5. real time value update without refresh would be bonus.

Here is the outcome written in flash (<30kb). It has the following methods:
  1. InitiliazeComponent: takes the following parameters: Minimum Value, Maximum Value, Percent Display Needed?, Region Definition
  2. DisplayNewValue: takes "New Value" as parameter. 
Rather than using the traditional SetVariable route, I used the ExternalInterface (which is by the way, newer and much better). Some very good posts are available in this regard, here. The ExternalInterface is also pretty smooth when calling from .NET applications. Will be covering this area later.

Here is the application being supported by a javascript test page. The loading of display parameters as well as dial value is done through javascript. The body onload event in the browser did not wait for the Flash SWF to load completely, firing much before the movie actually got loaded. Thanks to the new way of communication between flash and External apps, the parameter loading javascript waits for the flash to complete loading the movie first.

Do write in the comments if you like it and/or need the AS3 source code.

Thursday, January 28, 2010

Understanding finer issues of Scrumming

Out of experiences, we gather that using small control points we can move the earth. In scrum discussions, we come across such control areas listings that need to be monitored and attended to. These control points, if adhered to, help manage the project flow with ease. If not religiously followed, can be the starting points of damage.

One such area is the "Defend Meeting" that surprisingly does not figure high in these lists. Why so important? Because when it comes to planning, 50% of us are below average.

The Defend Meeting is a team session that is conducted after the initial planning is done by the inidividual members. Here the members "defend" their plans towards a team concensus. This session gives one more chance to rethink the plan and helps each member to see the COMPLETE picture, hence reach better team estimates. It is often seen that it brings out a lot of missing links that have not been thought during the planning. The Defend Meeting helps the team fight out their insecurities (especially the younger ones) and iron out the "coordination critical paths".

Another mantra that I learnt from an associate team, Mike Marcus and Don A Hampton, is "Expose inefficiency". The team starts to unearth flaws early in the game. In a truely fluid agile environment, rather than promoting wrong competition (as we would think), this team behaviour actually binds them together and works out better. If the team members are in seperate locations or multiple teams are coordinating or team size is big, this princicle is a must. (Ideal size is still 6 though). This principle could be promoted as one of the team policies and reminded as often needed. Do not shy away from marking the lapses or failures in the Sprint Review document.