Application
Management
(ALM)
Click to editLifecycle
Master title
style
Methodologies and Tools Roundtable
Peter Mellow, VP ADP Development
Sunil Belgaonkar, Software Architect
1
© 2011 Progress Software Corporation. All rights reserved.
Agenda





2
Purpose and Goals
Development processes and tools
Agile Development process and tools
Application packaging and deployment
Wrap up and next steps
© 2011 Progress Software Corporation. All rights reserved.
Application Lifecycle Management
3
© 2011 Progress Software Corporation. All rights reserved.
Purpose Of The Meeting




4
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?
© 2011 Progress Software Corporation. All rights reserved.
Welcome and Introductions
 Please provide your name
 Goals you would like to achieve from this
meeting?
5
© 2011 Progress Software Corporation. All rights reserved.
ALM Components
•
•
•
•
•
•
Requirements management
Architecture
Development, Build and Testing
Issue and resource tracking
Release management
Deployment
• What else?
6
© 2011 Progress Software Corporation. All rights reserved.
Agenda





7
Purpose and Goals
Development processes and tools
Agile Development process and tools
Application packaging and deployment
Wrap up and next steps
© 2011 Progress Software Corporation. All rights reserved.
Development Process Workflow
8
© 2011 Progress Software Corporation. All rights reserved.
Source Development Tools



9
Progress Developer Studio for OpenEdge
Web tools
Other Plug-ins e.g. Source code generators etc…
© 2011 Progress Software Corporation. All rights reserved.
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:
•
•
•
•
10
Set up change notifications
Version control is not a backup system
Use branches
Write good commit messages
© 2011 Progress Software Corporation. All rights reserved.
Version Control Tools Comparison
Tool
11
Availability
Eclipse Plug-in
OpenEdge
support
Vendor
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
© 2011 Progress Software Corporation. All rights reserved.
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:
•
•
•
•
•
•
•
12
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
© 2011 Progress Software Corporation. All rights reserved.
Continuous Integration Tools Comparison
SCM
Support
Tool
Vendor
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 Microsoft
Server
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
Commercial
Yes
Free /
Commercial
Yes
CodeBeamer
Team City
13
JetBrains
© 2011 Progress Software Corporation. All rights reserved.
Build Tools
Plug-in availability
Eclipse and Visual
Studio
Ant, Hudson
and Maven
Eclipse and NetBeans
Eclipse, Visual Studio
and IntelliJ
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
14
© 2011 Progress Software Corporation. All rights reserved.
Software Testing Tools
Tool
15
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
© 2011 Progress Software Corporation. All rights reserved.
-
OpenEdge Focused Development Tools

Progress Developer Studio for OpenEdge
–

RoundTable
–

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
–
16
PCT (Progress Compilation Tools) is a set of ANT tasks, designed to build OpenEdge
applications.
Unit testing
–

RoundTable is a software configuration management and source code control solution focused
on OpenEdge applications.
Build/Compile
–

Eclipse based IDE or modeling and writing ABL applications.
ProLint is a language parser and set of customizable source code analysis rules for detecting
problems and standards violations in ABL code.
© 2011 Progress Software Corporation. All rights reserved.
Development Tools Discussion




18
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?
© 2011 Progress Software Corporation. All rights reserved.
Version Control Discussion




19
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?
© 2011 Progress Software Corporation. All rights reserved.
Continuous Integration Discussion



20
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?
© 2011 Progress Software Corporation. All rights reserved.
Software Testing Discussion
21

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?
© 2011 Progress Software Corporation. All rights reserved.
Agenda





22
Welcome
Development processes and tools
Agile Development process and tools
Application packaging and deployment
Wrap up and next steps
© 2011 Progress Software Corporation. All rights reserved.
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
23
© 2011 Progress Software Corporation. All rights reserved.
Agile Best Practices
24

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
© 2011 Progress Software Corporation. All rights reserved.
Discussion
25

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?
© 2011 Progress Software Corporation. All rights reserved.
Agenda





26
Welcome
Development processes and tools
Agile Development process and tools
Application packaging and deployment
Wrap up and next steps
© 2011 Progress Software Corporation. All rights reserved.
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
27
© 2011 Progress Software Corporation. All rights reserved.
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
28
© 2011 Progress Software Corporation. All rights reserved.
Discussion
29

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?
© 2011 Progress Software Corporation. All rights reserved.
Agenda





30
Welcome
Development processes and tools
Agile Development process and tools
Application packaging and deployment
Wrap up and next steps
© 2011 Progress Software Corporation. All rights reserved.
Next…
 Where would you like to go from here?
31
© 2011 Progress Software Corporation. All rights reserved.
Goals of working group
 Identify key tools by understanding different
processes
 Recommendation for the tools
 Document best practices / non-practices
32
© 2011 Progress Software Corporation. All rights reserved.