Serendipity

Sunday, April 05, 2009

Me,My Contry and My People - 1

One more election is coming for India and probably another five years we need to cope up with policies formulated by dumb leaders who don't have any experience in any kind of administration,leave about ruling country.

I had great respect towards Manmohan Singh who is current prime minister of India.But not now.I used to have a feeling that if a person is well educated and a pioneer in his own field, he should beam with self-confidence and self-esteem.But in his case Mr.Manmohan proved that he dont have those two qualities.He become a robot in the hands of Madams and Sirs.He don't have any power in deciding any issue related to administration.How pity it is? In addition to that his own party is not allowing him to contest from any constituency fearing that he may not win from any where in the country.It is very much unfortunate that a person declared as a prime ministerial candidate from a very old and big party doesn't have people support to win from any constituency.

Labels: , , ,

Tuesday, October 28, 2008

My Experience with Open Source Testing Tools - 2

Maturity has different meanings when it is related to software testing tool.

First criteria is reliability of the tool.This means tool should generate the results in most consistent and acurate manner.Here Consistency means if tool pass(or fail) a test then it should always pass(or fail) that test irrespective of number of iterations of test suite execution.

Second criteria is the number of features this tool helps in for testing.Again these features vary depending on the type of testing we are talking about.For ex,if we are talking about performance testing,the number of protocols this particular tool is supporting as performance testing mainly deals with triggering transactions between different components having their own protocols.If the underlying testing is functional web testing then features could be like number of browsers(IE,Firefox,Opera etc) it is supporting as well number of platforms(windows,linux,mac etc) tool is supporting.

Third Criteria is activity under that tool.This mainly tells the number of users using that tool as well as the number of people who are working for that tool to fix the bugs and to enhance the features of that tool.This criteria is very much important in selecting a tool.One can very easily get details pertaining to activy of that tool in tool's website.

Open source Community is anouncing that their products are having high quality than the equivalent commercial software.Opponents of open source arguing just the opposite saying that open source software is highly inconsistent and unreliable.Anyway i dont want to extend this with my own arguments.I am trying to tell the advantages one can unleash by using open source testing tool to a company as well as to an individual.

whenever i evaluate an open source tool, i will follow above criteria.I've selected selenium by following the same criteria.

The main reason for people using the open source tools is not whether their need is served, since in most cases you will find a tool to do the job, but whether the tool is mature enough to invest in. Test automation is a major undertaking that has high costs in terms of upskilling test team and creating test scripts, etc., and people need to know that the tool is a good investment, whether or not there is a license fee to pay. People need to look about if the tool is going to be around in five years' time, what levels of support are available, how good is the feature innovation, bug fixing, release schedules, and so on.

Labels: , , , , , , ,

Thursday, October 23, 2008

Right or Left..It Doesn't Matter

When i was about to write this blog i was reminded of one old popular Telugu song from a movie called "Devadasu".The song starts like this:"Kudi edamite porapatu ledoi..odi poledoi".The exact translation of this song in English is "Even right become left there is nothing wrong in that..it doesn't result in defeat".This exactly applies to our driving licensing system in India.

Today me and my wife went to RTO office to attend for her driving test for two wheeler.Two wheeler is Honda Activa which is a gear less vehicle.She applied for driving licence through an agent which is a very normal practise in India.So first we went to Agent's office which is in near vicinity of the RTO Office.She filled mandatory forms and went to nearby RTO Office to get a stamp from RTO Office.

In the meantime all aspirants for driving licence (two wheeler and four wheeler) asked to wait at some place on nearby road.These aspirants resembles F1 drivers such as Hakkinen, Raikkonen,Alonso etc waiting for their turn to prove their abilities. Nobody knew the place of proving their driving prowess Time was 9:30 am.We waited there till 11:30 am at the same place.Some aspirants started their vehicles for the final practise and at the same time to keep the confidence.Even my wife went for a small practise round.

