Software Development Best Practices



Similar documents
Global Delivery Excellence Best Practices for Improving Software Process and Tools Adoption. Sunil Shah Technical Lead IBM Rational

Open Group SOA Governance. San Diego 2009

Data Governance Maturity Model Guiding Questions for each Component-Dimension

Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation

Business Analyst Work Plan. Presented by: Billie Johnson, CBAP CSM

L Impatto della SOA sulle competenze e l organizzazione ICT di Fornitori e Clienti

Continuous Delivery Workshop

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

Data Management Maturity Model. Overview

Application Integration Through Integration Platform as a Service (ipaas)

EL Program: Smart Manufacturing Systems Design and Analysis

QA Engagement Models. Managed / Integrated Test Center A Case Study

Prerequisites for Successful SOA Adoption

Program Lifecycle Methodology Version 1.7

Increasing business values with efficient Software Configuration Management

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

Smart Meters are Disrupting the Retail Energy Landscape

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

How do you manage the growing complexity of software development? Is your software development organization as responsive to your business needs as

The Way to SOA Concept, Architectural Components and Organization

VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15

Standard Glossary of Terms Used in Software Testing. Version 3.01

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

Service-Oriented Architecture Maturity Self-Assessment Report. by Hewlett-Packard Company. Developed for Shrinivas Yawalkar Yawalkar of CTS

HKITPC Competency Definition

iapps Consulting DWC LLC Fixed Scope Offering (FSO) For Taleo Recruit and On-Boarding Drive Transformation Create Value

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Anatomy of an Enterprise Software Delivery Project

"World Quality Report: Trends in Technology, Organization and Outsourcing"

Information Governance 2.0 A DOCULABS WHITE PAPER

Using SOA to Improve Operational Efficiency A Management Overview. Introducing MIKE2.0 An Open Source Methodology for Information Development

Sub Code: CP7007 Sub Name: SOFTWARE REQUIREMENTS ENGINEERING Branch / Year: ME CSE / I Year Staff in charge: Dr.M.Senthil Kumar

SOA Adoption Challenges

White Paper. Software Development Best Practices: Enterprise Code Portal

Real Time Embedded Software Development Using Agile Technology An Experience Report

Test Data Management. Services Catalog

END TO END DATA CENTRE SOLUTIONS COMPANY PROFILE

Improve Your Process With Online Good Practices 1

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Process-Based Business Transformation. Todd Lohr, Practice Director

Partnering for Project Success: Project Manager and Business Analyst Collaboration

How To Manage An Open Source Software

OMG SOA Workshop - Burlingame Oct 16-19, 2006 Integrating BPM and SOA Using MDA A Case Study

Driving Your Business Forward with Application Life-cycle Management (ALM)

A Characterization Taxonomy for Integrated Management of Modeling and Simulation Tools

Surveying and evaluating tools for managing processes for software intensive systems

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

White Paper IT Methodology Overview & Context

Enabling IT Performance & Value with Effective IT Governance Assessment & Improvement Practices. April 10, 2013

BIG DATA KICK START. Troy Christensen December 2013

PROJECT TRACKING and CONTROL

Table of contents. Best practices in open source governance. Managing the selection and proliferation of open source software across your enterprise

How To Improve A Test Process

IDC Abordagem à Implementação de Soluções BPM

How To Improve Your Business Recipe Cards

TOGAF TOGAF & Major IT Frameworks, Architecting the Family

Serena Dimensions CM. Develop your enterprise applications collaboratively securely and efficiently SOLUTION BRIEF

Managing Open Source Code Best Practices

IT Governance. What is it and how to audit it. 21 April 2009

TOGAF. TOGAF & Major IT Frameworks, Architecting the Family. by Danny Greefhorst, MSc., Director of ArchiXL. IT Governance and Strategy

IT Service Catalog. Awareness Session for. C harles Williams IT Strategy Practice Leader O M

A Comparison of SOA Methodologies Analysis & Design Phases

TESCRA ICM (ICC) Case Study

How to bridge the gap between business, IT and networks

Optimizing Application Management Outsourcing:

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

Building Out BPM/SOA Centers of Excellence Business Driven Process Improvement

Software Engineering Principles The TriBITS Lifecycle Model. Mike Heroux Ross Bartlett (ORNL) Jim Willenbring (SNL)

Industry Challenges in Embedded Software Development

