32
© 2011 Progress Software Corporation. All rights reserved. 1 Click to edit Master title style Application Lifecycle Management (ALM) Methodologies and Tools Roundtable Peter Mellow, VP ADP Development Sunil Belgaonkar, Software Architect

Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

  • Upload
    hallie

  • View
    41

  • Download
    5

Embed Size (px)

DESCRIPTION

Application Lifecycle Management (ALM) Methodologies and Tools Roundtable. Peter Mellow , VP ADP Development Sunil Belgaonkar , Software Architect . Agenda. Purpose and Goals Development processes and tools Agile Development process and tools Application packaging and deployment - PowerPoint PPT Presentation

Citation preview

Page 1: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.1

Click to edit Master title styleApplication Lifecycle Management (ALM) Methodologies and Tools Roundtable

Peter Mellow, VP ADP Development Sunil Belgaonkar, Software Architect

Page 2: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.2

Session ID: Session Title

Agenda

Purpose and Goals Development processes and tools Agile Development process and tools Application packaging and deployment Wrap up and next steps

Page 3: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.3

Application Lifecycle Management

Page 4: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.4

Purpose Of The Meeting

Get a broad understanding of the challenges Discuss different processes and tools used by customers Define scope of tools and development methodologies Where do we go from here?

Page 5: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.5

Welcome and Introductions

Please provide your name Goals you would like to achieve from this

meeting?

Page 6: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.6

ALM Components

• Requirements management• Architecture • Development, Build and Testing • Issue and resource tracking• Release management• Deployment

• What else?

Page 7: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.7

Session ID: Session Title

Agenda

Purpose and Goals Development processes and tools Agile Development process and tools Application packaging and deployment Wrap up and next steps

Page 8: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.8

Development Process Workflow

Page 9: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.9

Source Development Tools Progress Developer Studio for OpenEdge Web tools Other Plug-ins e.g. Source code generators etc…

Page 10: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.10

Version Control Revision control, also known as version control or source control is the

management of changes to documents, programs, and other information stored in file system

Best Practices:• Set up change notifications• Version control is not a backup system• Use branches• Write good commit messages

Page 11: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.11

Version Control Tools ComparisonTool Availability Eclipse Plug-in OpenEdge

supportVendor

GIT Open Source Yes No

SVN Open Source Yes No Apache

CVS Open Source Yes (As part of normal eclipse)

No GNU

Mercurial Open Source Yes No GNU

Team Foundation Server Commercial Yes (Teamprise) No Microsoft

Round Table Commercial Yes Yes TugBoat

AccuRev Commercial Yes No AccuRev

PerForce Commercial Yes No PerForce

Clearcase Commercial Yes No IBM

Page 12: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.12

Continuous Integration

Continuous Integration is a software development practice where members of a team integrate their work frequently. Each integration is verified by an automated build to detect integration errors as quickly as possible.

Best Practices:• Maintain single source repository• Automate build process• Commit changes to mainline everyday• Build mainline on integration machine• Keep the build fast• Test in a clone of production environment• Automate deployment

Page 13: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.13

Continuous Integration Tools Comparison

Tool Vendor Availability SCM Support Build Tools Plug-in availability

Jenkins/ Hudson Eclipse/Oracle Open Source Yes Ant, Maven Eclipse

Cruise Control GNU Open Source Yes Ant, MS Build Eclipse

Go Thought Works Commercial Yes

Team Foundation Server

Microsoft Commercial Built-in MS Build Visual Studio

Bamboo Atlassian Open Source / Commercial

Yes Maven, Ant, MS Build

Eclipse, Visual Studio and IntelliJ

Electric Commander

Electric Cloud Commercial Yes Eclipse and Visual Studio

CodeBeamer Commercial Yes Ant, Hudson and Maven

Eclipse and NetBeans

Team City JetBrains Free / Commercial

Yes Eclipse, Visual Studio and IntelliJ

Page 14: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.14

Testing The process of validating and verifying that a software program / application /

product:– meets the requirements that guided its design and development;– works as expected; and– can be implemented with the same characteristics.

Types of testing– Unit Testing - individual classes and methods– GUI Testing - interactive elements– Smoke Testing - software will not crash outright– Integration Testing - modules tested as a group– System Testing - compliance with requirements– Regression Testing - new errors resulting from ongoing changes– Load Testing - measuring response under load– Usability Testing - usability of the application– Security Testing - prevents unauthorized use

Page 15: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.15

