Behaviour-Driven Development

Until a couple of days, I didn’t know there was something called  Behaviour-Driven Development (BDD). I realized and was quite impressed with how BDD can add value in combination with Test Driven Development (TDD). Below are the principles of BDD, copied from its home page.

  1. It is all behavior - Business and Technology should refer to the same system in the same way
  2. Where is the business value - Any system should have an identified, verifiable value to the business
  3. Enough is enough - Up-front analysis, design and planning all have a diminishing return

Theory is good but we understand concepts better with examples. In fact before I read about BDD at its home page I learnt how to do BDD when I read an article on “How I Learned to Love Testing” presentation, on Rails Envy. The presentation (a 30 minute quicktime movie) explains two aspects. The first aspect is why writing test code is important and how you can get to a mode from “I don’t like writing tests” to “I love testing”. The second aspect is on the BDD using the RSpec plugin for Rails. The concept is good and I really see a value, particularly the 1st principle which would help technical people start thinking and speaking in business terms throughout the development of a system. I am yet to try my hands on RSpec but based on the presentation and the links provided in the above article, I am keen on trying it soon on a project.

Blink this Behaviour-Driven Development at blinklist.com    Bookmark Behaviour-Driven Development at blogmarks    Bookmark Behaviour-Driven Development at del.icio.us    Digg Behaviour-Driven Development at Digg.com    Fark Behaviour-Driven Development at Fark.com    Bookmark Behaviour-Driven Development at Furl.net    Bookmark Behaviour-Driven Development at NewsVine    Bookmark Behaviour-Driven Development at reddit.com    Bookmark Behaviour-Driven Development at Simpy.com    Bookmark Behaviour-Driven Development at Spurl.net    Bookmark Behaviour-Driven Development with wists    Bookmark Behaviour-Driven Development at YahooMyWeb

Comments      Cosmos

Does Knowing Typewriting Add Any Value?

If you ask me, if I love documentation, I would join the majority club, a big NO. But something I am fascinated to do is typing real fast. I would say that I have significantly gained time because of it. If you ask me how, my answer would be the fraction of second I save over a period of time that has made a difference. Maybe hard to realize but I value it. Typing is less of a pain for me for tasks like sending mails, writing a post on the blog, coding when I know what I am doing and the list can go on. I am a keyboard man rather than a mouse man. I love working on my laptop, using my keyboard most of the time (after some thinking I realized I use mouse when I only need some action dependent on a right click). That’s another reason I love to work on a shell prompt or DOS prompt as much rather than on a GUI environment.

I am thankful to my mom, for without her I would not have learnt typewriting. After I finished my schooling my mom wanted me to learn typewriting. I asked her why. She told me that she wanted to do it when she was young but couldn’t do it, and so she wanted me to do it. When I completed the senior grade typing I never thought it would help me until recently when I started observing people more closely, particularly people involved in Software industry.

Those who do not know typewriting, key in looking at the keyboard rather than looking at the monitor. Because they are not used to the keyboard layout and hand-eye coordination is needed to press each and every letter. This definitely causes considerable time lag. The next disadvantage is if one looks at the keyboard and types one has to go back and forth looking into the monitor and keyboard to see if there were any mistakes and correct them. An addendum to this problem is sometimes people don’t realize that due to some reason the focus would have gone to another application which is not expecting an input from the user through keyboard. And the person doesn’t realize until he/she looks into the monitor. You might ask how does it matter but the saying “Small drops of water make an ocean” is what I could think of. The fraction of time I save makes an overall difference. For example typing mails is the quickest thing that I could finish off, provided I know what I have to write.

If you want to leverage speed of typing and learn typewriting, you could do it online. Just Google and you will get lot of sites that teach typewriting online. The first basic rule when learning is to never look at the keyboard and type. It is OK you will make mistakes initially but slowly your hands know where the keys are and you will realize how easy it is to see the monitor and keep typing. By the way if you want to test your typing speed click this link “See how fast you can type“.

Happy Weekend! :-)

Blink this Does Knowing Typewriting Add Any Value? at blinklist.com    Bookmark Does Knowing Typewriting Add Any Value? at blogmarks    Bookmark Does Knowing Typewriting Add Any Value? at del.icio.us    Digg Does Knowing Typewriting Add Any Value? at Digg.com    Fark Does Knowing Typewriting Add Any Value? at Fark.com    Bookmark Does Knowing Typewriting Add Any Value? at Furl.net    Bookmark Does Knowing Typewriting Add Any Value? at NewsVine    Bookmark Does Knowing Typewriting Add Any Value? at reddit.com    Bookmark Does Knowing Typewriting Add Any Value? at Simpy.com    Bookmark Does Knowing Typewriting Add Any Value? at Spurl.net    Bookmark Does Knowing Typewriting Add Any Value? with wists    Bookmark Does Knowing Typewriting Add Any Value? at YahooMyWeb

