Saturday, March 29, 2008

Large System Integration Testing Projects - What to watch out for...

Testing was looked down (even in some corners it is still prevalent). But let me take a lead and proudly say, that after seeing the IT world from all sides - Dev,Testing,Maintenance - Product and Services as well...I feel Testing is a REAL intellectual challenge and process. It gains its enormity from the point that No other process except testing can give a solace(or sleepless nights) when it comes to credibility of a release. It also is infact one of the most THORNY activity in any software Life cycle.

Various factors make it critical - Type of bid (Fixed, T&M, Size of project,Domain etc etc)

Anyhow i thought of putting my thoughts togather on What are the key characteristics and challenges when there is a testing planned for a LARGE System Integration projects

Tighten your seat belts ...Here you go..

•Large systems integration projects usually are mission critical and have high quality goals not only in terms of providing functionality but also towards high availability, performance, resilience and robustness of the system.

•These projects span over multiple years and business dynamics tend to change during this period.

•More often than not, these are developed in multiple releases having parallel development and testing phases of overlapping releases to maintain the schedule of the project.This increases the complexity of managing large projects.

•These have very typical characteristics of having many possibilities of getting under estimated due to the uncertainties and large number of independent variables that leads to schedule slippage and effort over run.

•Generally significant number of stakeholders and big team size of large programme leads to issues related to communication and coordination.

•Typically in such projects, project team can never be sure that the functionality that is being designed is the one will be deployed finally into the production. There is high possibility of the scope creep that is initiated by the customer, from technical point of view initiated by the vendor and from risk point of view that is decided by the need of the project.

•Usually large projects executed by multiple vendors from multiple locations in different countries having diverse culture and exploit multiple technologies.


Can you collaborate more.,...

~ Manav Ahuja

Newly coined phrase for the current phase of my life

Today while chating with some near dears of mine, i accidently coined something which is giving a new meaning to my life.

Without keeping it a secret any more here it is:

"Be optimistic to the last iota of the breath, even if you are the ONLY one to be so".
..... Manav

Friday, March 21, 2008

What IT Vendors SHOULD provide

I know surveys are the most crudest things to proclaim anything.They are the best means to corrupt the thought process as well.

BUT...

Recently i was reading one of the blogs and found this intrested piece (a survey report) and felt its so very relevant to us. So thought of sharing through my blog as well.




Keep strategizing...

~Manav Ahuja

Sunday, March 16, 2008

GUI Testing - "Most Common Bug Patterns" - Part -1

Being a long timer Web developer and thereafter Web Tester i think it has been long due that i start recollecting my experience and share it here for the entire community to leverage / synergize and take a note of for future. I have just finished collating a few so thought of penning at these early hours of Sunday morning (BTW its 05:18 AM) and haen't taken the nap yet whole night. Well i believe Make hay when sun Shines...so weekends are for me and me alone.

Ok enuf...back to business...The moment we think portal / website, the first few things come to mind are the - Promptness,Lesser the number of mouse clicks better the site,Ease of navigation, less text and not to crumpled Home page.

Well to further my thought process here are some of the bug patterns in standard GUI Implementations:

- In case of combo box, we should check the functionality of arrow keys. Most of the time, we checked up / down keys, we should check right / left keys also.
- Bit map should be provided for all the tool buttons.
- CTRL+ shortcut for the various options doesn’t work consistently.
- If two / three dialog boxes are opened at the same time, then the dialog boxes shouldn’t overlap one another. They should cascade.
- CTRL+tab key should result in to flipping among the open windows.
- Arrow keys should also be mapped with spin control buttons.
- Whenever there is some activity going on, some way of notification to the user should be there. It may be Hourglass mouse pointer, display on status bar, an animated GIF, or use of a progress bar. The point is that the user should be aware that something is going on in background.
- Menus should follow the standard conventions, e.g. “About” submenu should be under Help menu and so on.
- Tool tips should be displayed for all the tool buttons.
- Floating toolbars should not be another task bar window, but should be positioned inside the GUI window.
- Any additional user created toolbars or menus should not distort the GUI.
- Change in Font should reflect at all intended places. Also, the views should not get distorted.
- Tiling and Cascading should be tested thoroughly along with Minimize and maximize options. Windows should not get lost at any point of time.
- Check box should get checked/unchecked with SPACE bar, when in focus.
- Option buttons should get set/reset with SPACE bar, when in focus.
- Whenever a “Select ALL” facility is given, a “Clear All” should be provided and vice versa.
- All the Control buttons and Menu bars that launch another dialog should have three trailing DOTs (…) in the name. E.g. Browse…


