SDLC for outsourced customized software development



Similar documents
(Refer Slide Time: 01:52)

Appendix 2-A. Application and System Development Requirements

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

RFP Attachment C Classifications

esoma Complete Fleet Management System

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Custom Software Development Approach

How To Model Software Development Life Cycle Models

Case Study. Portfolio Listing application Brainvire Infotech Pvt. Ltd Page 1 of 1

Data Conversion Best Practices

Test Automation Process

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

THE APPLICATION OF THE PARETO PRINCIPLE IN SOFTWARE ENGINEERING.

Keshima Technologies Pvt. Ltd.

Skatteudvalget (2. samling) SAU Alm.del Bilag 48 Offentligt. Programme, Project & Service Management Analysis

How To Write An Slcm Project Plan

CHAPTER 13. Acquiring Information Systems and Applications

ájoƒ ùdg á«hô dg áµلªÿg Yesser Overall SDLC Process Definition

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Practice Overview. REQUIREMENTS DEFINITION Issue Date: <mm/dd/yyyy> Revision Date: <mm/dd/yyyy>

CHAPTER 9. DEVELOPING IT SY STEM S Bringing IT System s to Life

Systems Development Life Cycle (SDLC)

A Mind Map Based Framework for Automated Software Log File Analysis

Essentials of the Quality Assurance Practice Principles of Testing Test Documentation Techniques. Target Audience: Prerequisites:

Project Implementation Process (PIP)

Nova Software Quality Assurance Process

VAIL-Plant Asset Integrity Management System. Software Development Process

Information Systems Development Process (Software Development Life Cycle)

Montana Department of Transportation Information Services Division. System Development Life Cycle (SDLC) Guide

IT Project: System Implementation Project Template Description

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

ON-SITE/NEAR-SHORE/OFF-SITE DELIVERY MODELS

Systems Analysis and Design Life Cycle

Enterprise Architecture Maturity Model

IMPORTANCE OF SOFTWARE TESTING IN SOFTWARE DEVELOPMENT LIFE CYCLE

Quality Assurance - Karthik

How To Implement An Enterprise Resource Planning Program

Development, Acquisition, Implementation, and Maintenance of Application Systems

Smarter Balanced Assessment Consortium. Recommendation

Importance of Testing in Software Development Life Cycle

DITA Adoption Process: Roles, Responsibilities, and Skills

Entire contents 2011 Praetorian. All rights reserved. Information Security Provider and Research Center

Prototyping Techniques for

Dr. Z. A. Usmani, Mohsin,Diksha,Husainali,AbdulKadir Page 15

CHAPTER 13. Acquiring Information Systems and Applications

Fixed Scope Offering for. Oracle Taleo EE Saas Implementation

The Quality Assurance Centre of Excellence

Request for Proposal for Application Development and Maintenance Services for XML Store platforms

44-76 mix 2. Exam Code:MB Exam Name: Managing Microsoft Dynamics Implementations Exam

Request for Information OBIFS Implementation with Exalytics (Discoverer Retirement)

Mineral Exploration Corporation Limited (A Govt. of India Enterprise) A Miniratna PSE. Engagement of ERP Consultant on Contract Basis

Enterprise Content Management (ECM)

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Program Lifecycle Methodology Version 1.7

APP IDEATION. Understanding client vision. Exchange of idea s. Finalizing an outline. Deliverables:

Software Development Life Cycle (SDLC)

The Importance of Defect Tracking in Software Development

Software Testing Lifecycle

Software Estimation Techniques - Common Test Estimation Techniques used in SDLC

Chapter 6 Implementation Planning

CDC UNIFIED PROCESS JOB AID

Announcements. Project status demo in class

SaaS Based Inventory Management System For US Based Client

System/Data Requirements Definition Analysis and Design

Why Your SIEM Isn t Adding Value And Why It May Not Be The Tool s Fault. Best Practices Whitepaper June 18, 2014

CRM. Booklet. How to Choose a CRM System

Developing a Business Analytics Roadmap

Software Engineering Question Bank