Comments      Cosmos

Down for Maintenance

Here is another interesting area to look at during software development lifecycle. Once a web application goes live it is not the end. In fact its life starts getting serious once it goes live. New feature releases, updates and maintenance are part of an application’s life cycle. Unless and otherwise it is a critical application every other application would go offline during sometime of the year. During that time you do not want the users to get a “Cannot find …” error. The standard is to post a static page that says “The site is down for maintenance. We will be back shortly”. Today I was stumbling upon few sites and got into Whisher, looks like they were down for maintenance. See below the screenshot of their message. Makes a difference isn’t it?

Down for Maintenance?

Blink this Down for Maintenance at blinklist.com    Bookmark Down for Maintenance at blogmarks    Bookmark Down for Maintenance at del.icio.us    Digg Down for Maintenance at Digg.com    Fark Down for Maintenance at Fark.com    Bookmark Down for Maintenance at Furl.net    Bookmark Down for Maintenance at NewsVine    Bookmark Down for Maintenance at reddit.com    Bookmark Down for Maintenance at Simpy.com    Bookmark Down for Maintenance at Spurl.net    Bookmark Down for Maintenance with wists    Bookmark Down for Maintenance at YahooMyWeb

Comments (2)      Cosmos

What Gets Displayed Matters

Error and exception handling is a part and parcel of any software development. One might be handling the errors and exceptions technically well and make it easy to troubleshoot but the user experience also matters. If something doesn’t work and the user is shown an error page obviously the first reaction would be a let down feeling. But if at all something can calm the end user a bit, it would be in a way the error message is displayed. I was trying to open a document from my Gmail in Google Docs and I got an error page (snapshot below). Though I was disappointed the document was not opening, the message caught my attention and made me smile.

Google Docs Error Page

Blink this What Gets Displayed Matters at blinklist.com    Bookmark What Gets Displayed Matters at blogmarks    Bookmark What Gets Displayed Matters at del.icio.us    Digg What Gets Displayed Matters at Digg.com    Fark What Gets Displayed Matters at Fark.com    Bookmark What Gets Displayed Matters at Furl.net    Bookmark What Gets Displayed Matters at NewsVine    Bookmark What Gets Displayed Matters at reddit.com    Bookmark What Gets Displayed Matters at Simpy.com    Bookmark What Gets Displayed Matters at Spurl.net    Bookmark What Gets Displayed Matters with wists    Bookmark What Gets Displayed Matters at YahooMyWeb

Comments      Cosmos

Foundation Stone #43 - Unlearn and Relearn

Sometime back I had written a post “Lessons learnt from Jenga“. The latest revelation came to me again through Jenga. Somehow I get fascinated to this simple game! Every time I visit my nephew I play Jenga with him. It was only this time that I found a variation of Jenga in a toy shop, called Uno Stacko. If you have not played Uno, then you have missed some fun, particularly when you are in a group during events or functions. Anyway this game is a combination of rules applied from Uno and Jenga. This makes it even more interesting and challenging.

After playing several rounds, in a particular game, we came to a “can’t remove anymore” point where the tower started to sway and even a blow would bring it down. Neither I nor my nephew wanted to pull out pieces anymore, it was quite obvious the entire tower was shaky and clearly the foundation was very weak and supported by only individual pieces.

Uno Stacko - Swaying Tower

An idea stuck to me at that moment, what would it take to do a reverse Jenga? At this point how easy or difficult would it be to construct back the tower to its initial state? I relaxed the rule and used both my hands in doing this, so that I can hold the tower with one hand and it doesn’t collapse. Slowly I started taking the pieces from the top and started inserting them into the gaps. Very soon I realized that it was much more difficult to insert the blocks than to remove them. Because of a poor foundation, the weight of the tower had fallen on its individual pieces that were at the bottom and it was very rigid to insert any piece near them.

Uno Stacko - Collapsed Tower

I had to force and lift the pieces carefully, so that a piece can fit in. But beyond a point I could not hold the tower any more, inserting a piece at the foundation was harder than removing it. Ultimately the tower collapsed. My friends, here is where I realized again, how important the foundations are, if you miss learning them in the first place, it is very difficult to put in those pieces later because, by then you would become rigid, your practices are rigid. Less flexibility provides less scope for putting in those important pieces which are the basis to support for the future.