Software Testing ToolsTool Purpose Availability OE Support Vendor

Valgrind Memory leak detection/profiling

OpenSource No Open Source

Selenium Web OpenSource via browser Open Source

GUIdancer GUI Commercial - Bredex

QTP GUI/Web Commercial Yes HP

Visual Studio Test Pro GUI Commercial - Microsoft

WinRunner GUI -

log4j Execution Tracing Open Source No Apache

WebUI Test Studio Web Commercial via browser Telerik

xUnit Unit OpenSource via oeunit Open Source

jProfiler Performance Commercial No Ej-technologies

Page 16: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.16

OpenEdge Focused Development Tools

Progress Developer Studio for OpenEdge– Eclipse based IDE or modeling and writing ABL applications.

RoundTable– RoundTable is a software configuration management and source code control solution focused

on OpenEdge applications.

Build/Compile– PCT (Progress Compilation Tools) is a set of ANT tasks, designed to build OpenEdge

applications.

Unit testing – It is a method by which individual units of source code are tested to determine if they are fit for

use. There are two xUnit based frameworks, oeunit and prounit available for OpenEdge.

Static program analysis – ProLint is a language parser and set of customizable source code analysis rules for detecting

problems and standards violations in ABL code.

Page 17: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.18

Development Tools Discussion

What development tools (for different technologies) are you using in your environment?

What other plug-ins are you using in your environment? Does it meet your needs? Is it integrated into your build process?

Page 18: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.19

Version Control Discussion

What version control product are you using in your environment? Does it meet all your needs? Is it integrated into your development tools? Is it integrated into your build process?

Page 19: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.20

Continuous Integration Discussion Does your development process include continuous integration? Are you using a continuous integration product? Are your other development practices built on the benefits/hurdles of

your build process?

Page 20: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.21

Software Testing Discussion

Topics to discuss Unit Testing GUI Testing Load Testing

Questions What testing tools are you using in your environment? Does it meet all your needs? Is it integrated into your development tools? Is it integrated into your build process?

Page 21: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.22

Session ID: Session Title

Agenda

Welcome Development processes and tools Agile Development process and tools Application packaging and deployment Wrap up and next steps

Page 22: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.23

Agile Development/Manifesto

Style of software development that emphasizes customer satisfaction through continuous delivery of functional software.

Based on a variety of iterative development disciplines including extreme programming (XP)

Agile methods put developers to work in small teams to tight budgets and short timescales

Agile Principles:

• Individuals and interactions over processes and tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

Page 23: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.24

Agile Best Practices

Common Coding guidelines Code Refactoring Code Regression Testing Continuous Integration Test Driven Development Active Stakeholder participation Pair Programming Take a breadth-first approach Smaller is better

Page 24: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.25

Discussion

What agile methodologies have you adopted?

What benefits have you seen?

Do you follow one of the standard agile systems such as scrum, XP, AUP, DSDM, FDD or another one?

Are you using an ALM tool that assists with your agile methodology?

Have you provided any formal agile development training to your developers and product owners?

Page 25: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.26

Session ID: Session Title

Agenda

Welcome Development processes and tools Agile Development process and tools Application packaging and deployment Wrap up and next steps

Page 26: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.27

Application Packaging

Application packaging is the process of identifying application components and determining how the components should be installed and configured on client workstations.

Best Practices:• Avoid hard coding of paths• Provide uninstall capability• Provide rollback mechanism• Provide silent installers

“Enterprises that do not dedicate resources to packaging applications will fail at software distribution…”

(0.8 probability)— Gartner Group

Page 27: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.28

Software Deployment

The general process that has to be customized according to specific requirements or characteristics to make a software system available for use.

• Synaptic Package Manager

• Advanced Packaging Tool

• Portage

• Cygwin

• Web Client Application Assembler

• Windows MSI

• InstallShield

Page 28: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.29

Discussion

How do you do packaging?

How do you do deployment?

What packaging/deployment tool are you using?

How “hands-on” are each of the steps?

Page 29: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.30

Session ID: Session Title

Agenda

Welcome Development processes and tools Agile Development process and tools Application packaging and deployment Wrap up and next steps

Page 30: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.31

Next…

Where would you like to go from here?

Page 31: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable

© 2011 Progress Software Corporation. All rights reserved.32

Goals of working group

Identify key tools by understanding different processes

Recommendation for the tools Document best practices / non-practices

Page 32: Application Lifecycle Management (ALM) Methodologies and Tools Roundtable