Then the real story begin.At around 11:40 all vehicles started moving in one direction like a big procession.So we become the part of that procession.We reached that battle ground and again we were waiting there.After a while an SUV stopped before us and one guy wearing a coat come out of that vehicle.After some time i found that this guy is the person who administer the process and who is going to issue or deny driving licence.

All the place,agents are busy calling people by their names by carrying papers.Incidentally first turn came to my wife.She is the first one to prove her driving skills today.This administrative person,me and my wife are standing on left side of the road under a tree.Then this guy asked her to drive on a stretch which could be 100m long and take a U turn and return to the same place.

She started vehicle and move forward.I can't say that it was a nail-bitting episode for me but i was little bit excited as well as worried as that road is a public road unlike a special ground where usually these kinds of drives will happen.I was watching her and this guy to analyse how this guy is analysing her driving skills.But he didn't watch her but after some time he looked at her across the stretch.Till that time she drove on the left side and suddenly i didn't know what provoked her..she moved abruptly to right side of the road and from right side to left side she took a U trun Which is an absolute blunder in driving test.

She was about to reach the starting point on left side and again something provoked her,switch on indicator to come to right side where this guy stood and stopped the vehicle in front of him.Immediately he pointed her mistakes of taking U turn in wrong direction and parking the vehicle on the wrong side of the road.Actually she interpreted his instruction regarding reaching the starting point in other way.

In the meantime,some funny things happened.This guy asked one more lady to go for a drive by giving the same instruction.This lady move forward and one more guy on vespa followed her for his test.She didn't stop at the end of the road and she went into parallel road and enter into this road from behind.The guy who followed her on vespa also motivated by her and he also did the same thing by entered the start place from behind.Here everybody including the main guy anxiously waiting for their turn, almost shocked by their entry from backside of the street :-).

Our agent asked us to go and wait at the other side of the road.Finally agent came and asked her to appear again for driving test after 10 days.I thought it strange.In India,in general people used to get all kinds of driving licences including licences for heavyweight vehicles such as lorry,earchmover and bulldozer without appearing for test.In addition we approached through an agent by paying money and part of that money will go as a bribe to respective govt authority. When we are supposed to leave,agent asked us to call in the afternoon.Then i concluded that may be by taking some extra money he will provide license.I assumed that part of this extra money will again go to concerned govt authority.Finally my guess was right and she got the licence irrespective of direction of U turn or side of vehicle to be parked.Then i reminded of old Telugu song.."Kudi edamite porapatu ledoi..odi poledoi" :-)
.

Labels: , , ,

Monday, September 29, 2008

My Experience with Open Source Testing Tools -1

Since a year i've been working on testing tools unleashed from open source efforts. At first i thought that using open source tools are risky considering three areas:Learning curve,maturity and support.Now after spending a while on these tools i would like to share my experience in a couple of posts.

Learning Curve:
-----------------
In general, learning a open source testing tool needs a high learning curve compared to proprietary tools.But do not assume this characteristic as a disadvantage. The reason is for most of the proprietary tools the underlying scripts are also proprietary. So when a tester migrated from that tool to another tool all his scripting expertise in that proprietary language become obsolete. Anyway the basic building blocks are same for all scripting languages but still a person should put a reasonable amount of effort to learn a new language.  

In case of open source testing tools, all most, all the tools developed by embedding existing main stream scripting languages which are proven as very robust, flexible and useful. For ex, Watir is developed using Ruby and selenium supports whopping six languages.So when a tester equipped with tool expertise invariably he accumulate so much knowledge base in that scripting language which will not be obsolete.In addition to that a tester can write simple utilities on native platform such as search and replace utilities, build preparation scripts etc.. using the gained scripting prowess.It is like possessing sword having both edges sharpened.

I conclude that learning open source testing tool is a win-win situation for both the company(need not pay huge amounts of money to tool vendor per seat base) as well as to individual(equipped with one scripting language which is quintessential for a future tester).

Thursday, April 03, 2008

Trivikram..you disappointed me badly

If somebody ask for the comment after i'm coming out from movie "Jalsa" the immediate one is movie is far below expectations.