Uno Stacko - Tower

But there is nothing as impossible. What is more important to realize is that there is always scope for unlearning and re-learning. Creating a stronger foundation is always possible if you are ready to let go of whatever you have learnt (wrong) and build the foundation again by relearning it the right way, which adds more value. Traditions and old practices may not apply for every generation. You can sustain and keep growing only if you are able to let go of old practices that are not applicable and learn and apply what is necessary for the current needs. So my friend, be open to unlearn and relearn as and when necessary.

This post is part of the foundation stone series of posts.

Blink this Foundation Stone #43 - Unlearn and Relearn at blinklist.com    Bookmark Foundation Stone #43 - Unlearn and Relearn at blogmarks    Bookmark Foundation Stone #43 - Unlearn and Relearn at del.icio.us    Digg Foundation Stone #43 - Unlearn and Relearn at Digg.com    Fark Foundation Stone #43 - Unlearn and Relearn at Fark.com    Bookmark Foundation Stone #43 - Unlearn and Relearn at Furl.net    Bookmark Foundation Stone #43 - Unlearn and Relearn at NewsVine    Bookmark Foundation Stone #43 - Unlearn and Relearn at reddit.com    Bookmark Foundation Stone #43 - Unlearn and Relearn at Simpy.com    Bookmark Foundation Stone #43 - Unlearn and Relearn at Spurl.net    Bookmark Foundation Stone #43 - Unlearn and Relearn with wists    Bookmark Foundation Stone #43 - Unlearn and Relearn at YahooMyWeb

Comments      Cosmos

Unit Testing Karma

I recently read an interesting article and a white paper, both related to unit testing.

1. My friend Ajay Rao sent me a link titled “Real programmers don’t test“. I was wondering if it was a post against unit testing. After reading it I realized it was not so. It is a good post explaining why unit testing is not a separate task for good programmers but is part of the coding effort.

2. This whitepaper “The way of Testivus” was a reference from my friend Kanmani Raja. It is a Whitepaper that tells why unit testing is part of your job karma and not a dogma in the form of a story.

It is your karma to read them and clear your mind that unit testing is not an additional burden but part and parcel of coding effort :-)

Blink this Unit Testing Karma at blinklist.com    Bookmark Unit Testing Karma at blogmarks    Bookmark Unit Testing Karma at del.icio.us    Digg Unit Testing Karma at Digg.com    Fark Unit Testing Karma at Fark.com    Bookmark Unit Testing Karma at Furl.net    Bookmark Unit Testing Karma at NewsVine    Bookmark Unit Testing Karma at reddit.com    Bookmark Unit Testing Karma at Simpy.com    Bookmark Unit Testing Karma at Spurl.net    Bookmark Unit Testing Karma with wists    Bookmark Unit Testing Karma at YahooMyWeb

Comments (1)      Cosmos

Foundation Stone #42 - Bring in a Participative Collective Environment

Corn“There was a farmer who grew superior quality and award-winning CORN. Each year he entered his CORN in the state fair where it won honors and prizes.

Once a newspaper reporter interviewed him and learnt something interesting about how he grew it. The reporter discovered that the farmer shared his seed corn with his neighbors’.

“How can you afford to share your best seed corn with your neighbors when they are entering corn in competition with yours each year?” the reporter asked.

“Why sir “said the farmer, “didn’t you know? The wind picks up pollen from the ripening corn and swirls it from field to field. If my neighbors grow inferior, sub-standard and poor quality corn, cross-pollination will steadily degrade the quality of my corn. If I am to grow good corn, I must help my neighbors grow good corn.”

The farmer gave a superb insight into the connectedness of life. His corn cannot improve unless his neighbor’s corn also improves. So it is in the other dimensions! Those who choose to be at harmony must help their neighbors and colleagues to be at peace. Those who choose to live well must help others live well.

Success does not happen in isolation. It is often a participative and collective process.”

This story is a good example to demonstrate that you would be more successful if your peers are successful. The reverse is true as well. If you are in an environment where growth is not cumulative you wouldn’t gain much. When you compete with peers (not physically or personally) the pressure slowly and equally falls on each other that you will automatically try to match each other in terms of mastering skills. You are forced to learn beyond what you already know. Combined with the attitude to share what is learnt, the team together can grow successfully than struggling to learn everything individually. Experiences cannot be learnt from a book but can always be shared. When someone shares an experience you do not need to go through it. The “What to do?” and “What not to do?” is already available as a lesson. It is a way of fast tracking your learning curve. Your team could have a Wiki site that can be used not only for project related documentation but perhaps a section that captures the lessons learnt and tricky situations that were solved and so on. You basically invite people to participate and share their experiences and learn from each other. Participative and Collective Success is continuous and a better way of growth in comparison with doing things individually and trying to be successful.

