Pages

Sunday, February 18, 2007

Software Development JD - Business Application Development

This blog provides insights into the fundamental roles that exist in the software development industry- specifically in the area of Business Application Development.

The business application software development industry adopts widely varying processes and people hierachies to manage software development. Despite these differences there are some common threads in the people hierarchies and people competencies required in the software development industry. Across companies, there is a need to understand the business problem, convert that problem into an architecture, convert the architecture into a solution, test the solution, and deploy the solution. Although each of these processes may change to some extent based on the programming models and tools being used, fundamentally there are some roles, which every process has in one form or another. Also these roles exist in a hierarchy. Below is a hierarchy representation of the most common roles.
 
ROLES AND HIERARCHY

Software Developer (Reports into Team Leader)
Team Leader (Reports into Project Manager/Delivery Manager)
Project Manager/ Delivery Manager

FUNCTIONS AND COMPETENCIES

This section summarizes the functions and competencies (knowledge, skills and abilities) that are critical to success in these roles. It then mentions the assessment methodology adopted while hiring for these roles.

Software Developer Role


Functions:

The role of a Software Developer is an entry-level role. 'Software Developer’ is a broad designation that applies to all junior roles in the IT hierarchy, right from a junior software engineer to a senior software engineer. A Software Developer is responsible for any or more of the following functions:

-- Coding - Writing code and low level analysis
-- Design - Low-level design documentation
-- Implementation - Installation of product at client location
-- Production Support and Enhancements - This involves providing support, maintenance and enhancements
-- Testing - Testing the application for functionality at each stage

Competencies:

Knowledge Of

-- Programming Languages(C/C++)
-- Software Engineering Concepts (Design, Coding, Documentation etc)
-- Databases
-- Debugging tools
-- Knowledge of Testing tools (like WinRunner, LoadRunner) – (Desirable, not mandatory)
-- Knowledge of Design tools – (Desirable, not mandatory)

Skills/Abilities:

-- Communication Skills

Reading-The ability to read and comprehend
Speaking - The ability to speak clearly
Listening – The ability to listen and comprehend

-- Academic Skills like:

Reasoning and Problem Solving ability-The ability to approach solutions from multiple perspectives
Mathematics-Computation and Application
Attention to Detail

-- Soft Skills like:

Team Work & Group Dynamics
Integrity
Initiative
Rule Consciousness-Complying with policies
Being Dependable and Reliable
Ability to Prioritize

Assessments For the Software Developer Role

Technical Expertise is assessed by means of a Test /Technical Interview
Soft Skills/Communication is assessed by means of an Interview
Other Soft Skills like Team Working/Group Dynamics are expected to be present in candidates and is not specifically assessed

Team Lead Role

Functions: A Team Leader is primarily responsible for the following functions for designing software solutions and managing teams.

Competencies:

Knowledge of

-- In-depth knowledge of Design, which includes Design Tools (like Rational Rose), Design Patterns, High and Low level Design  (HLD and LLD)
-- Unified Modeling Language (UML)
-- Testing Fundamentals, Testing tools (like wind runner, loadrunner) and Test Scripting
-- Implementation which includes Configuration Management and Environment Set-Up
-- Advanced knowledge of Programming Languages (applicable to the Design environment)

Skills/Abilities:

-- Communication Skills :
Reading-The ability to read and comprehend
Speaking - The ability to speak clearly
Listening – The ability to listen and comprehend
Writing – The ability to convey ideas and information through emails in a business context

-- Academic Skills like Problem solving and Analytical ability

-- Soft Skills like:

Team Work & Group Dynamics
Integrity
Initiative
Rule Consciousness-Complying with policies
Being Dependable and Reliable
Ability to Prioritize
Learnability – Having a perspective of continuous learning and skills renewal which is critical in a high-change industry like software development

Assessments For the Team Lead Role

Technical Expertise(C++ Technical Expertise) is usually assessed by means of a Test /Technical Interview       
Design Skills are usually assessed by means of an Interview
Soft Skills/Communication is generally assessed by means of an Interview
Other Soft Skills like Team Working/Group Dynamics are evaluated by means of an Interview
 

Project Manager Role

Functions: A Project Manager is responsible for successful delivery of a software project. This involves team management, project management and customer management.

Competencies:

Knowledge of:

-- Project Management including Risk Management
-- Deep technology in the technology area required for the project

Critical Skills /Abilities:

-- Project Management Skills
-- Communication Skills
-- Customer facing Skills – especially negotiation
 

Assessments For the Project Management Role

All competencies required are assessed by Interviews in those specific areas.
Some companies look for Project Management Institute Certifications to assess Project Management knowledge
 

The article is an extract of the information shared by an industry professional with 7 years of experience in the IT industry during the course of the MeritTrac Guest Lecture Series.

No comments:

Post a Comment

Hit Counter