A Privacy Officer s Guide to Providing Enterprise De-Identification Services. Phase I

MKS Integrity & CMMI. July, 2007

Achieve Economic Synergies by Managing Your Human Capital In The Cloud

How To Improve Your Software

Agile EAI November 2002 Martin Fowler Gregor Hohpe

Design Approach for a Data Sharing Environment. Presented by Gene Boomer CNO Financial

Systems Development Life Cycle (SDLC) Methodology Information Technology Services

Better Data is Everyone s Job! Using Data Governance to Accelerate the Data Driven Organization

The OMG BPM Standards

Pragmatic Business Service Management

ITIL: What it is What it Can Do For You V2.1

Project, Program & Portfolio Management Help Leading Firms Deliver Value

DITA Adoption Process: Roles, Responsibilities, and Skills

BI Strategy: Getting to Where You Want to Go with a Business-Driven Strategy

HP SOA Systinet software

Practical Approaches to Achieving Sustainable IT Governance

Agile Master Data Management A Better Approach than Trial and Error

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Software and Systems Engineering. Software and Systems Engineering Process Improvement at Oerlikon Aerospace

A DESIGN SCIENCE APPROACH TO DEVELOP A NEW COMPREHENSIVE SOA GOVERNANCE FRAMEWORK

Five best practices for deploying a successful service-oriented architecture

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Transcription:

Software Development Best Practices Artifact Reuse Supported by Modern Team Communication Tools and Patterns Andrew Bose Principal (979) 777-1431 andrew.bose@parivedasolutions.com Pariveda Solutions, Inc. Houston, TX

Table of Contents Difficulties Facing Custom Software Development Introduction to Software Development Best Practices Team Communication Artifact Reuse Assessing Current and Planning New Best Practices 2 Pariveda Solutions. Confidential & Proprietary.

Half of every dollar spent on software development is currently spent on defect mitigation The software industry has the highest failure rate of any so-called engineering field Capers Jones Other resources echo Jones claims. In 2011, a Computer World study found 21% of software projects fail completely Another 42% were over budget, late, or did not meet requirements In another study, Capers Jones found 75% of software projects were late 35% of software projects were cancelled altogether Technology research firm, IDC conducted a survey of 139 companies in North America Ranged in sizes from 250 to 10,000 employees Over 50% had over 1000 employees IDC reported that these companies had annual defect resolution costs of $5.2M (midpoint-mean 100 IT employee organization) $22M (midpoint-mean 416 IT employee organization) Successful Problem Failure Computer World: Project Failure Rate 21% 37% 42% 0% 10% 20% 30% 40% 50% Percent of Projects Canceled 1 80.00% 60.00% 40.00% 20.00% 0.00% 0 1 10 100 1,000 10,000 100,000 Function Points 3 Pariveda Solutions. Confidential & Proprietary.

Best Practices bring a level of control and predictability to software engineering that increases the probability of completing a successful project Best practices are methodologies or measures a team can take to give a reasonable level of confidence of a successful outcome; they help a team bring order to chaos In order to choose best practices, it is best to look to industry organizations and individuals who have been involved with hundreds or even thousands of projects: Capers Jones, Fred Brooks, Mike Cohn, Martin Fowler, Laurie Williams Institute of Electrical and Electronics Engineers (IEEE) The Software Engineering Institute These software development experts have captured metrics and done the science to prove the benefits of the best practices they advocate It is not necessary for a team to invent all of its own best practices, it is, however, important to keep project metrics so that improvements can be measured Defect density Source repository statistics Size of project A development shop should choose best practices based on organizational culture and the product(s) they are building Best Practices 4 Pariveda Solutions. Confidential & Proprietary.

Although the benefits of specific best practices may vary between organizations, most companies will benefit from Artifact reuse and Team communication In his book, Software Engineering Best Practices, Capers Jones outlines 50 best practices Although the benefits of specific best practices may vary between organizations, most companies will benefit from: Artifact Use Team Communication Team communication and artifact reuse have a powerful interaction Team communication builds a sense of community within the organization necessary for artifact reuse Artifact reuse encourages cross-team, project, and domain communication building trust between members of the organization Artifact reuse is most effective when it is built on a strong foundation of communication tools and processes driven by a culture that encourages and values cross-team knowledge sharing Having good communication within a team and reusing artifacts are two best practices that can dramatically increase development output Artifact reuse is a fantastic way for a development team to: Increase velocity Improve consistency of design across the enterprise Bring more value to a project than otherwise would have been possible 5 Pariveda Solutions. Confidential & Proprietary.