Thanks Preethi Vaidyanathan for sharing with me the above story.

Blink this Foundation Stone #42 - Bring in a Participative Collective Environment at blinklist.com    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment at blogmarks    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment at del.icio.us    Digg Foundation Stone #42 - Bring in a Participative Collective Environment at Digg.com    Fark Foundation Stone #42 - Bring in a Participative Collective Environment at Fark.com    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment at Furl.net    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment at NewsVine    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment at reddit.com    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment at Simpy.com    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment at Spurl.net    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment with wists    Bookmark Foundation Stone #42 - Bring in a Participative Collective Environment at YahooMyWeb

Comments      Cosmos

Gandhi’s Account

Paise CoinsMost of my monthly payments like phone bills have an online payment option, I subscribe and pay it online and make sure I pay exactly up to the last paise. For those things that cannot be paid online, if cheque is a possibility I pay by cheque. Anything that is taken electronically it is accounted up to the last paise. I realized when I traveled to USA the first time, wherever I have to deal with cash, any balance amount I was to receive, I would get it exactly up to the last cent. In India, when there are situations where you have to pay cash, there are some denominations losing their value and people take it for granted by not returning it back or replacing it with something as simple as a toffee. Examples where this would happen include grocery shops, city buses etc. When I was young I used to get a stick ice, flavored with fruit syrup for 5 paise. It’s hard to see 5, 10, 20, 25 paise coins these days. Slowly 50 paise coins seem to join the list. A change of 50 paise is either not returned or replaced with a toffee.

If you have had an experience traveling in the city buses, particularly in metropolitan cities most likely you would have experienced this. The ticket denominations are still in such a way that you would have to give or get a 50 paise. The conductor (personnel deployed in the bus to collect fare and issue ticket according to the stop where the traveler wishes to step down) either doesn’t give back 50 paise or he writes the balance amount on the back of the ticket so that the traveller can collect it back before getting down. If you are traveling during peak hours, most likely you have to give up the balance. One of the reasonsCrowded Bus - Bangalore City Bus is because of the crowd, you would find it difficult to locate the conductor, and second you would be focusing on getting down from the bus in the stop you want to get down without getting stuck in the crowd. Even if you get a chance to get to the conductor, he would most likely ask for the 50 paise to return back one rupee or whatever rounded off balance is. End of the day it is not the business that gets this additional money but the individual, because anything in excess during accounting at the end of the day goes to his/her pocket.

A Sarcastic GandhiWhat happens to the accounts of the person who lost that 50 paise? Usually people ignore it and in local terms call it off under Gandhi’s account. Not sure why it is called so, but I have a feeling it was called so because whenever you see Gandhi’s smile in the currency after you have lost money that cannot be accounted, it so seems to be a sarcastic smile :-) . If someone tries to recover, it is more likely that he/she has to spend time and effort in recovering it back.

The thought seed - People who face such losses are usually of the middle class segment. India’s estimated middle class population is about 350 million. For the sake of assumption let’s say if every person in the 350 million looses 50 paise in a year then almost 125 million Rupees go into “The Gandhi’s account” every year. If there was a way to collect this amount by the Government, this can be used for noble cause, since it is handsomely a large amount. Of course there’s again a choice for the person to donate that balance or put it back into his/her bank account. What if there was a deposit card, like a credit or a debit card that works the other way? The business that has to pay back an amount (even if it is 5 paise) deposits that respective sum back through the user’s deposit card. Am not here to explain on how the logistics or the business rules behind it would make it work, but I am sure with some thought, there could be several rules framed around it to make it happen for the right purpose and this in itself is not used for more corruption. As always there are technologies that can help make this happen.

Images/Image Editing Courtesy - Naveen Kumar

Blink this Gandhi's Account at blinklist.com    Bookmark Gandhi's Account at blogmarks    Bookmark Gandhi's Account at del.icio.us    Digg Gandhi's Account at Digg.com    Fark Gandhi's Account at Fark.com    Bookmark Gandhi's Account at Furl.net    Bookmark Gandhi's Account at NewsVine    Bookmark Gandhi's Account at reddit.com    Bookmark Gandhi's Account at Simpy.com    Bookmark Gandhi's Account at Spurl.net    Bookmark Gandhi's Account with wists    Bookmark Gandhi's Account at YahooMyWeb

Comments (2)      Cosmos

Next entries » « Previous entries

Creative Commons License  This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.