Tuesday, March 18, 2014

Scrum Retrospective – What about best practices and learning from success?


As per Scrum Guide, the purpose of the Sprint Retrospective is to:

  • Inspect how the last Sprint went with regards to people, relationships, process, and tools;
  • Identify and order the major items that went well and potential improvements; and,
  • Create a plan for implementing improvements to the way the Scrum Team does its work.


But Scrum Guide is silent about on How?

The question of how become more important as scale of Scrum Agile increases in an enterprise.

To answer one part of How – “How and why something worked well?” Fu Pan might be an answer.

Fu Pan concept has its origin in Lenovo and widely supported by its chairman Liu Chuanzhi. The idea is to intentionally slow down and analyze events - both successes and failures - in order to learn from them and move ahead at a faster pace.

Goal:  What had you originally set out to do?

Measure results: What have you achieved and is it what you set out to do?

Brainstorm: Find outcomes, highlights and lowlights of the final result

Analysis: Get to the root cause of why the outcomes were achieved

Insights: Learnings based on the analysis. Determine what to replicate in the future, what behaviors to start, stop and continue

I am planning to use Fu Pan during Retrospective and also at Program level.

Any ideas, pointers?

Reference:

Tuesday, March 11, 2014

For my High Schooler: Application Server


Yash: Today in Java class, we discussed Application Server.

Me: What is that?

Yash: Don’t make fun of me.  Can you correlate it to some interesting example?

Me: I can try.

Yash: hmm…

Me: Ok. Name the planet on which we live.

Yash: Obviously, Earth.

Me: Is whole of earth has a same geographic feature?

Yash: No. We have sea, savanna, tropical jungles, desert, glaciers, polar ice caps, etc.

Me: Good.  Are animals living in these geographies same or different?

Yash: Naturally different. In sea you will find shark, whales, octopus and other sea creatures, in jungles you can encounter lions, giraffe, elephants and other animals. You will certainly find polar bears at North Pole. Similarly in other geographies different animals are living.

Me: Very true. Why so?

Yash: Because, each animal has different requirements to live, this can be fulfilled in a particular geography.

Me: Excellent. Let me rephrase.  Each animal has a different life cycle which can be supported only in a particular geography. Also there are some common requirements like oxygen to breathe, water to hydrate, etc.  which are available in all geographies.

Yash: yep.

Me: Let’s put this whole concept in technical terms. Earth is an Application Server which provides some minimum set of features (like security, object pool, etc.) to hosted containers like tropical jungles, seas, savanna, etc. (Servlet container, JSP Container, EJB Container, JMS Provider, etc.). These hosted containers provide life cycle support to its residents like sharks, whales, lions, etc. (Servlets, JSPs, EJBs, etc.).

Yash: This is terrific.

Me: My pleasure. It’s time for dessert.

Monday, February 24, 2014

For my High Schooler: Inversion of Control


At dining table.

Yash: In programming class, today we have lot of discussion.

Me: About what?

Yash: Teacher was saying that Inversion of control is completely swept the programming land scape. It has changed the way, Java programs are written.  She explained Inversion of Control but most of the students were not able to understand the concept.

Me: hmm…

Yash: But you know, I know what is IoC?

Me: Explain to me.

Yash: It is very simple. In IoC, we try to separate What and When.

Me: I didn’t get it.

Yash: In a program, we have What part and When part. IoC states that separate What from When.

Me: Explain.

Yash: Let me think of an example.

Me: ok.

Yash: I saw you working on very old computer in our garage. In one of the screen, program was asking your name. You entered your name. Then it asked your address. You entered address.  In the end it asked you to save the entered value. Here What and When are tightly coupled.  You cannot enter address without entering name. This is an example of with IoC.

Me: Nice example.

Yash: It is not complete yet. It is now turn of example with IoC. Now think of today’s web page. Suppose you want to create an account with yahoo mail. This page will ask your name, address, phone number, and other things. On this page you can enter your name, address, phone number, etc. in any order.  Here What and When are separated as far as this page is concerned.

Me: Fantastic. You certainly deserve some reward. What about Ice cream.

Tuesday, February 11, 2014

7 Hot programming trends


  1. Preprocessors: No one wants to develop a language from scratch. Either we are getting lazy or smart (why to reinvent wheel). Take a look at Groovy, Scala, Closure, JRuby, Jython, CoffeeScript, Dart and many more.
  2. JavaScript Framework: It seems JavaScript is taking over server side as well. The growing popularity of Node.js, Rahino, and usage of JavaScript in MongoDB, CouchDB and other NoSQLs is self-evident.
  3. CSS Frameworks: Do you remember when last time you written css file for a web application. To handle complex, complicated and huge web applications, CSS frameworks like SASS, Bootstrap, etc.
  4. Single page web applications: I like to quote Einstein -Everything should be made as simple as possible, but not simpler.
  5. Android everywhere: Android is becoming ubiquitous. As internet of things is getting steam, Android will gain. Just look at car’s dashboards.
  6. DevOps: As Scrum and Kanban has gained acceptability in development projects, it is now Operations and Support projects.
  7. More frameworks and platforms for Internet of Things: As internet of things will steam rolled, so the frameworks and platforms supporting it.

Friday, February 7, 2014

Fix It Sprint


Every business application has bugs, whether developed in Agile or traditional waterfall/spiral methodology.  Recently, we tried Fix-It Sprint in one of the project.

During Fix-It Sprint, all team members of Scrum (Pigs as well as Chickens) assembled in a big conference room and laid out the Fix-It plan. By the way, we have weeklong Sprints.  Team devised following format:

Day 1:

  1. First 2 hours to list down all bugs – whether listed in bug tracking tool or not. Also listed technical issues and challenges, as per Dev team members.
  2. Next 2 hours to prioritize and target for the first day.
  3. Remaining 4 hours to complete the items as per the plan.

Day 2:

  1. First  one hour to update the list created previous day with new items, discovered after fixing previous lot
  2. Next one hour to prioritize and target for the day.
  3. Remaining 4 hours to complete the items as per the plan.

Day 3, 4, 5

  1. Repeat day 2 plan

 

After a week, product was in better shape and satisfaction across team about quality of product was astonishingly high.

 

We are planning to repeat Fix-It Sprint, once in a quarter.

 

Is anyone else is doing similar experiment?

Monday, January 27, 2014

Thursday, January 16, 2014

Video Review: Getting Started with Apache Maven

Video Review:  Getting Started with Apache Maven by Russell Gold: Publisher- Packt Publishing: ISBN- 13: 9781782165729



Getting Started with Apache Maven is fantastic. Author/narrator has started from start and covered advance topics gradually.

 

Tutorial is broken down small videos which makes them easy to put in your mobile device, which you can watch during your commute.

 

This tutorial is self-sufficient in it and must for anyone who want to learn maven or brush up his understand.

 

In whole of video author/narrator has shown Mac OS installation but in my experience, most of the software developers are on Windows.

Excellent tutorial for tutorial.

 

Disclaimer: I did not get paid to review this video, and I do not stand to gain anything if you buy the video. I have no relationship with the publisher or the author. I got this video from publisher for review.

 

 

One can get more information about book and related topics from:

 

  1. YouTube teaser: http://www.youtube.com/watch?v=TNRPmJ10-YA
  2. Publisher – Packt Publishing http://www.packtpub.com/getting-started-with-apache-maven/video
  3. Maven site: http://maven.apache.org