Whoo hoo...this has come out good. I will put more pressure on my "medula oblongata" and try to make this a series. to complete most of the critical GUI components.

Should we not say this...GUI Testing Bug Patterns - Part 1.

Have a good one...

~ Manav Ahuja

Entreprenurship - Ignite the passion within

Who and what defines Entre...

Noun : Entrepreneur – An entrepreneur (a loanword from French introduced and first defined by the Irish economist Richard Cantillon) is a person who undertakes and operates a new enterprise or venture and assumes some accountability for the inherent risks. A female entrepreneur is sometimes referred to as an entrepreneuse. …… From Wikipedia

Simple...uhh. Its more beneath than out. These nerds cannot be a part of herd (except the herd of achievers/loosers). They really are people who feel fear is just another word, Loss is an oppurtunity and success is just a milestone not destination.....Wow i am turning and playing with words. :-)

But is it that easy to be an entrepreneur. I thought of sewing my thoughts and come up with my kinda insights on the game - Entrepreneurship.

I feel Entreprenurs are crazy souls for whom life is all about passion. And they donot rely on any source of inspiration. The catalyst for the ignition of their passion comes from within.

...now what abt the characteristics of these buffoons..Let me try

- Work-a-holics
- Die hard optimists
- Least emotional (this is subjective but i would still list this among the prominents)
- Risk takers (Both calculated and un-calculated)
- Self driven and believers
- Problem conquerers
- Hands on - Not Task delegators
- Unstoppable
- Donot take but provide Inspiration
- They are the change and real innovators

I may have missed some key ones (but they might be your perception/perspective) :-). Mine - i have listed all. But one thing for sure We all are entreprenurs in our respect isn't it? Its just that some of us take the plunge and rest sit back in cubicles(cozy spaces within our organizations) and see the other quarter making history everyday.

Before saluting a "Bye" ...let me leave you soaked with famous quotes from REAL Entrepreneurs of the era:

It's as simple as that. A lot of people have ideas, but there are few who decide to do something about them now. Not tomorrow. Not next week. But today. The true entrepreneur is a doer, not a dreamer."- Nolan Bushnell, founder of Atari and Chuck E. Cheese's

"I never perfected an invention that I did not think about in terms of the service it might give others... I find out what the world needs, then I proceed to invent."- Thomas Edison

"Experience taught me a few things. One is to listen to your gut, no matter how good something sounds on paper. The second is that you're generally better off sticking with what you know. And the third is that sometimes your best investments are the ones you don't make."- Donald Trump, real estate and entertainment mogul

"I had to make my own living and my own opportunity! But I made it! Don't sit down and wait for the opportunities to come. Get up and make them!"- Madam C.J. Walker, creator of a popular line of African-American hair care products and America's first black female millionaire


O-la-la...thats real thoughtful stuff....i have enough Food for thought ...for my coming week(s) :-)

In my son's words let me move off in true US style --- "Have a good one" -

~ Manav Ahuja

Friday, February 15, 2008

Most Popular Licenses in Open Source

Today researching the Open Source (after a loooong break), i comtemplate that i have forgotten all the different types of licenses and their grants. It proved a catalyst and here i have agregated the content from http://opensource.org

NOTE : What i am providing is a brief overview what would be of intrest to all of us - the open source community. So please visit the whole terms in license and then Build-Operate-Deliver :-)

Most Popular Licenses among Open source communities and the ones widely used::

- Apache License, 2.0
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such derivative Works in Source or Object form

- New and Simplified BSD licenses
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

- GNU General Public License (GPL)
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it.(Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

- GNU Library or "Lesser" General Public License (LGPL)
This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case.

- MIT license
Same as BSD licences but with an additional "NO Endorsement clause".

- Mozilla Public License 1.1 (MPL)
The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation section.The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described.

- Common Development and Distribution License
Subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide,royalty-free, non-exclusive license

- Common Public License 1.0
Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform,distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form

- Eclipse Public License
Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form

Be Free, Have free...

~ Manav Ahuja

Thursday, February 14, 2008

What is "Project Management"? From my interview yesterday....

Very happy valentines day ...:-)

Yesterday after a long hiatus was getting interviewed (yes for a change not taking but giving one). And one question i was asked "What have you accomplished on Project Management and what would you say about Project Management"? I gave many an insights, my perspectives and facts and of course my accomplishments.

Retrospecting...i feel of penning my second (streamlined) thoughts.

