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

Thursday, June 21, 2007

How to categorize a mainframe application

Most of the times we need to analyze and categorize the Mainframe application into simple medium and complex. What do we do?
Here are snapshot questions we can rely on:

Key questions :
a) What the Business Functionality.
b) What are the key interfaces are there.
c) How many key interfaces are there for the application.
d) What is the data and information flow,
e) What are the data attributes for all system interactions.
f) What is the cycle time for complete accessing of the applications.
g) What are the backend data verification [DB2 tables] through Spufi (SQL Processing Using File Input), QMF (Query Mgmt Facility) or any such means and even through Batch runs.
h) Does the application involve CICS or any other information control system from testing per se.
i) How many batch jobs are required to run the application successfully.
j) What is the order of batch runs and the order of their execution
k) Does the application involve any kind of Data collection system. Also are there, if yes, how many batch runs for activities such as – Audit, Resync and Data Archival, Data Retrieval, DB2 load and Unload operations etc.
l) Are any Test Data management systems being used in the application(s) e.g utilities like FileAid (from Compuware) etc.
m) What is the mode in which the tables are available (RW,W,R etc)
n) How many tabels does the application support
o) How is the DB schema designed
p) Which forms (from RDBMS per se) it support. E.g Form -1,2,3 etc.
q) What is the archiving and purge cycle
r) How long is the archiving and purging cycle.
s) What is the support system that the application uses
- hardware platform
- O/S
- Language support
- Database / File System
- Messaging/Middleware/Online Environments
- Tools/Development Environments

Tuesday, April 03, 2007

Walmart's secret - Sam walton's Golden Rules

I came across the list in an article in newspaper. How about adopting them...

Rule # 1. Commit to achieving success and always be passionate.
Rule # 2. Share your success with those who have helped you.
Rule # 3. Motivate yourself and others to achieve your dreams.
Rule # 4. Communicate with people and show you care.
Rule # 5. Appreciate and recognize people for their efforts and results.
Rule # 6. Celebrate your own and other's accomplishments.
Rule # 7. Listen to others and learn from their ideas.
Rule # 8. Exceed the expectations of others by setting high standards.
Rule # 9. Control your expenses and save your way to prosperity.
Rule # 10. Swim UpStream, be different and challenge status quo.

My Rule - consider above rules your bible to become the NEXT Sam walton and in process create your behemoth. No jokes, serious thought.

Tuesday, March 27, 2007

Benefits of Automation ...Once again plz

The most obvious Benefits from automation are :

1. Speed and Accuracy – Automation testing is faster and more accurate than manual testing. It can be as much as 50 times faster depending upon the speed of the application to process information. Tools are much more accurate than manual test input. Research suggests that the average typist makes 3 mistakes for every 1000 keystrokes. Also, automation tool never tire, get bored, take shortcuts or make assumptions of what works.
2. Accessibility – Automation tools allow access to communication protocols, lower level objects of systems & operating system that manual testers can not access. This allows for a test suite with much greater depth & breadth.
3. Reusability – Once tests are developed, long term benefits are derived through reuse. Over the period of time, application changes and gains more complexity. The number of tests always keeps increasing as application matures. Testers have to constantly add new test scripts and need not write same scripts again or test the same area manually over and over again.
4. Manageability – You can group the test scripts according to functionality & prepare ready to use test suits. Depending on the change of code, you can pick up the test suite for testing. It is also possible to test different functionalities altogether or one by one using test suits.
5. Discovery of issues – Automated testing assists discovery of issues early in the development process, hence reducing the costs.
6. Repeatability – An automation suite provides repeatable process for verifying functionality of functional side and scalability on the performance side.
7. Availability – As they are automated, scripts can run any time ,any where that too unattended.

...Wow thats a real Ready reckoner...isn't it ?

Why Automation....eek... Fails ?

Following points are major cause of failure in automation.

1. After creation of automation suit, customer does not maintain the suit for future builds.
2. Lack of structured automation methodology.
3. Test automation is not treated as a project with proper project planning.
4. Testing is performed at the end of development cycle.
5. No modularization in automating scripts.
6. Test engineers are not trained in tool interface & programming.

Automation .....an intresting angle to it

Challenge:

When the test scripts are executed there is chance that more than one test scripts require the same resource to operate on. Moreover as the test scripts are executed in parallel they will try to modify or make use of the same resource.

If a certain test script is written to make use of a particular environment and will only pass if that environment is available. Some other script which is executing before this script changes the environment will surely fail the former script.
Also if the scripts are not properly cleaning up the environment they changed it becomes difficult for other test scripts to expect the environment in a shape.

Preconditions are used for individual test scripts to set up the environment required for a particular test script. Post conditions are used to cleanup the environment modified by the test script. Preconditions and Post conditions can itself be separate test scripts. So there can be quite high dependency between the test scripts. One test script is expecting to setup the environment for itself and some other test script changing the environment set for it.
Such test automation will lead to chaos and will not provide the correct results even though the product is flawless and code for test script is correct.

Solution(s):
a) Execute each test script individually.
b) Sequencing of the test scripts which will be executed in parallel
c) Locking of shared resources which act as an environment for the test scripts.
d) Cleaning up the environment.