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

 

 

 

Wednesday, January 15, 2014

Book Review: The Project Management Tool Kit: 100 Tips and Techniques for Getting the Job Done Right

Book Review:  The Project Management Tool Kit: 100 Tips and Techniques for Getting the Job Done Right by Tom Kendrick: Publisher- AMACOM: ISBN- 13: 978-0814433454



The Project Management Tool Kit provides ready reference of tools any project manager must be using in a project. As the name suggest, this book is really a utility belt for project manager.

 

This is a reference book based on PMBOK, with very concise summaries of project management processes. None of the topic in this book exceeds couple of pages which makes it interesting and easy to grasp.

 

This book should be must for any budding project manager as well as experienced.

 

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

 

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

 

  1. Amazon: http://www.amazon.com/Project-Management-Tool-Kit-Techniques/dp/0814433456

Monday, January 13, 2014

Book Review: Version Control with Git: Powerful tools and techniques for collaborative software development

Book Review:  Version Control with Git: Powerful tools and techniques for collaborative software development by Matthew McCullough and Jon Loeliger: Publisher- O'Reilly: ISBN- 13: 978-1449316389



Version Control with Git is an attempt to one book for reference, tutorial and manual. This attempt makes book bulky and confusing at time. Though book talk about installation on Windows environment but after that it completely ignores windows. In my consulting experience, I have noticed that most of the developers are on Window though servers may be running on Unix/Linux.

 

It seems to me that book assumes basic familiarity with version control systems but never states this assumption clearly.


I will prefer a book which focuses on narrow customer base rather than spray gun tactic.


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

Further reading: There are several books on similar topic. My favorite is Pro Git.

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

 

  1. Amazon: http://www.amazon.com/Version-Control-Git-collaborative-development/dp/1449316387
  2. Publisher -- Oreilly http://shop.oreilly.com/product/9780596520137.do
  3. Git documentation -- http://git-scm.com/documentation