Showing posts with label IT. Show all posts
Showing posts with label IT. Show all posts

Friday, January 13, 2012

Software Development Process....

Software Development Process in IT Services company 

I do not know how many will agree, but this is what I think!

1) The project manager along with onsite co-ordinator gathers overall requirements from the client.

2) Using some models like COCOMO, the duration for development will be estimated to be around 12 months. ( Note that COCOMO relies heavily of previous projects delivered by the firm) But business managers inform the client that the project will be delivered in 10 months (to prevent competitors from grabbing the project away.)

3) Delivery managers splits the project into 2 parts – 1 to be developed at unit A of the company, and other at unit B.

4) The project managers at Unit A and B will be having an internal competition and so each will try to deliver the project ahead of the other, so givens a time of 9 months to his unit to complete the job!

5) The project begins at both units, and Software Engineers start the development.

6) Since the software service industry is heavily 'process-oriented', the developers are required to submit their 'activity reports' every week. This report will contain, among other things, the duration spend on each specific activity within the software cycle (like designing,test case preparation, reviews,coding etc). 

7) Developers were told this by their managers. “This process is estimated to take 10 hours, so if you want to get a good appraisal next time (Out-performer), you should finish it in 9 hours or less!”. (The original estimate would be definitely above 12 or more hours!)

8) The developers works hard but sees that it is going to take much more than 10 hours. But to get that 'Out-Performer' tag, he decides to work extra hours every day, but while submitting the 'activity report', he says the job was completed in '9 hours', (it actually took 15+ hours ) 

9) Developers themselves will be doing a lot of peer review and testing, and they are supposed to enter the defect information found in deliverable in some internal tracking tool. This internal repository is to be used for training purposes and to prevent the same in future. But most developers will not enter the defects found in peer reviews into this system, but informs the peer (usually his/her friend) about this offline. (in person). This 'mutual-help' habit is followed by all developers to prevent their bugs/defects from being recorded in the system.

10) The entire duration of the project will be like this, with developer submitting 'excellent' activity reports. Finally the project is completed and will be delivered to client and everybody is happy.

11)The end-result : Project will be delivered in time. All the internal systems will show that there weren't any defects/bugs at any point of the process and all jobs were completed well before the estimated times!

12)Now, the next project (very much similar to previous one) comes in, and the estimating models will be giving a much shorter duration for this, because the internal systems says these jobs can be done faster than ever thought of!!!!

13) And now the cycle repeats itself, with developers ending up working late nights/weekends and spoiling the good part of their lives.


"The trouble with the rat race is that even if you win, you're still a rat."

Tuesday, November 9, 2010

Aiming for the stars......

Companies in IT industry can be very broadly classified into 2 tiers.
Tier-1 companies, which include the likes of Microsoft, Google etc,
make software products and technologies. Tier-2 companies, where
Indian players like TCS, Infosys etc fall in, are predominantly
service based. I.e. they make applications making use of
technologies/products developed by Tier-1 firms. Let’s see some
statistics on salaries.  A junior developer in a tier-1 firm gets
around Rs 800000/- pa whereas their tier-2 counterparts get Rs
300000/- pa. For more senior positions, the gap widens more. (refer
www.glassdoor.com for more salary comparisons)

It’s no secret that majority of maceians are employed in Tier-2 firms
even though MACE is always considered among the best colleges in the
state.  4 years of engineering college life at MACE is not an easy one
at all, with more than 40 theory papers, 10 labs, 2 projects and a
technical seminar which are among the most sought-after for
plagiarizing by others.

          Despite having vast and deep knowledge about computer
science topics, maceians typically end up in service firms. In such
firms, they typically make/modify applications based on requirements
given or handle support tickets from clients. Many end up in testing
jobs as well. These jobs are mediocre and don’t require core
engineering skills.  On the other hand, imagine the kind of
professional satisfaction one gets from being part of projects like
‘Google search’, ’iPhone’ which has dramatically changed people’s
lives. So which side you want to be in?

                                               The main reason why
