More Related Content Similar to Software Factories in the Real World: How an IBM WebSphere Integration Factory Helped an Automotive Retailer Keep Its Customers on the Road (20) Software Factories in the Real World: How an IBM WebSphere Integration Factory Helped an Automotive Retailer Keep Its Customers on the Road1. Software Factories in the Real World:
How an IBM® WebSphere® Integration
Factory Helped an Automotive Retailer
Keep Its Customers on the Road
Session 1602
André Tost,
Senior Technical Staff Member, Software Group
Greg Hodgkinson,
Practice Director, Lifecycle Tools and Methodology
2. © 2012 IBM Corporation
2
The Premier Event for Software and Systems Innovation
Session Introduction
Abstract: “Getting any software development team to effectively scale to meet the needs of a large
integration project is actually harder than it sounds. For a large Automotive Retailer based in Florida,
this is exactly what they needed to do. They needed a large amount of integration to be built between
their brand new Point of Sales system and their new SAP back-end. In this session, you will hear about
how tools such as Rational Software Architect and WebSphere Message Broker Toolkit were integrated
with a Rational Team Concert-based development environment to set up super efficient software
factory employing techniques such as Model-Driven Development and Continuous Integration to help
this retailer keep their customers’ wheels on the road.”
Topics for today:
The project
The challenges faced
The software factory tools
The software factory workflow
Key practices that helped us succeed
The benefits
Final thoughts
3. © 2012 IBM Corporation
3
The Premier Event for Software and Systems Innovation
Introducing the Project
A new automotive retail in-store experience
Replacing green screen terminals in the store with modern user interfaces
– Touch screens
– Tablets
– Customer self-service “kiosks”
– In-store WiFi
– Completely new private network (MPLS)
Replacing legacy backend application for customer management, order management and
inventory management
– Transitioning from JDEdwards to SAP
Middleware integration layer
– Exposing backend functionality as reusable business services
– Fully virtualized, scalable infrastructure
– Private cloud on X86/Linux
4. © 2012 IBM Corporation
4
The Premier Event for Software and Systems Innovation
Introducing the Project (cont.)
Service orientation as the architectural foundation
Building an integration layer consisting of service exposure AND provider creation
Diagram taken from developerWorks article “The Enterprise Service Bus, re-examined”,
see http://www.ibm.com/developerworks/websphere/techjournal/1105_flurry/1105_flurry.html
5. © 2012 IBM Corporation
5
The Premier Event for Software and Systems Innovation
Introducing the Project
Challenges faced
Multi-vendor, global development team
– US
– China
– Egypt
– Philippines
Requirements were limited to screenshots
– Hundreds of wire frames, very useful for data modeling
– No functional business requirements
Three layers (client UI, integration layer, backend/SAP) all designed and developed in parallel
– (Semi-)Agile development process required
Brand new infrastructure
– New network, new platform, new middleware
Plus, all the usual project constraints
– Tight schedule
– Constrained budget
6. © 2012 IBM Corporation
6
The Premier Event for Software and Systems Innovation
Introducing the Software Factory Tools
WebSphere Message Broker
Reducing the complexity of
integrating your systems
Point-to-point is expensive
Integration requires specialist
knowledge of API technologies
Integration plumbing and mapping
code wastes developer hours
Mixing integration code with
application code makes
applications brittle
Integrations have high availability
and reliability requirements –
complexity
2) Dynamic mediation2) Dynamic mediation
4) Supports multiple4) Supports multiple
technologiestechnologies
3) Routes and transforms data3) Routes and transforms data
1) Simplified1) Simplified
integration authoringintegration authoring
7. © 2012 IBM Corporation
7
The Premier Event for Software and Systems Innovation
Introducing the Software Factory Tools
Managing and communicating
your software requirements
Poor requirements is the #1
reason projects fail
Traceability is NB, but time
consuming
Difficult to correlate scope lists
with specifications
As soon as requirements
documents are released they can
become out of date
Often the author > review >
feedback > rework process is
inefficient
1) All-in-one editor –1) All-in-one editor –
text as well astext as well as
diagramsdiagrams
2) Easy traceability2) Easy traceability
link creation andlink creation and
“surfing”“surfing”
3) Visual focus –3) Visual focus –
process, use case,process, use case,
screen mockupsscreen mockups
4) Built-in review4) Built-in review
workflowworkflow
5) Strong lifecycle links – to plans, to5) Strong lifecycle links – to plans, to
designs, to code, to builds, to testsdesigns, to code, to builds, to tests
Rational Requirements Composer
8. © 2012 IBM Corporation
8
The Premier Event for Software and Systems Innovation
Controlling the architectural
quality of your software
Difficult to handle software
complexity – too much of it
Lose sight of good patterns when
you are “down in the code”
Refactoring of code is expensive
Large mental leap between
requirements and code
How do you make design a “team
game”?
Introducing the Software Factory Tools
1) Supports popular modeling1) Supports popular modeling
standards – UML, BPMN2, SoaMLstandards – UML, BPMN2, SoaML
2) Turn models into2) Turn models into
code withcode with
transformationstransformations
3) Automatically3) Automatically
apply modelapply model
patternspatterns
4) Graphical code4) Graphical code
editors and visualizerseditors and visualizers
5) Design Manager5) Design Manager
adds web-basedadds web-based
collaborationcollaboration
Rational Software Architect for WebSphere
9. © 2012 IBM Corporation
9
The Premier Event for Software and Systems Innovation
4) Built-in build support4) Built-in build support
including build engineincluding build engine
5) SCM provides support5) SCM provides support
for streams, components,for streams, components,
workspaces – flexible,workspaces – flexible,
simple, powerfulsimple, powerful
Introducing the Software Factory Tools
Managing and enabling change
Plans can quickly become out of
date
Progress views limited to point-in-
time snapshots and waste effort
How to easily track what work was
delivered in a new build?
How to easily track SCM changes
against plans?
How to correlate all project data in
a format that is easy to consume
(and has value)
1) Like 5 tools in one – plans, work items,1) Like 5 tools in one – plans, work items,
SCM, build, project data warehouseSCM, build, project data warehouse
2) Fully integrated data2) Fully integrated data
across lifecycleacross lifecycle
3) Excellent support for3) Excellent support for
agile as well asagile as well as
“traditional” project styles“traditional” project styles
Rational Team Concert
10. © 2012 IBM Corporation
10
The Premier Event for Software and Systems Innovation
The Software Factory Workflow
Coordinating requirements and designs across technology stacks
Constraint: 3 teams working on 3 separate but related streams.
Driven by UI wireframes
Derived scope list (RRC)
Transferred to plans (RTC)
Requirements specs written for
service operations (RRC/RSA)
Designs specs written for service
operations (RSA)
Front-end-WSDL generated
(RSA)
Implementations and stubs
(WMBT)
11. © 2012 IBM Corporation
11
The Premier Event for Software and Systems Innovation
The Software Factory Workflow
Timing is everything!
Ideal: Back-end WSDL available to SOA integration analysts.
12. © 2012 IBM Corporation
12
The Premier Event for Software and Systems Innovation
The Software Factory Workflow
Timing is everything!
Not so good: Back-end WSDL arrives during SOA design.
13. © 2012 IBM Corporation
13
The Premier Event for Software and Systems Innovation
The Software Factory Workflow
Timing is everything!
Getting bad: Back-end WSDL not available for SOA implementation.
14. © 2012 IBM Corporation
14
The Premier Event for Software and Systems Innovation
The Software Factory Workflow
Timing is everything!
The pits: Back-end implementation not available to test against.
15. © 2012 IBM Corporation
15
The Premier Event for Software and Systems Innovation
Coordinating distributed development and integrating the results
Workflow tuned to high velocity without sacrificing quality.
The Software Factory Workflow
RRC
requirements
RSA
service
model
RTC
scm
RTC
scm
WMB
DEV
WMB
QA
wsdl
implementation
wsdl
implementation
Cairo
wsdl
implementation
wsdl
implementation
China
wsdl
implementation
wsdl
implementation
US
wsdl
SOA
analysts
UI & back-end
analysts,
stakeholders
SOA
designers
UI & back-end
designers,
stakeholders
SOA
devs
SOA
devs
SOA
devs
Continuous
build/deploy
On-demand
build/deploy
feedback
feedback
16. © 2012 IBM Corporation
16
The Premier Event for Software and Systems Innovation
Key Practices for Success
Tighter architectural control using RSA
Solution architecture modeled
in UML
Service model developed in UML
– Initial version derived from
use case descriptions
– Collaboratively finalized via
LotusLive sessions
– ~30 services with ~160 operations
WSDL automatically generated
from UML
– Using out-of-the-box RSA
transformation
– Some required modification
done via XSLT
Both UML and WSDL stored
in RTC
17. © 2012 IBM Corporation
17
The Premier Event for Software and Systems Innovation
Key Practices for Success
Keeping the team on track using RTC
Service operation tracking
– Separate tracking for each service interface and each service operation gives indication
of progress
– See later slide for example
Easy assignment of work items to individuals
– For net new development and defect fixes
– Good way of communicating with offshore teams
Impediments
– Communication of (typically blocking) issues across distributed teams
– Identified and/or assigned also during daily scrum meeting
Custom “change control” work item allowed tracking of changes to the service model
– Linkage to individual work items (model change, implementation change, etc)
– Notification to interested users
18. © 2012 IBM Corporation
18
The Premier Event for Software and Systems Innovation
Key Practices for Success
Streams for easy management of different
configurations
– Code configuration for each environment:
DEV > QA > PROD
– Easy to promote changes through
environments
Components allow for groups of artefacts to
be managed together
– Separate out code components, tests, stubs,
models, documents
– Component per application component
• Loading and unloading
• Consolidated history
• Easy to snapshot
Collaborative configuration management using RTC
19. © 2012 IBM Corporation
19
The Premier Event for Software and Systems Innovation
Key Practices for Success
Project events provides an excellent way to
quickly see latest changes
– Easy to see what real (as opposed to planned)
current focus of work is
– Can click straight into work context for more
– Keeps team aware of dependencies
The “Pending changes” view became a core
element of governance
– Good overview of who changed what and why
– Allows enforcement of compliance with established
standards - Naming, code structure, etc.
– Changes are organised by component – making it
easier to focus on the changes that matter to you
Collaborative configuration management using RTC
20. © 2012 IBM Corporation
20
The Premier Event for Software and Systems Innovation
Key Practices for Success
RTC’s simple build engine + Prolifics Build Conductor
= effortless builds!
– ANT build engine simple and easy to use
– PBC adds automation scripts for WebSphere apps:
WESB, WMB, WPS, Portal
– Automated build, override, deploy
Build record publishes a wealth of information
– What was built – BARs
– What tasks/requirements/fixes included
– What change sets included
– Full log files as well as activity view
Hassle-free build and deploy using RTC
21. © 2012 IBM Corporation
21
The Premier Event for Software and Systems Innovation
Key Practices for Success
Different builds for different purposes
– Continuous integration build that only catches compile
errors can look for changes every few minutes
– Continuous integration build that deploys to DEV can be
run every 2 hours
– On-demand build to target QA can be triggered when
needed
Accelerated fix delivery
– From build record snapshot, can create a new fix
workspace within seconds
– Suspend and unload existing changes, then code the fix
and deliver to fix
– As soon as delivered, on-demand build can deploy
changes automatically to environment of choice
– Fantastically quick turnaround of fixes!
Hassle-free build and deploy using RTC
22. © 2012 IBM Corporation
22
The Premier Event for Software and Systems Innovation
Key Practices for Success
Project dashboard using RTC - Overview
23. © 2012 IBM Corporation
23
The Premier Event for Software and Systems Innovation
Key Practices for Success
Project dashboard using RTC – Release Status
24. © 2012 IBM Corporation
24
The Premier Event for Software and Systems Innovation
Key Practices for Success
Project dashboard using RTC – Impediments
25. © 2012 IBM Corporation
25
The Premier Event for Software and Systems Innovation
Key Practices for Success
Project dashboard using RTC – Change Controls
26. © 2012 IBM Corporation
26
The Premier Event for Software and Systems Innovation
How Did We Benefit?
Improving team efficiency
Using RTC client plug-in for Eclipse-based tooling supports online and offline work
– Especially helpful when having many travelling developers
Fine grained control over which changes are replicated/downloaded
Using one component per service was a good structure
– Good support of having development teams work concurrently on different service
implementations
Minimal delays to get changes to testers
Separate build streams for dedicated, continuous builds
– More build engines would have been beneficial
Shared build infrastructure meant developers didn’t maintain their own
27. © 2012 IBM Corporation
27
The Premier Event for Software and Systems Innovation
How Did We Benefit?
Improving deliverable quality
Using a UML-based service model
– Visual representation used to communicate interface to the development team
Component-based source control made developers think more about how their
code was structured
Automated build and deploy caught issues earlier
Handed over a fully automated and structured build and deploy infrastructure along
with the source code - to the benefit of the maintenance team
28. © 2012 IBM Corporation
28
The Premier Event for Software and Systems Innovation
Final Thoughts
Session wrap-up
A large project, with a global team of developers and testers, required global
collaboration and cooperation
Tying individual development tools into one team environment, RTC, facilitated
sharing of artefacts and joint development of solutions
– Need good structure of streams and components, based on target runtimes and team
organization
Project management features of RTC allow direct integration of planning activities
with the developed artifacts
Continuous automated builds important enough to have a full time release engineer
Using Eclipse as the foundation for all tooling makes it easier to integrate different
environments and target runtimes
You still need good developers and strong governance!
29. © 2012 IBM Corporation
29
The Premier Event for Software and Systems Innovation
www.ibm.com/software/rational
30. © 2012 IBM Corporation
30
The Premier Event for Software and Systems Innovation
Daily iPod Touch giveaway
Complete your session surveys online each day at a conference kiosk or on your
Innovate 2012 Portal!
Each day that you complete all of that day’s session surveys, your name will be entered
to win the daily IPOD touch!
On Wednesday be sure to complete your full conference evaluation to receive your
free conference t-shirt!
31. © 2012 IBM Corporation
31
The Premier Event for Software and Systems Innovation
Acknowledgements and disclaimers
© Copyright IBM Corporation 2012. All rights reserved.
– U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
IBM, the IBM logo, ibm.com, Rational, the Rational logo, Telelogic, the Telelogic logo, Green Hat, the Green Hat logo, and other IBM products and
services are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If
these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols
indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered
or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at
www.ibm.com/legal/copytrade.shtml
If you have mentioned trademarks that are not from IBM, please update and add the following lines:
[Insert any special third-party trademark names/attributions here]
Other company, product, or service names may be trademarks or service marks of others.
Availability: References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries
in which IBM operates.
The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for
informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant.
While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without
warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this
presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or
representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of
IBM software.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have
achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to,
nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.
32. © 2012 IBM Corporation
32
The Premier Event for Software and Systems Innovation
© Copyright IBM Corporation 2012. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind,
express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have
the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM
software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities
referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature
availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines
Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
www.ibm.com/software/rational
Editor's Notes Used to implement architecture described in slide 4.
Jazz .. Open source… open platform… people can integrate with.
Show how requirements are identified from UI mockups, transalated to scenarios, scenarios are specified by each of integration and SAP stacks, designs are created for each of integration and SAP stacks, reviews ensure cross-stack integrity.
Show how requirements are identified from UI mockups, transalated to scenarios, scenarios are specified by each of integration and SAP stacks, designs are created for each of integration and SAP stacks, reviews ensure cross-stack integrity.
Show how requirements are identified from UI mockups, transalated to scenarios, scenarios are specified by each of integration and SAP stacks, designs are created for each of integration and SAP stacks, reviews ensure cross-stack integrity.
Show how requirements are identified from UI mockups, transalated to scenarios, scenarios are specified by each of integration and SAP stacks, designs are created for each of integration and SAP stacks, reviews ensure cross-stack integrity.
Show how requirements are identified from UI mockups, transalated to scenarios, scenarios are specified by each of integration and SAP stacks, designs are created for each of integration and SAP stacks, reviews ensure cross-stack integrity.
Show how design work identifies specific services for implementation, these are developed by distributed team, and integrations of the code are delivered to test team.
Mention RSA Design Manager as an alternative to collaborative sessions via LotusLive.
Describe how high-level design is used to come up with set of components across code and other artifacts.
Describe how combination of repo workspaces and streams allow team to work separately and share changes.
Describe how streams are created for each environment to allow changes to be promoted.
Describe how snapshots are used to track configurations of both design and code.
Describe how high-level design is used to come up with set of components across code and other artifacts.
Describe how combination of repo workspaces and streams allow team to work separately and share changes.
Describe how streams are created for each environment to allow changes to be promoted.
Describe how snapshots are used to track configurations of both design and code.
Describe continous integration build and all of its advantages.
Describe he features that build conductor provides off the shelf.
Describe other builds – and build conductors flexible reuse model.
Describe continous integration build and all of its advantages.
Describe he features that build conductor provides off the shelf.
Describe other builds – and build conductors flexible reuse model.
Nature of build problems in WMB different – dependencies, etc. Also many deploy time problems caught early – and there were many caused by the way the code had been configured to build.
Overriding properties in BAR files. Hugely important because we could be flexible about what environment we deployed into.
Describe continous integration build and all of its advantages.
Describe he features that build conductor provides off the shelf.
Describe other builds – and build conductors flexible reuse model.
Describe continous integration build and all of its advantages.
Describe he features that build conductor provides off the shelf.
Describe other builds – and build conductors flexible reuse model.
Describe continous integration build and all of its advantages.
Describe he features that build conductor provides off the shelf.
Describe other builds – and build conductors flexible reuse model.
Describe continous integration build and all of its advantages.
Describe he features that build conductor provides off the shelf.
Describe other builds – and build conductors flexible reuse model.
Author Note: Optional Rational slide. Graphic is available in English only.
Author Note: Mandatory giveaway slide to be included in your presentation prior to the mandatory “Thank you” closing slide.
Author Note: Mandatory Rational closing slide (includes appropriate legal disclaimer). Graphic is available in English only.