ASSAM POWER GENERATION CORPORATION LIMITED

Overview of how to test a. Business Continuity Plan

ERP Implementation Methodology SAFAL ERP

Effective Software Security Management

IT Project Management Methodology. Project Scope Management Support Guide

Recommended Roadmap for Shared Inspection Management Solutions

Software Requirement Specifications V1.0

An Introduction to Decision Management. James Taylor CEO

Leveraging CMMI framework for Engineering Services

Business Systems Analysis Certificate Program. Millennium Communications & Training Inc. 2013, All rights reserved

Chap 1. Introduction to Software Architecture

TIBCO Spotfire and S+ Product Family

HR Operations & Outsourcing

Becoming a Business Analyst

Build (develop) and document Acceptance Transition to production (installation) Operations and maintenance support (postinstallation)

The Application Readiness Level Metric

Transcription:

SDLC for outsourced customized software development Introduction The opening up of the world's economy has resulted in a lot of changes in the way an enterprise tackles its Information Technology (IT) needs. Managers across the world are faced with reducing costs involved in executing IT projects whereas the projects are increasing in complexity. This paradox is forcing them to look at outsourcing software development to other countries where trained human resources are much more affordable. Also, consulting firms specializing in IT have the expertise and are conversant with the latest trends in technology. In this paper, we look at an SDLC (Software Development Life Cycle) process that is effective for outsourced customized software development. Details: SDLC primarily consists of the following phases 1. Planning (and Definition) 2. Analysis 3. Design 4. Development 5. Testing 6. Installation 7. Maintenance Let's look at each of these phases in further detail. The figure at the end shows the steps of the process that are involved in various phases and the process gates. 1. Planning (and Definition) Initiation of the Project: The business need or opportunity triggers the initiation of the project. The business need is captured in a concept proposal document. The system to be developed is defined in this document. This is done by the customer. Request for Proposal (RFP): The RFP document is prepared by the customer to be sent to various consulting firms to get their proposals. The requirements in RFP are derived from the Concept proposal document in the previous step. The customer may sometimes take the help of a consulting firm to prepare the RFP. Proposal submission: The consulting firms submit their proposals, usually also accompanied by a proof of concept application. The proof of concept helps in establishing the feasibility of the project and also showcases the capabilities of the consulting firm. It also helps to sell the idea of the proposed system. The customer chooses one of the several proposals that it receives. Project Manager: The project manager for the project is appointed.

Project Scope: The scope of the project is set which clearly defines the high-level system requirements. Success factors and risks: Critical success factors and Risks are identified. Project Plan: The first (baseline) version of the project plan is made. The project manager identifies the resources required to work. He/she also identifies the major tasks. The tasks are assigned to resources. The project plan at this stage also gives a rough estimate of the costs involved in executing this project. The project plan is a living document and should always be kept up to date. 2. Analysis Definition of requirements: The business requirements need to be understood by the IT people who are going to develop the IT application. The IT and business users sit together and gather the business requirements for the system to be developed. They prepare a SRS (System Requirements Specification) document. This is done at the customer's location and a technical lead from the consulting firm preferably needs to be present in these discussions. A sign-off is done on the requirements. The Acceptance Criteria for the project is defined. Prototype: A prototype made at this stage helps in visualizing the system that is going to be built. It also bridges the gap between the business users and the IT people. It is a lot cheaper to detect an error during the planning or analysis phase rather than in the later stages. A prototype also helps to re- evaluate the feasibility of the project. It gives all the parties involved a feel of the final system. A prototype is an easily modifiable and extensible working model of a proposed system, not necessarily representative of a complete system, which provides users of the application with a physical representation of the key parts of the system before implementation. An easily built, readily modifiable, ultimately extensible, working model of the primary aspects of a proposed system. Another definition of a prototype is that it is a strategy for performing requirements determination wherein user needs are extracted, presented, and developed by building a working model of the ultimate system - quickly and in context. The prototype can be developed off-site to reduce costs. a) RS document b) Acceptance criteria c) Prototype 3. Design Technical Architecture: The technical architects design the architecture of the application to be built. Alternate architectures are also proposed. After a careful evaluation, the appropriate architecture is chosen. These designs are captured in the High Level Design Document. Detail design: Each component in the system needs to be designed once the overall architecture of the application has been finalized. The design of each component is captured in Detail Design documents. The Detail Design Documents are the blueprints that the developers use to build the application. The design of the database required for this application is done by database architects.