Often times, internal software development teams are not communicating optimally 6 Pariveda Solutions. Confidential & Proprietary.

To be successful, a development team should have in place, and use, a plan and modern tools for communication A sufficient communication plan should include not only a description of how a team communicates internally, but also how it will communicate to End users Stakeholders Other teams Infrastructure Vendors Processes described in the plan may include routines such as daily standup, iteration reviews, weekly status reports, weekly manager meetings, etc. Organized communication between teams becomes essential as a team grows sufficiently large to experience the Network Effect, where communication lines increase exponentially as the number of team members increases linearly A development team should be sufficiently enabled to communicate in the following ways: Real Time Asynchronous Persistent Organized Communication 7 Pariveda Solutions. Confidential & Proprietary.

Artifact reuse is the number one way to increase development team productivity, and should be one of the first targeted best practices for software development 1 Some software engineering experts believe that in the future it will be possible to build software out of large pre-existing components in much the same way that projects are completed in the physical world Other experts think this will never happen as software engineering is inherently different than its physical-world counterparts The truth is somewhere in the middle Certainly, we could be doing more to develop and catalog reusable artifacts Reusable components become available as specific requirements and features become more common place Currently it is very difficult to even approach the component re-use utopia suggested by Jones It is difficult for an artifact reuse program to thrive unless a sound foundation of communication tools is already in place and consistently used by the enterprise 8 Pariveda Solutions. Confidential & Proprietary.

Reuse Maturity Artifact reuse exists in a pyramid of evolution; while internally achieving the highest levels of evolution may be difficult, all enterprises are currently engaged in at least some level of reuse right now Service Library Source Architecture Design Concept Service Generalized data and algorithms for servicelevel reuse Similar to idea of SOA Library Code that can be used as a component of library with minimal configuration Challenges around upgrades and bug fixes Source Sample code Source code from previous projects Requires good communication and a reliable community Architecture Pattern decisions Common codebase organizations Technical organization of solution Design Tool choices Usage documentation Concept Technology stack decisions High-level documents 9 Pariveda Solutions. Confidential & Proprietary.

The following is a plan to assess the current state of communication and reuse and explore how an organization can add best practices to their processes in order to increase the probability of project success Preliminary Work Preliminary Analysis Interview project sponsor Interview subset of project teams Interview subset of users / business leaders Assess High-Level Maturity Assess state of communication Assess state of reuse ROI Estimated Assess potential benefit High level ROI assessment Automated source analysis Plan Phase I High-level Plan Proposed participants and projects Establishing Reuse Best Practices Within the Enterprise Assemble Reuse Team Initial Analysis Interview Steering committee Identify team members Segment Organization Divide by Functional Units Divide by Geography Select representatives Appoint Leads Appoint lead curator Appoint change manager Identify candidates Onboard candidates Develop Plan Set cadence Set precedence for time commitment Phase 0 Phase I Change Leadership 10 Pariveda Solutions. Confidential & Proprietary. Analyze Communication Cultural Analysis Interview steering committee Interview team members Interview SMEs (technical and business) Tool Analysis Review tools used within technical teams Review tools used by Gap Analysis Identify immediate and long term needs Begin tool implementation(s) if necessary Begin cultural shift(s) if necessary Analyze Reuse Culture Reuse Maturity Workshops Plan and organize workshops Conduct workshops across business units or geographies Define current and desired maturity Gap Analysis Analyze current and desired maturity for each business unit or geography Document gaps identify changes needed to close gaps Project Identification Identify projects through which to pilot preliminary reuse recommendations Pilot Reuse Techniques Team Engagement Obtain access to project documentation and artifacts Attend iteration planning and review meetings Opportunity Identification Identify technical overlap with existing or other in-flight projects Identify technical overlap with future (planned) projects Reuse Enablement Establish preliminary infrastructure for reuse Prepare documentation and artifacts for reuse o Conceptual o Physical Recommend Cultural Changes and Tools Tool and Process Update Recommend new tools and processes based on gap analysis Next Phase Planning Identify next projects, business units, or geographies to target for reuse Plan communication and change management Plan specific reuse enablement engagement(s) Additional Recommendations Document and present software development best practice recommendations beyond reuse: o Continuous Integration o Testing o Etc. 10