maceians end up in service industry is that, they are the only
companies conducting bulk campus recruitment. And we hardly see firms
like Microsoft, Oracle etc visiting our campus. So, if we need to find
jobs in such firms then we have to reach out to them and this requires
some preparation as it isn’t a cake walk. Let’s see how you can
improve your chances of being hired by technology players like
Microsoft, Oracle, Google etc (naturally these will also improve the
chances of being hired by service players as well!)

                               The first step is Networking-It simply
means making good contacts with people in the industry and people
having similar interests as yours and it will play a very crucial role
in your career. You can know about the technologies in demand from
people who are in industry. The best way to get a call for an
interview in a tier-1 company is through referral. Even in cases where
you don’t quite match the company’s requirement, which usually is the
case, if you are backed by someone within the company, chances are
high that you get hired. Apart from Mace alumni, professional
networking sites like LinkedIn and other sites including Facebook can
be useful in making networks. Don’t just spend your time playing Mafia
Wars and Farmville….. Do more or your career will be at stake.

   Next important step when you pursue a big dream is developing
good communication skills, which is not merely explaining your resume
and project, but it can be in forms of casual talks with your
interviewer while catching up on a coffee  about a recently released
movie . Talks can also be formal in the middle of an interview as it
expresses your keen interest in terms of technology and domain.
Clarity and brevity is very important while articulating you ideas.
This is not something that can be achieved overnight.  It’s a long
term process which requires certain amount of dedication. Various
things like engaging in group discussions with colleagues or even
online discussion boards, promoting English inside class rooms,
seeking professional help, regularly reading English articles,
blogging, writing movie reviews etc. can help a lot in this.
              And finally, the most important of all: having strong
technical skills –both theoretical and practical aspects; be ready for
an interview with a big arsenal. Each of the weapons in that should
give the interviewer an impression that they need this person. Do some
projects of your own; there are plenty of resources in the servers
across the globe which are just a click away; all you need is an
attitude to explore and excel. Open source projects will surely help
you in developing and polishing your technical skills.  Make the best
use of sites like sourceforge.net, codeplex.net etc. Be aware of the
latest technological developments. Take a chance to watch the
procedures of a company as a part of final year project, rather than
forcing yourself into some technology which is outdated or will be
obsolete soon, this obviously need some support from the department.
It’s also very important that you have a consistent academic score to
impress top companies as most of them consider academics from 10th
standard onwards….even though talent play its own role.

Don’t lose hope even if you don’t end up with your dream job after
graduation. You have the option of higher studies and if you can do
your post-graduation from a reputed institute, you have a good chance
of being hired by top notch companies as they visit most good
institutes for campus recruitment.  So consider preparing for GATE/GRE
or other exams during long semester breaks.  Also, taking technical
certifications add lot of weight to your resume.

All this might sound humongous, but like it’s said…. there are no
shortcuts to success. However, don’t have the misconception that you
need to be “Mr. NERD” to achieve all this. You can bunk many classes,
party every weekend and still you can achieve this if you have passion
and an attitude with fixed focus. Remember, always aim for the stars,
and even if you don’t quite reach there…..you can still make it to the
tree top.
“The future belongs to those who believe in the beauty of their
dreams.” - Eleanor Roosevelt


NB:
This is an article written by myself and my friend Lloyd George. This was published in Zing20, a souvenir published   in connection with 20th year celebration of Computer Science Dept. , MACE,Kothamangalam. (my alma mater)

Tuesday, February 16, 2010

