Wednesday, February 17, 2010

The Pure Desire

I wish the writer in me is able to express my thoughts like the one below. Never mind, till there are people doing it for me. Thanks to T.O.I. writer who has written the beautiful article below, that truly intercepts my feeling...

...
There are four types of people. Most belong to the fourth category. Caught in the net of maya, delusion, they are oblivious of dangers. There are some who have awakened to a higher dimension and are aware of life’s pitfalls. They make sincere attempts to free themselves. They are the yogis. A few, the sanyasis, are able to free themselves. Rare is the person who, even while living in the world, remains out of it - ever free, the nitya mukta, the jnani.
...
A jnani is a dynamic actor but maintains his objectivity right through. He thinks “I do nothing at all” while actions are going on.
...
Renunciation is not life denying, it is life enabling.
...
A sportsperson, for instance, who turns his back on the trophy gets the trophy and enjoys the celebration.
...
Renunciation is not keeping away and living a life of seclusion. It is learning to live a life of inclusion by weeding out that which comes in the way of a fulfilled life. Ultimately, renunciation opens the doors to realisation.
...

Complete extract at below link:

The question I have after reading this and anyone may have, is how do I get there? I think only a pure desire is enough to take us there. Desire to reach the level of Jnani and feel the joy of this beautiful world created by HIM.

Bidding for Agile SCRUM projects

I received a call from one of my friend asking if I had any idea about how to decide the cost of a project if it needs to be used for bidding for an Agile SCRUM kind of a project. I was puzzled at the thought at that very moment. I directed him to one of my friend who is an expert in SCRUM.

But, later I searched about this on internet and found few good posts pointing to some solutions and thoughts regarding the same, as following --

....the price for the project was fixed, but the features themselves were negotiable according to rules agreed to in the contract. The features were broken down, and time was tracked on each feature. Whenever the development team took longer than anticipated, the client removed scope. Conversely, when the development team finished a feature early, scope was added. In order to add incentive, effort added or removed was discounted by 50%. For example, if the development team finished 2 days early, only 1 day of extra scope was added. On the other hand, if the team finished 2 days late, the client only removed 1 day of scope. The contract actually specified the rules by which scope was added or removed.....

More detail at -- http://www.codesqueeze.com/how-to-sell-agile-to-fixed-bid-contract-clients/

Additionally, TDD, test coverage reports bundled with CI are key to achieve the required quality and agility during the project execution.

Wednesday, January 6, 2010

Pomodoro

I just started using a useful time management technique and would like to record some details about the same for sharing and future reference.

The Pomodoro Technique™ is a way to get the most out of time management. Turn time into a valuable ally to accomplish what we want to do and chart continuous improvement in the way we do it.

The basic unit of work in the Pomodoro Technique™ can be split in five simple steps:

  1. Choose a task to be accomplished
  2. Set the Pomodoro to 25 minutes (the Pomodoro is the timer)
  3. Work on the task until the Pomodoro rings, then put a check on your sheet of paper
  4. Take a short break (5 minutes is OK)
  5. Every 4 Pomodoros take a longer break

http://www.pomodorotechnique.com/resources.html

Try it!!!

Tuesday, January 5, 2010

Lean principles

While going thru a book on Lean Principles by Mary & Tom Poppendieck, I want to preserve quick notes, which form the essence of the lean approach to software development.

1. Eliminate waste - Whatever gets in the way of rapidly satisfying a customer need is waste
2. Amplify Learning - Encourage learning and discovery instead of first time perfect approach.
3. Decide as late as possible - In an evolving market, keeping design options open is more valuable than committing early.
4. Deliver as fast as possible - Design, implement, feedback, improve. The shorter these cycles are, the more can be learned.
5. Empower the team - Involving developers in the details of technical decisions is fundamental to achieving excellence.
6. Build integrity in - integrity comes from wise leadership, relevant expertise, effective communication, and healthy discipline; processes, procedures, and measurements are not adequate substitutes.
7. See the whole - When individuals or organizations are measured on their specialized contribution rather than overall performance, suboptimization is likely to result.

Reference: http://www.poppendieck.com/ld.htm

Wednesday, December 9, 2009

YAGNI

You ain't gonna need it.

Yesterday we were doing a DB design in our project which is just in its first sprint. I was paired with my team mate for this task and we were just going into discussions shaping our DB structure. Normalizing it and so on.

At one point I suggested a point from the perspective of extensibility in future. My team mate who is also our SCRUM master suddenly said YAGNI. And he started laughing. I was wondering what was that. Which language? Latin? Greek?

He quickly googled for the word YAGNI and the all the results said - "You ain't gonna need it". Instantly I recollected the SCRUM phillisophy of NO Big Design Upfront - NBDU. Just be in present do not worry a lot about future.

We laughed for while and continued back to work.

Thursday, December 3, 2009

Acceptance TDD

1. In acceptance TDD we first define the specific user- or customer-valued functionality we want our system as a whole to exhibit and only then implement the said behavior,most likely using TDD.

2. Acceptance test are:
-Owned by customer
-Written together with customer, developer, tester
-It is about what and not about how
-expressed in the problem domain -consize, presize

3. The requirement is to achieve correctness at feature level and not at code level.

4. Dev Cycle:
-Select a User Story
-Write Acceptance tests for the story
-Automate above tests
-Implement the story to pass teh above automated acceptance tests.

Back to SCRUM...

Long time.. almost 7-8 months.. I was missing SCRUM actually.

Thanks to my new assignment in my new job :). I am back to a SCRUM team, playing the role of the tester. I am happy that I can use all my learnings from my Waltham University :) for my new team and project.

Right on my first day I heard back all things about SCRUM, which I was forgetting slowly being out of touch since last few months. I had my first standup meeting today and people are talking about TDD and Acceptance TDD. Cool.