A Product based company is the one that develops a product with
reference to the market and its customer requirements and then sells it
in the market. So, in case of an IT industry, companies that develop
software are known as IT product companies. These companies have their
own research and development centres where these products are developed
through extensive research and analysis by engineers.
Most of the software product companies are engaged in the development
of a single application or a suite of applications to be used by
customers or businesses. The customized software development is
generally taken up as a project for a specific client. Product companies
like Google, Microsoft, Adobe are often involved in new product
development, software architecture, prototype development, product
migration, testing and quality assurance, technical support and user
training.
Various job profiles in the I.T product development sector are:
Software Engineer
A Software Engineer is often
responsible for determining the operational feasibility of a software
product/application by evaluating analysis, defining the requirements,
identifying the problems and developing solutions accordingly.
Modification of existing software to correct errors - allowing it to
adapt to the new hardware, analyzing system specifications, peripheral
equipment modification is also a part of the job.
Skills Required:
- They should have thorough knowledge of general programming concepts,
software design, and software debugging. Knowledge of software
development fundamentals, software development process and software
requirements will be an added advantage.
- They should have excellent verbal communication skills, and should be able to work in tight schedules.
Testing Engineer
Testing Engineer is involved in the
testing of the software product – locating and eliminating bugs in the
product, understanding the system requirements; they are responsible for
creating and executing test scripts and reporting defects and results.
The specific test cases are developed by the testers to examine all the
aspects of the software from an end-user’s perspective. Testing is done
at different phases of the Software Development Life Cycle (SDLC) and
may include unit testing, wherein smallest testable parts are
individually scrutinized. Software testing methods like integration
testing, regression testing & sanity testing are often implemented
by them.
Skills Required:
- The candidate should possess analytical skills to assess high-risk
areas of an application to focus on testing efforts when time is a
limiting factor.
- Communication and documentation skills are also required.
Quality Assurance Engineer
A Quality Assurance Engineer
is involved in the entire software development process to ensure the
quality of the final product. Besides requirements collection and
documentation, quality assurance of a software product includes source
code control, up gradation in the existing versions, release management
(deployment & support of software releases) and the actual testing
of the software. QA engineers must have clarity with the entire SDLC in
order to work effectively.
Skills Required:
- They should have a broad understanding of computer systems and software standards and should be detail-oriented.
- They should be good at documenting their work, and should be able to work well with different teams.
Web Application Developer
Web Application Developer is
responsible for the designing and coding of web and desktop applications
that function in a complex hardware/firmware/software environment. Code
development is generally performed on Linux and/or Microsoft Windows
platforms. Besides coding and debugging web and desktop applications,
web app developers work closely with the testing engineers to identify
and resolve defects during the quality assurance cycle.
Skills Required:
- They must be proficient in web application programming using Ajax,
Java, JavaScript, JQuery and PHP and should have exposure to database
design and data layer programming.
- They should have clear understanding of wired and wireless networking and communications programming.
Mobile Application Developer
A Mobile Application
Developer works across the entire app life cycle – building the concept,
designing, deploying, testing and release the application to the app
stores and its support. They either work directly with the developers
and product managers to conceptualise, build, test and release or may
work along the web developers to create and maintain a robust framework
to support the apps. A mobile app developer is also responsible for
creating interfaces which are specific to a particular device and also
work on performance optimization.
Skills Required:
- Strong Object Oriented design concepts and programming skills in Objective-C.
- They should have thorough knowledge of Information Architecture,
human-computer interaction and user interface design principles.
Technical Support Officer
A Technical Support Officer
resolves technical issues of clients via e-mail or over phone, they are
also responsible for configuration of client’s equipment by configuring
software to the application servers. They provide training to clients in
the use of system and applications & have general understanding of
Operating System and the application operations offered by their
companies. Creating new accounts for the users with the help of software
tools is also a part of the job.
Skills Required:
- They should be able to work independently and efficiently to meet
deadlines, promptly answer support related email, phone calls and other
electronic communications.
- They should be able to troubleshoot minor hardware and software issues.
- They should be able to work well on internet related applications such as e-mail clients, FTP clients and web browsers.