Monday, December 19, 2011

Top Technology companies with constant growth and high dreams about aquiring talent !!!

With huge competition and infinite opportunities for talented individuals, whole market scenario is changing. With this some of the companies need to rethink about their hiring strategy, apart from moving with new challenges and opportunities in same verticals or newer ones.


Let me start with an anonymous example, which is one of the top software company. They always hire from IITs and top Engineering colleges in India. In 2011, the salary gap between this company and it's competitors increased by many fold. Due to constant growth, company is not a position to match those compensations and at the same time, they need to retain their employees, as domain knowledge & experience is very important for delivering good quality solutions. Growth is at constant pace and more compromise on quality can prove as a big disaster.


At the same time folks from IIT like colleges always look for new challenges and have some goals to achieve in life. These are mainly fast pace folks. With current scenario, most of the folks have started thinking about start-ups.


With all this, some of the companies who have been hiring people form top colleges are seeing a deep decline on talent pool. some part of it is going to competitors who are in good shape to pay much more. And others are focused on their ideas for start-ups. In my opinion, trend about going for Start-Ups will take a pace and soon we shall see lot of new technology or e-commerce coming in market.


How such companies should handle such situations. This is a big question for top leaders of these companies and a big pain for managers, who are seeing lot of attrition and need to deliver same thing during end of a month or quarter. 


Should they also start looking at middle-tier colleges? How to pace up with increasing salaries, when revenue increase is almost constant, year over year? Should they tighten the processes to reduce overall risk and look at fresh talent available? etc. 


This was one of the random thought came to my mind and thought of putting it somewhere. I will find out more details around the same and share soon...

Thursday, December 15, 2011

Some of the Basics about HP QTP (Quick Test Pro) tool

Recording modes in QTP
QTP supports 3 types of recording modes

1. Normal mode also called Contextual
2. Low-level recording mode
3.Analog mode

Normal Mode: It is the default recording mode and takes full advantage of QTP's Test Object Model. It recognizes objects regardless of their position on -screen. This is the preferred mode of recoding and is used for most of the automation activities.

Monday, December 12, 2011

Do you really understand Data Structures : Part -2

QUE. What is the data structures used to perform recursion?

Stack. Because of its LIFO (Last In First Out) property it remembers its ‘caller’ so knows whom to return when the function has to return. Recursion makes use of system stack for storing the return addresses of the function calls. Every recursive function has its equivalent iterative (non-recursive) function. Even when such equivalent iterative procedures are written, explicit stack is to be used.
 
QUE. What are the notations used in Evaluation of Arithmetic Expressions using prefix and postfix forms?
 
Polish and Reverse Polish notations.

QUE. Convert the expression ((A + B) * C – (D – E) ^ (F + G)) to equivalent Prefix and Postfix notations.
 
Prefix Notation:
^ - * +ABC - DE + FG
 
Postfix Notation:
AB + C * DE - - FG + ^
 

QUE - Sorting is not possible by using which of the following methods?

(a) Insertion
(b) Selection
(c) Exchange
(d) Deletion
(d) Deletion.
 
Using insertion we can perform insertion sort, using selection we can perform selection sort, using exchange we can perform the bubble sort (and other similar sorting methods). But no sorting method can be done just using deletion.

***Long time back these questions were read from one website about placements and I had all these questions noted down in a Notepad. I just copied whole content, so that it can be helpful for relevant folks.

Do you really understand Data Structures : Part -1

1. What is data structure?

A data structure is a way of organizing data that considers not only the items stored, but also their relationship to each other. Advance knowledge about the relationship between data items allows designing of efficient algorithms for the manipulation of data.

2. List out the areas in which data structures are applied extensively?

- Compiler Design,
- Operating System,
- Database Management System,
- Statistical analysis package,
- Numerical Analysis,
- Graphics,
- Artificial Intelligence,
- Simulation
 
3. What are the major data structures used in the following areas : RDBMS, Network data model & Hierarchical data model.

RDBMS – Array (i.e. Array of structures)
Network data model – Graph Hierarchical data model – Trees
 
4. If you are using C language to implement the heterogeneous linked list, what pointer type will you use?

The heterogeneous linked list contains different data types in its nodes and we need a link, pointer to connect them. It is not possible to use ordinary pointers for this. So we go for void pointer. Void pointer is capable of storing pointer to any type as it is a generic pointer type.
 
5. What is Minimum number of queues needed to implement the priority queue?

Two. One queue is used for actual storing of data and another for storing priorities.


***Long time back these questions were read from one website about placements and I had all these questions noted down in a Notepad. I just copied whole content, so that it can be helpful for relevant folks.

Wednesday, November 30, 2011

Developter & Tester/QE/QA ratio in a Software Project?

It is one of the most common questions, we face in almost every project... 'What is a reasonable Developer to Tester Ratio for a Software Development Project?'… Sometimes the question comes in variations, like 'Are there standard Developer to Tester ratios for Enterprise software, Driver Software, Financial Accounting Software etc.?'. At times it's associated with  budget allocation… like in 'What is a reasonable Development to Testing budget breakdown?'.
There are few things that I see bad about the topic: 

- When management assumes that test estimation could be done based on Dev : QA ratio 

- When a Tester/Test-Lead don’t understand why the Manager is so concerned about this ratio or even see it as Management’s lack of understanding of testing process.

And in my opinion all this depends project to project and exact stage of the project... Followed by a more elaborate explanation that one size doesn’t fit all. As far as I know there is no such thing as an authoritative ratio, for several reasons:

    I do know that some companies keep internal track of that numbers, but this kind of information is not shared publicly as it can impact market and question may come on quality standards.

    What if their competitors find out? Knowing that your competition is doing substantially better or worse from a resourcing perspective tells you something about how efficient or inefficient your competitor is.
 
    Software is hard to categorize… are you dealing with Travel software, Operating system software, Device Drivers, ERP Solutions, MIS systems, a monolithic app, an app running on the mainframe / UNIX / heterogeneous environment, Hybrid application, Cloud services etc.?

For applications mainly closer to hardware or core systems of our computers like operating systems, device drivers, highly technical, and algorithm driven software, ratio close to 1:1 can be seen. The higher the number of end users, the closer to a 1:1 ratio we get, because the risk is proportionally higher.

For any business application, we might have seen more of a 4 developers to 1 tester/QE ratio. Some really lose organizations go as far as 10 developers to 1 tester. A lot of this is driven by company history and their commitment to quality. Type of Industry plays a role as well – some industries, like medical devices, demand perfection. While others like e-learning, are more lose. So what the market bears in terms of quality perception drives the ratio as well. There are many standards in software industry which also help various organizations to decide this ratio. For example, projects which need quality of Six-Sigma level will surely need a decent ratio of Developers and Testers.

Overall here are some variables that may influence this question:
    1. Size of a Software project
    2. Duration of Software Project and corresponding timelines
    3. Type of Software Project (version 1.0 vs. version 10.0, rewrite vs. maintenance, etc.)
    4. Technologies involved
    5. Development methodology (Waterfall OR Agile, etc.)
    6. Organizational setup 
    7. Regulatory requirements
    8. Quality of the deliverables