Most exciting things @ IT Companies!!

  • Being trained in 4 different technologies back to back and then getting a project which uses a 5th technology! (flexiblityyyyy!)
  • Changing client and project 5 times in 1 month! (wow..! wow..!!)
  • Working 15-18hours a day including weekends and finally getting the comment “You should work more” from managers!
  • Topping in .net/java trainings and end up working in infrastructure management, handling ‘Desktop Shift Requests’ and ‘Software Installation Requests’ for people from same batch!!
  • Getting calls from offshore folks @ midnight when @onsite. (Great na! Ur 3 year old kids get to grow up learning business issues!)
  • Working in production support for applications developed by someone else and without any documentation!
  • Being loyal to the company by sticking on for 5 years and later realize that the guy who jumped to another firm and now joined back the original company is getting double the salary!!
  • You get to tell “WHAT THE *******” after seeing payslips of your junior people!
  • Reading in news that your company has come on top in some ‘best companies to work for’ list when you have never seen any happy employee!.
  • Your manager getting the credit for all the good ideas you suggested and when any of them fails, you alone taking the blame!

Saturday, January 16, 2010

To all young engineering graduates.....

Just thought of giving some idea to young engineering graduates about IT organizations in India, as a lot of them, irrespective of their branch , end up with offers from IT firms.

When I say Indian IT firms I am referring to Indian players like TCS,,Infosys,Wipro,HCL,Mahindra Satyam, services division of IBM India (GBS) , Accenture, CTS ... etc

1) 99% people are absorbed into Software Services businesses. The key difference between a software product company and a software service company is that, service companies serve their clients using tools and technologies developed by product companies.

All technologies/products are made by US giants like Microsoft,Oracle, Apple, Google,...etc
And services firms use these technologies to develop custom applications to their clients.
For eg: Infy,TCS etc works in windows OS developed by MS, to develop a payroll processing application using java/,net (both technologies from USA) , with Oracle as database and deploy the same in servers made by Dell/HP. And in this very process, they make extensive use of VOIP phones made by CISCO and Internet powered by Google and Yahoo!..

So if you are hoping to work in developing high end technology applying engineering skills - aim for companies like Microsoft,Oracle,SAP... etc.. and not on firms which are purely 'service' players.


(An analogy with Automobile industry : The job done is IT service industry is comparable to the work done by a mechanic in a auto garage! Only difference is, your job is white collar and you can work in A/C cubicles with 10 times the salary! )

2) A major portion of the work done by Indian IT firms are maintenance work. The required applications are already developed and deployed by Accenture /IBM/US firms or developed in house, and the maintenance jobs are outsourced to Indian IT firms. Maintenance jobs are not bad at all , and you learn a lot if you work in maintenance projects, but it can be boring for smart engineers! So if you hate working in maintenance projects , consider offer from India IT firms as a last option only!!


3) A good amount of people will be working in support jobs in all these firms. And If you think that you are a high-performer and you wont be put into support jobs - you are damn wrong about it!!


4) Don't expect that you will be put into an area of you interest! Its not uncommon to see Sun certified Java people working in mainframes, embedded systems certified people working in web technology, and people from Computer Science branch with 'n' certifications working as software tester!

5) Don't expect that you will get an onsite opportunity just because you topped in training or your are excellent in technology- onsite is purely business demand based. So you need a lot of luck to get an onsite these days. People doing the job of Database/network administration/monitoring etc have more chances for an onsite.


Although I mentioned that most end in services industry, few get products firm as well. Not only in MS, Google.. but also in Indian firms. Oracle Financial Services (previously called I-Flex Solutions) is a product company, Infosys has a product - Finacle, Sasken - a technology player and not pure services, Subex- telecom products .... Some end up in software division of companies like Siemens, Bosch,Alcatel etc where a lot of high-tech projects await you.

Also all these IT service firms can act as a good place to begin with. There are lot of people who started off their careers with services firms and later got into high tech companies and of course, high salaries!

For people who considers themselves as average, and want to get into some job, Indian IT services is the best choice! You get good respect in society, an 'IT lifestyle' in cities like Bangalore,Hyderabad with plenty of money to hand around with friends.! (gf/bf's as well)

For people who dream bigger, aim for the top shots, like MS,Oracle.. etc.. :)


(
when people come and tell me that "hey I got placed in so and so IT company in India."...

What should my reply be?

If he/she is average type, then obviously , "Congrats! "
For high performers, the reply have to be "Congrats! and Condolences!"
)