What would you say about Project Management?

Here are my 2 paise on this...
Project Management, is an art not only skill.And I feel this art (SHOULD)comprise of
- Scope Management
- Integration Management
- Time management
- Cost Management
- Quality Management
- HR Management
- Communication Management
- Risk Management
- Procurement management
- Client (even Multi Vendor) Management

So if i were to march into the risky category, giving some thumb rules - Some of the keys (from my experience) to successful Project Management are

- MUST CREATE A PROJECT VISION
- Develop realistic project objectives / Goals
- Create / re-visit with predefined frequency - The MASTER Project plan
- Track / Measure / Analyse progress
- Solve problems quickly & effectively
- Motivate
- Keep Senior Management and even the Team members informed on project status. In succinct
- BE diplomatically transparent
- And above all follow my tips to make our team invaluable(see my post on "Lets Define Team")

Lastly, let me pictorially put the factors which govern "Project's success matrix".




Happy Project managing...

~Manav Ahuja

Tuesday, February 12, 2008

Lets define a "Team"

Well, seeing the life in a new perspective these days, i really am contemplating hell lot of things. First which have struck is "Who/whats makes teams for what they are". There are many an adjectives which can be appended to a team e.g Exceptional,Highly productive,Great,Fabulous etc etc. But moot questions remains - how to define them in this respect?

I thought of penning my 2 cents on this:
Key aspects from my perspective are:

- Fire in the belly
- Passion for work
- Enjoying what we do
- Not doing for the heck of it
- Matching experience
- Target oriented be it Profit,milestones,scale,innovation etc
- Integrity
- Values which they bring to the table
- Visionary Leader
- Dynamism of indivuduals

Anything to add.

~ Manav Ahuja

Friday, February 08, 2008

Upcoming Conferences

Today,
i think is turning to be the day of new initiatives. But whatever it takes, lets help each other and our community.

I, today on will start sharing the details on any and ever upcoming testing conferences. Please feel free to add to the list i could muster.

Here are the two of the good ones i have found:

Name Place Date Deadline Theme Link
PNSQ Orlando Oct 13-15 Apr-20 Collaborative Quality
http://www.pnsqc.org

Star West CA Sep29-Oct03 Apr-14 Many
http://www.sqe.com/StarWest/Speaker/Default.aspx

Any and every addition : Most welcome

~Manav Ahuja

Best of the quotes - a daily dose

All these days i had the habbit of writing the good writings i come across. But always i fall short of space on my hand held pads.

Starting today i am planning to leverage this online space to keep updated with a daily dose of Good quotes that i may come across. This will serve two purposes
- Keep posting and keep blogging
- Keeping some good writing for ever with me.

Here i start with the ones i have come across since moring..

1. Either fight for your stomach or You fight for your dreams
Source : Net

2. "Happiness keeps you Sweet,
Trials keep you Strong,
Sorrow keeps you Human,
Failure keeps you humble
and Success keeps you glowing,
but only Faith & Attitude Keeps you going..."
Source : One of the forward mails on Arther Ashe

3. Always be a trumpet in herd of Elephants
A crow in company of cocks,
Bleat in the flock of goats.
Source: My resignation letter to my earlier company :-).

4. Search your heart with all diligence,for out of it,flows the issues of life
Source: Seven Habbits of .... Stephen Covey

Wow...this is something i am loving now, just for the mobility it provides and the quickness in terms of access.

Relish till next...

Manav

Thursday, December 13, 2007

Top Five challenges for Web based applications

I came across this good relevant material for future referrence and reuse.

Read full article at:
http://www.webguild.org/2007/12/five-usability-challenges-of-web-based.php

Take Care

Monday, October 01, 2007

10 Things to die for...

I came across this unique philosophy, thought of sharing. Maybe this is the reason for What Google is TODAY.

Have a go at this:

http://www.google.com/intl/en/corporate/tenthings.html

Keep (Re)discovering...

Tuesday, September 18, 2007

How to win BIG outsourcing deals

Day in and day out we are hearing the M&A (Mergers and Aquisitions) and to add to the fire, the declarations of the BIG (HIGH $ value) outsourcing deals.

How these are done ? i donot care. But i do care - How they are achieved. Pondering this, i thought of spending time penning the challenges and even strategies i would think would be the reciepe for success.

Disclaimer: These are purely my thoughts from my small experience. Please pardon if so.

My heart said there are always two things which go into the deal - one in initial phase (Sales Team) and second in implementation (Delivery Team). So here i segregate the two and put in my 2 cents....

