When Software Industry began to flourish in India in the mid nineties , there was huge emphasis on learning Programming techniques , Algorithms , Unix Programming , Windows Programming,Assembly language programming and other things which were more computer system centric.
Some people really excelled in those times and the concept of "Guru" found a new meaning. Then , the pressure on margin and to focus on core competencies , the companies in America and Europe began to outsource their business software development activities to India.
Then , new players like Business Analysts , User interface specialists , Project managers , Team leads , Quality assurance guys , Software testers and other roles became part of the project. The emphasis shifted to
functional aspects of the project and people who do the support job gained an upper hand against the wishes of programmers.
I think , a new model for evaluation of professionals in the Industry is necessary. How can you train a software engineer for modern software services Industry ? ( Only thing which seems to happen in India ! )
A model for evaluation of value of a Software engineer is given below
Draw Four Columns viz Project , Functional Domain , Technical Domain and Ingredients
a) List all projects ,
b) Identify Functional Domain ( Payroll, Inventory control , CAD/CAM , Finance , Logistics ) of each project
c) Identify Technical domain ( Windows Desktop development , Linux Programming , Graphics Programming , Web application development , Writing Shared Objects/DLL etc ) of each project.
d) Identify Ingredients ( C/C++, Java , Perl , OpenGL , C# , ADO.net etc )
A Guy with Varied Functional Domain with focused technical domain seems to be our successful "Software Engineer". Programming is only one of the several aspects of Software Engineering.
Most Software companies in Kerala has got a shallow hierarchy and emphasis is on technical aspects of Software engineering. People who started their career and stayed back are mostly satisfied lot. In Contrast , Companies from Bangalore , Chennai and Hyderabad are build with scale in mind. Their emphasis is on Business Continuity. By reducing so called "Unit of Work Per Employee", they reduce risks in operations. Both set has got their own world views shaped by their respective context. The session talks about the impedance mismatch between a Metro Software professional and a Kerala Software professional.