First thing you observe while watching movie is you cant find mark of Trivikram Srinivas.I have a great respect towards Trivikram as a Script writer and after as a director.One of my all time best movies is Athadu written and directed by Trivikram.


One significant characterstic of Trivikram movies is humour and the stroyline.Humour is very lightweight and at the same time hilarious.script is very lucid and narration is straight forward.Both these attributes are completely absent in this movie.


The thing which haunted me after watching this movie is what provoked the director to name this movie as Jalsa.In Telugu,"Jalsa" means enjoyment having no boundaries.But storyline is no way reflect that fact.Pavan Kalyan,who is hero of this film always alcoholic and he very often tell to others about his difficulties.Viewer may get a opinion of "is lead character is suffering from self pity?"


Second thing which completely make the movie as dull is Naxalism.Of course there is a formidable reason to join in Naxalite movement.But he never showed that intensity in his personality.Strage thing is you cant guess why he come out of Naxalism even if you utilise your full quotient.


The way the love story narrated between Hero and multiple heroines is horrible.I dont want to recollect the episode.No heroine is bearable.It is better to discuss as less as possible about line of love story.Finally i get a conclusion that this movie story is made up of joining pavan's various hit movies like Kushi,...etc.


I had some hardcoded rules such as if the movie is Trivikram's i can go to that movie without any doubts.Now i am going to amend that rule and amendment is watch Trivikram's movies with cauton !.

Tuesday, February 12, 2008

Performance Testing with JMeter


Performance Testing With Jmeter


From: agoucher, 3 months ago





These are the slides I used to introduce students in my Testing Project course (http://adam.goucher.ca/?page_id=306) to Performance Testing and the JMeter (http://jakarta.apache.org) tool. Of course I cannot upload the hour long walkthrough of the tool as we created a Test Plan for the project but the slides are better than nothing.


SlideShare Link

Ruby on Rails


Ruby on Rails Presentation


From: fbrunel, 1 year ago





A little presentaion of Ruby on Rails. That presentation could be used to introduce Ruby on Rails in your company. More on http://fredbrunel.com/


SlideShare Link

Web Test Automation with Selenium


Web Test Automation with Selenium


From: vivek_prahlad, 10 months ago





This presentation covers an introduction to Selenium, the Open Source, cross browser, cross platform functional testing tool. The talk emphasized the importance of applying the same principles to testing (abstraction, refactoring, DRY) that development teams apply to developing software. (This presentation was used for a talk at the Asian Testing Conference)


SlideShare Link

Testing with Selenium


Full-stack webapp testing with Selenium and Rails


From: alexchaffee, 9 months ago





Want to test your entire Web 2.0 app, from AJAX and DHTML through browser-rendered HTML into a live instance of your application and database? Most web testing frameworks have gaps in their coverage: JUnit and Test::Unit miss the client frontend; JSUnit misses the server backend; web testing frameworks miss some or all of the JavaScript. With Selenium we have a framework that can test the whole application, from browser-executed JavaScript, through a live application backend, then back to assertions on browser-rendered DOM code. Selenium RC takes this further: since you write your tests in your application language, your tests can do data setup and assertions based directly on server-side domain objects that may be inaccessible or only partially accessible from the client side. On our teams we have used and developed a series of helper methods and assertions that allow testing of AJAX and DHTML functions as well.

In this tutorial we outline the architecture of Selenium RC and walk through code and examples illustrating how to do full-stack testing against a Ruby on Rails application.



SlideShare Link

Friday, October 19, 2007

Four Principles of Interpersonal Communication

These principles underlie the workings in real life of interpersonal communication. They are basic to communication. We can't ignore them

Interpersonal communication is inescapable

We can't not communicate. The very attempt not to communicate communicates something. Through not only words, but through tone of voice and through gesture, posture, facial expression, etc., we constantly communicate to those around us. Through these channels, we constantly receive communication from others. Even when you sleep, you communicate. Remember a basic principle of communication in general: people are not mind readers. Another way to put this is: people judge you by your behavior, not your intent.

Interpersonal communication is irreversible

You can't really take back something once it has been said. The effect must inevitably remain. Despite the instructions from a judge to a jury to "disregard that last statement the witness made," the lawyer knows that it can't help but make an impression on the jury. A Russian proverb says, "Once a word goes out of your mouth, you can never swallow it again."

Interpersonal communication is complicated

No form of communication is simple. Because of the number of variables involved, even simple requests are extremely complex. Theorists note that whenever we communicate there are really at least six "people" involved: 1) who you think you are; 2) who you think the other person is; 30 who you think the other person thinks you are; 4) who the other person thinks /she is; 5) who the other person thinks you are; and 6) who the other person thinks you think s/he is.