Key impediments in winning BIG outsourcing Deals - For Sales Team

1.External Political Problems
2.Outsourcing Backlash in European and North American markets.
3.Capabilities of Sales/Field force in terms of Market understanding.
4.Marketing Execution Support system for the Sales/ Field force.
5.Knowledge about the solutions and services offered, Vision and Foresight.
6.Cross Skill sharing and skill enhancement.
7.Market responsiveness.
8.Pricing

Strategies for success

1.Segregate and Create 5S.
- Marketing Strategy.
- Sales Strategy
- Offering Strategy
- Vertical/ Industry Strategy
- Geographic Strategy

2.Develop a Business Intelligence System for Sales and Marketing.
3.Create a Cross Functional Consultative Team.
4.Shake the Team dynamics to create a wave of Entrepreneurship within.
5.Innovatively create a customized pricing Model.
6.Inject Flexibility.
7.Develop an innovative Deal closing process.

Key Impediments for Delivery Teams

1.Huge shortage of talent, Infrastructural and Logistical deficiencies.
2.Innovation to solutions, service lines and even operating processes.
3.Service Quality - Going beyond the SLA’s – Value to customer.
4.Cross Skill sharing, Domain Knowledge, Skill enhancement.
5.Data Security – in wake of recent Data breaches.
6.Lack of people with knowledge of essential foreign languages esp – French, German, Japanese, Spanish.
7.Find ways to reduce the total costs.
8.Provide better cost savings for customers

Strategies for success

1.Fuel and Leverage Innovation
2.Inject Quality
3.Create rapid action teams to upgrade the MTP( Manager Thought Process).
4.Target Quantitative Project Management.
5.Pledge to offer four colours to Customer -
- Expertise: We will give top experts in business.
- Rigor : We will help you build a roadmap of success.
- Speed : We will enable you to achieve results FAST.
- Impact : We will be vested in your complete success.

Can we take the plunge --- NOW.

SOAP - for starters

Let me challenge myself to integrate my old thoughts and recreate the basics of SOAP for you all - The Starters.

In a decentralized and distributed environments, SOAP is a simple and lightweight medium thorugh which the information (maybe structured and typed) is exchanged between peers using XML....aah thats nice definition.
Ok enough of a hiatus. Lets continue...

SOAP in itself doesnot specify any kinda application semantics, rather defines the mechanism for same by providing a modular packaging model and encoding mechanisms for encoding the data within the modules.

Probably because of this SOAP can be used for varied systems - from Messaging to RPC.

It consits of three parts primarliy:

1. SOAP envelope construct
This defines an overall framework for expressing what is in a message, who should deal with it and whether it is optional or mandatory

2. SOAP encoding rules
This defines a serialization mechanism that can be used to exchange instances of application-defined datatypes.

3. SOAP RPC representation
This defines a convention that can be used to represent remote procedure calls and responses.

All these are togather yet they are functionally orthogonal in nature.

The design goal for SOAP has been simplicity and extensibility. Features which DOESNOT form the part of core SOAP include
• Distributed GC (garbage collection)
• Batching of messages
• Objects-by-reference
• Activation

huff huff...hope that the above list includes all it should ...

Friday, September 14, 2007

Quantitative Process Management

Quantitative Process Management
- Whats this?
- Does it have any applicability ?

Let me try and answer these...

- Whats this ?
QPM is mainly Articulation of the main process of the project totally based on the projects shared vision and even as well as the Business goals.

This primarily targets at
a) Deriving the goals for the sub-processes based on the identified measureable project Objectives
b) Use possible performance Models to derive the goals for the projects process and sub-processes.
c) Track,Analyze the actual results and then take the corrective actions.
d) In case of some earch shattering results or unforseen results, using some of the commonly available techniques such as - Parreto analysis,Control charts, RCA diagrams etc.
e) Last but not the least - Analyzing the actual performance of project using statistical techniques and taking suitable corrective action

- Does it have any applicability ?

Some experts may contest my view that applicability is always vision based. If i need Highest quality and Customer satisfaction i need such Management techniques, isn't it ?

Whats affects productivity the MOST?

Have we ever wondered at nailing down the factors that affect our productivity. I also always did but never tried. So today i thought let me pen my thoughts.

From my past experience i am collating all the parameters that affect the productivity:

a) Availability and stability of the development environment
b) Team capability, skill and experience
c) Team stability / manpower turnover
d) Maturity of the processes
e) Reusable software available to the project
f) Reusable software to be built by the project
g) Extent of communication possible with users/customers
h) Extent of automated tools used for software development and maintenance
i) Extent of degree of detail of the required user documentation
j) Cohesion of stakeholders and teams

Agree or disagree ?

SilkTest Coding Standards part -1

Off late i was scrambling to understand the code one of the self proclaimed experts wrote. I really had to negotiate my way through.Finally i did.
Therafter i realized how narrow the available expertize is. And this has catapulted me to come up with my series of MG (Masala Gyan) on best coding standards for Automation scripts. I should generalize them but i feel on the contrary because all tools have different set of languages so why not separate standards. Hence i am sticking this series to ONLY silktest.

OK..enough of MG, here i start off with the first thing to be taken cared : "Naming Conventions"

Silk Reserved Words
There are some Silk keywords (if, while, etc.) that must be lower case. The Silk reserved words that do not fall into this category (string, anyType, etc.) should be mixed case where the first letter is lower case and each new word is capitalized. For example:

if (var1 == var2)
listMerge(list1, list2)

Variables
Variable names should be descriptive and should be mixed case where the first letter is lower case and each new word is capitalized. Variable names should include the standard prefixes or suffixes describing the type of variable.

These include:

· i = integer
· s = string
· lx = list of something (li = list of integer, ls = list of string, etc.)
· rec = record
For example:

integer iNumberOfAccounts
list of string lsStringList
string sName

Constants

Constant names should be descriptive and should be all upper case with words separated by underscores.

const string TIER_PRODUCTCODES = “ABC014” // Global constant

Functions/Test cases/Methods

Function names should be descriptive and should be mixed case where the first letter is lower case and each new word is capitalized. For example:

createNewAccount(string sAccountName)
boolean accountExists(string sAccountName)

To be contd...

What the heck is "Web 2.0" ?

Change is law of nature and technology is no immune system to avoid this.Our beloved internet is also undergoing the similar change.Remember the .com bust that was actually the web 1.0 which was governed and comprised mainly of the static web pages.This is not being transformed into the user driven content aggregation and management websites and desktop applicatoons through whcih we can share the data across network.

All in all is should say web2.0 is a space which primarily involves the AJAX based web applications through which the user can share, skim,remix,customize and consume the data that too over the network.This is with the intent of facilitating the architecture of participation.

Most common and prominent of the Web 2.0 applications are

• Widgets: Springwidgets
• RSS (Really Simple Syndication) feeds – a medium of sharing information across websites.
• Blogs – Should really write anything on this :-)
• Social Networks – Facebook,Orkut,Phoja,Bebo etc and many more.
• Project Management - Basecamp
• Wikis – websites which allow users toadd & edit data.

This post would not be complete if i donot write about AJAX - heart of web2.0

Technically AJAX is Asynchronous Javascript and XML - a technology which helps transforming the statuc HTML pages into rich,interactive,reposnive web applications,where the browser can exchange only the needed data with server and not update the whole page.

How about the characteristics of such web applications:

• Direct interaction with page elements e.g inline editing,drag-and-drop etc
• Partial page update instead of reloading of whole page.
• More content on single page
• In-page feedback and confirmation.

Hope that was quite a Gyan masala..

Take care..

Tuesday, August 21, 2007

Power packed simplicity

I came across this

http://www.nytimes.com/imagepages/2007/06/02/business/03google_graphic.html

It really is amazing to see how simple yet powerful the algo / thought process could be.

Njoi

Manav

Tuesday, July 24, 2007

When to go for Re-engineering of your Test Suite?

A test suite will need to be considered for a re-architecture when one or more of the following criteria are true –
a) When there is no standard process for defining, organizing, managing, and documenting the testing activities
b) When testing efforts are non-repeatable, non-reusable, and difficult to measure
c) When test cases are redundant and repetitive
d) When the test results and metrics captured are of little or no value in qualifying the product/application
e) When the test suite coverage is inadequate
f) When the most important of defects are not uncovered in the initial stages of testing
g) When the test suite needs a lot of manual intervention during execution, or when there is scope for automation
h) When the application technology becomes obsolete or undergoes change

The test suite after re-engineering should have met the following criterion –
a) Contain a stable core set of tests
b) Remove tests that are redundant, repetitive or un-needed
c) Achieve better testing flow
d) Minimize execution time and user interaction
e) Maintain and improve dynamic testing ability
f) Improve maintainability and portability
g) Enhancing coverage readability
h) Structure enhancements for maintaining parallel and independent test development