a) High Level Design Document b) Detail Design Documents c) Data Models D) UI Flow/wire frames 4. Development Build the components: The development team is divided into smaller groups and each group works on a specific module. The actual system is constructed in this phase. The framework, the database and programs are made conforming to the detailed design documents. Each individual is responsible for the piece of work he/she is assigned. Unit testing is done to ensure that each line of code written is tested. a) Database b) Framework c) Programs D) Scripts 5. Testing Test cases preparation: Architects from the quality team plan the test cases based on original requirements from the system. Their inputs are the SRS documents, the High Level Design Document and the Detail Design Documents. Test cases are prepared by the quality verification team to verify if the original requirements are met. Each test case has the condition to be tested and the expected results. This activity goes on Test using test suites: Once the test plan is ready and the development team delivers the modules, the quality verification team tests these modules for each test case. The actual results are verified against the expected results. The above activities are done by the consulting firm. User Acceptance Testing: The customer, who is the end user of the system, tests the whole system based on the Acceptance Criteria agreed upon in the Analysis Phase. The customer signs off on the User Acceptance Test Results if the system works as expected. In huge projects, it is advisable that the customer signs off on each major milestone. This can help in detecting issues early in the process. a) Test plan b) Test results C) User Acceptance test results 6. Installation User documentation: The technical writers prepare the user manuals/help for the end users. Training manuals are also prepared to train the end users. Someone from the consulting firm may need to go the customer's site for training the users on using the new system.

Application deployment: The application is deployed in the production environment. This requires someone from the consulting firm to be present at the customer's site. a)user Manuals b)training plan C)Training material 7. Maintenance Performance monitoring and tuning: The application may need to be tuned for efficiency and performance in the actual production scenario. Bug fixes and support: A support team is formed to answer queries from end users as well as fix the bugs found in the application. Change management: Business requirements are usually dynamic in nature. The software application needs to adapt to the changing requirements. A change management procedure is established to deal with such changes. The maintenance staff modifies the system to accommodate changes (including request for new features). a)support plan B)Change management plan Conclusion In a competitive world like that of today, it makes a lot of sense to outsource the development of software applications to consulting firms which specialize in building IT solutions. Consulting firms bring in the experience of working on similar solutions and are up to date with the latest trends in technology. By making a careful choice of a consulting firm based on the profiles of team members who are going to work on the project and also the projects executed by the consulting firm, the success of the project can be guaranteed. These are some of the reasons why IT projects fail:.unclear or missing requirements.insufficient commitment from sponsors.lack of access to subject matter experts.skipping SDLC phases.failure to manage project scope (scope creep and feature creep).failure to monitor the project and keep the project plan up to date To prevent these from happening, it is vital to choose a competent project manager, a competent team, define an effective SDLC process to be followed and stick to the process.

Process Steps Process Gates 3 1 Institution of project (Requested for proposal) 2 Proof of concept Proposal 4 Project plan and estimates 5 Project plan and estimates 8 6 Requirements definations 7 Prototype version 1 Requirements Prototype version 2 9 High lebel design 10 11 High lebel design 12 Detail design 13 Detail design Coding (system 14 construction) 15 Code s System 16 verification and 17 validation validation and verification 18 System delivery 18 Delivery/ project Acceptance Fig.: Software development life Cycle for Outsourced Projects

Contact BeeHyv : For further details contact us at sales@beehyv.com Address INDIA: BeeHyv Software Solutions Pvt. Ltd., Plot No. 24, 2nd floor, New Vasavinagar, Karkhana, Secunderabad 500015, INDIA Phone: +91 40 40159024