We don't actually swap ideas, we swap symbols that stand for ideas. This also complicates communication. Words (symbols) do not have inherent meaning; we simply use them in certain ways, and no two people use the same word exactly alike.

Osmo Wiio gives us some communication maxims similar to Murphy's law (Osmo Wiio, Wiio's Laws--and Some Others (Espoo, Finland: Welin-Goos, 1978):

  • If communication can fail, it will.
  • If a message can be understood in different ways, it will be understood in just that way which does the most harm.
  • There is always somebody who knows better than you what you meant by your message.
  • The more communication there is, the more difficult it is for communication to succeed.
These tongue-in-cheek maxims are not real principles; they simply humorously remind us of the difficulty of accurate communication. (See also A commentary of Wiio's laws by Jukka Korpela.)

Interpersonal communication is contextual

In other words, communication does not happen in isolation. There is:

  • Psychological context, which is who you are and what you bring to the interaction. Your needs, desires, values, personality, etc., all form the psychological context. ("You" here refers to both participants in the interaction.)
  • Relational context, which concerns your reactions to the other person--the "mix."
  • Situational context deals with the psycho-social "where" you are communicating. An interaction that takes place in a classroom will be very different from one that takes place in a bar.
  • Environmental context deals with the physical "where" you are communicating. Furniture, location, noise level, temperature, season, time of day, all are examples of factors in the environmental context.
  • Cultural context includes all the learned behaviors and rules that affect the interaction. If you come from a culture (foreign or within your own country) where it is considered rude to make long, direct eye contact, you will out of politeness avoid eye contact. If the other person comes from a culture where long, direct eye contact signals trustworthiness, then we have in the cultural context a basis for misunderstanding.

Guide to Career Planning

The Pmarca Guide to Career Planning, Part 1:

Oppurtunities

The first rule of career planning: Do not plan your career.

The world is an incredibly complex place and everything is changing all the time. You can't plan your career because you have no idea what's going to happen in the future. You have no idea what industries you'll enter, what companies you'll work for, what roles you'll have, where you'll live, or what you will ultimately contribute to the world. You'll change, industries will change, the world will change, and you can't possibly predict any of it.

Trying to plan your career is an exercise in futility that will only serve to frustrate you, and to blind you to the really significant opportunities that life will throw your way.

Career planning = career limiting.

The sooner you come to grips with that, the better.

The second rule of career planning: Instead of planning your career, focus on developing skills and pursuing opportunities.

I'll talk a lot about skills development in the next post. But for the rest of this post, I'm going to focus in on the nature of opportunities.

Opportunities are key. I would argue that opportunities fall loosely into two buckets: those that present themselves to you, and those that you go out and create. Both will be hugely important to your career.

Opportunities that present themselves to you are the consequence -- at least partially -- of being in the right place at the right time. They tend to present themselves when you're not expecting it -- and often when you are engaged in other activities that would seem to preclude you from pursuing them. And they come and go quickly -- if you don't jump all over an opportunity, someone else generally will and it will vanish.

I believe a huge part of what people would like to refer to as "career planning" is being continuously alert to opportunities that present themselves to you spontaneously, when you happen to be in the right place at the right time.

  • A senior person at your firm is looking for someone young and hungry to do the legwork on an important project, in addition to your day job.
  • Your former manager has jumped ship to a hot growth company and calls you three months later and says, come join me.
  • Or, a small group of your smartest friends are headed to Denny's at 11PM to discuss an idea for a startup -- would you like to come along?

I am continually amazed at the number of people who are presented with an opportunity like one of the above, and pass.

There's your basic dividing line between the people who shoot up in their careers like a rocket ship, and those who don't -- right there.

The second bucket of opportunities are those you seek out and create. A lot of what will follow in future posts in this series will discuss how to do that. However, let me say up front that I am also continually amazed at the number of people who coast through life and don't go and seek out opportunities even when they know in their gut what they'd really like to do. Don't be one of those people. Life is way too short.

The world is a very malleable place. If you know what you want, and you go for it with maximum energy and drive and passion, the world will often reconfigure itself around you much more quickly and easily than you would think.

Now, I'm not proposing that you simply ping pong from opportunity to opportunity randomly. You can have a strategy. And here's how I think that strategy should work.

People who manage money professionally don't think about individual investments in isolation; they think of those investments as part of an overall portfolio. Each investment has its potential return -- the benefit you get from owning it -- and its potential risks -- the things that can go wrong. A portfolio, then, is a set of investments, and the portfolio assumes the return and risk characteristics of all of the investments blended together.

Viewed in that context, it is often logical to have individual investments within a portfolio that are far more risky than one would normally find comfortable -- if the potential return is good enough. Or, investments that are far less risky and have far less return potential than one would normally want -- to protect one's downside. The risk of any individual investment is not important; what is important is how the risks -- and the potential returns -- of all of the investments combine in the overall portfolio.

I believe you should look at your career as a portfolio of jobs/roles/opportunities. Each job that you take, each role that you choose to fill, each opportunity you pursue, will have a certain potential return -- the benefits you can get from taking it, whether those benefits come in the form of income, skill development, experience, geographic location, or something else. Each job will also have a certain risk profile -- the things that could go wrong, from getting fired for not being able to handle the job's demands, to having to move somewhere you don't want to, to the company going bankrupt, to the opportunity cost of not pursuing some other attractive opportunity.

Once you start thinking this way, you can think strategically about your career over its likely 50+ year timespan.

For example, when you are just out of school and have a low burn rate and geographic flexibility, you can take jobs with a certain return/risk profile. If you get married and have kids, you will take jobs with a different return/risk profile. Later, when your kids grow up and you are once again free to move about and you don't have to worry about tuition payments and a mortgage on a big house in a great school district, but you now have far more experience than you did when you were first starting out, you can take jobs with a third return/risk profile.

Most people do not think this way. They might occasionally think this way, but they don't do it systematically. So when an opportunity pops up, they evaluate it on a standalone basis -- "boy, it looks risky, I'm not sure I should do it". What you should automatically do instead is put it in context with all of the other risks you are likely to take throughout your entire career and decide whether this new opportunity fits strategically into your portfolio.

Let's dig into the concept of risk a little more.

I'm not talking about the form of risk that you think of when you think of stepping out into the crosswalk and getting run over by an Escalade. I'm talking about the form of risk that financial professionals deal with (see the classic book Against the Gods: The Remarkable Story of Risk for more on this), and startup entrepreneurs deal with, and that you deal with any time you make any decision. There are a set of potential downsides to almost any decision -- but they can be analyzed, and often quantified, and thereby brought under control.

Which is important, because in life, there is generally no opportunity without risk. Doing the legwork on that extra project for the senior person at your firm? You risk exhausting yourself and doing your day job poorly. Joining your former manager at that hot growth company? Maybe it tanks six months later and then your current employer won't rehire you. Join those smart friends at Denny's and start a new company with them? Maybe it completely fails, and you have to explain why you were so foolish at every job interview you do for the rest of your life. There are always real and legitimate reasons why people often pass on opportunities -- they see the risks and they wish to avoid them.

The issue is that without taking risk, you can't exploit any opportunities. You can live a quiet and reasonably happy life, but you are unlikely to create something new, and you are unlikely to make your mark on the world.

To quote Aaron Brown -- a legendary Morgan Stanley derivatives trader and poker expert -- from his extraordinary book The Poker Face of Wall Street, when talking about hiring traders at an investment bank:

What I listen for is someone who really wanted something that could be obtained only through taking the risk, whether that risk was big or small.

It's not even important that she managed the risk skillfully; it's only important that she knew it was there, respected it, but took it anyway.

Most people wander through life, carelessly taking whatever risk crosses their path without compensation, but never consciously accepting extra risk to pick up the money and other good things lying all around them.

Other people reflexively avoid every risk or grab every loose dollar without caution.

I don't mean to belittle these strategies; I'm sure they make sense to the people who pursue them. I just don't understand them myself.

I do know that none of these people will be successful traders.

...or successful at anything important in life.

So, when you are presented with an opportunity, carefully analyze its risks, but:

  • Do so within the context if your likely lifetime portfolio of risks...
  • And do so realizing that taking risk can be a good thing when it leads to pursuing the best opportunities.

All that said, here are some of my opinions about the kinds of risks you should take and when:

  • When you are just out of school -- and assuming that you are relatively free to move and have a low burn rate -- is when you should optimize for the rate at which you can develop skills and acquire experiences that will serve you well later. You should specifically take income risk in order to do that. Always take the job that will best develop your skills and give you valuable experiences, regardless of its salary. This is not the time in your career to play it safe.
  • When you have family obligations -- a spouse, two and a half kids, a dog, and a picket fence -- that's obviously the time to crank back on the income risk and instead take a little risk that you might not learn as much or advance as quickly or join that hot new startup. However, even this is not black and white! In Silicon Valley, for example, it can still make a lot of sense for a young parent to take a risk on a hot new startup because it will usually be easy to get another job if the startup fails -- especially if one has developed more useful skills and experiences along the way.
  • There may be times when you realize that you are dissatisfied with your field -- you are working in enterprise software, for example, but you'd really rather be working on green tech or in a consumer Internet company. Jumping from one field into another is always risky because your specific skills and contacts are in your old field, so you'll have less certainty of success in the new field. This is almost always a risk worth taking -- standing pat and being unhappy about it has risks of its own, particularly to your happiness. And it is awfully hard to be highly successful in a job or field in which one is unhappy.
  • Likewise with geography risk. You start out in one city -- say, working at a software company in Philadelphia -- and you're doing well. You get the opportunity to jump to a faster growing software company in Silicon Valley. Should you take the risk of moving geographies -- to a place where you don't know anybody, and where the cost of living is higher? Almost certainly -- the additional risks of not having an extensive personal network and of tolerating a lower standard of living for some period of time are almost certainly overcome by the upside of being at a better company, relocating yourself to the heart of your industry, and setting yourself up to exploit many more great opportunities over the next decades.
  • Working for a big company is, I believe, much risker than it looks. I'll talk about this more in the next post, but people who work at big companies are subject to impersonal layoffs at any time, and often forego the opportunity to develop skills and gain experiences as rapidly as they would at someplace smaller and faster growing. And then five or ten years pass, and you realize your skills and experiences are only relevant for jobs at other big companies -- and then you have a real problem.
  • Finally, pay attention to opportunity cost at all times. Doing one thing means not doing other things. This is a form of risk that is very easy to ignore, to your detriment.

Those are just a few examples. You will run into specific return/risk situations that nobody can predict ahead of time. When you do, just sit down and tease apart the risks -- and think hard about whether, in the context of your overall career portfolio, they are really so scary that they justify passing on the return potential of a great opportunity. They often won't.

One more quote, this time from Nassim Nicholas Taleb in The Black Swan:

Seize any opportunity, or anything that looks like opportunity. They are rare, much rarer than you think...

Many people do not realize they are getting a lucky break in life when they get it. If a big publisher (or a big art dealer or a movie executive or a hotshot banker or a big thinker) suggests an appointment, cancel anything you have planned: you may not see such a window open up again.

Of course, if you really are high-potential, you're naturally going to be seeking out risks in your career in order to maximize your level of achievement, so you're thinking, c'mon, Andreessen, get to the next point. For which, see the next post!