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?