Fidelity Information Services uses Atlassian tools to manage its software lifecycle from end to end, for massive, multi-million LOC financial applications including core banking and channels products. In this session Glen and Chris will share the high-level process flow for development at Fidelity. Attendees will leave with the tools to implement change in their own environments while maintaining control and assuring quality in a regulated environment.
4. Software and Services for Banks and Financial Institutions!
!
200+ customers worldwide!
Profile Core Banking Solution!
Millions of account holders!
TouchPoint Channels Solutions!
700+ software professionals!
5. Our Applications!
• Profile: the FIS real-time, international, multi-language/multi-currency,
ultra-scalable core banking platform!
• 7mm+ LOC!
• TouchPoint: Channels solutions for branch, call center and e-banking!
• Profile core is M-code/MUMPS and Java, GT.M open source database.
Channels applications are Java. Integration to other platforms via FIS
Xpress SOA platform!
6. Large scale, big team, corporate environment
It s people s money – it needs to be correct
Nothing happens by accident!
8. Our Stack!
Development Project Mgmt
Tools Tools
Code
management
MS
Project
Time
tracking
Code
review
Planview
Time
repor+ng
Development
history
EPK
Project
plans
Build
scheduling
Es+ma+ng
tools
Project
status
Build
status
MS
Office
Program
repor+ng
Defect
repor+ng
Financial
repor+ng
Defect
severity
Green/Yellow/Red
Task
progress
JTest,
For+fy
Detailed
task
status
Ar+factory
Traceability
Quality
Center
QTP
Winrunner,
Loadrunner
9. Platform Usage & Volumes!
• 2,500 users!
• Users in North America, Europe,
Asia, Central/South America,
Australia!
• 150+ K JIRA records!
• Growth rate of 80% / year!
• Platform support team:!
• 4 core staff, 4 secondary support!
10. You don t have to toss out (all) your other tools
You don t need a large team to support 100s of
users!
11. FIS Software Development Lifecycle!
• Software quality and accuracy are paramount!
• Gigantic process! CMMI Level 3 based SDLC and project
management process set - FISSP!
• FISSP is methodology independent; defines the what, not the how!
• Tools support the process; they do not define the process!
• Our Atlassian integration project began in April, 2009!
12. Our Tools Philosophy!
• The primary intent three years ago was to evolve our software
development methods toward a more incremental and continuous process!
• Implement new technology tools (Atlassian suite, Subversion, others) to
support this transformation.!
• This model is descriptive, not prescriptive (step 1, step 2, etc.) – teams
adopt specific practices to achieve goals and benefits
• Software development workflow is guided/loosely constrained as
opposed to controlled/highly constrained
13. Guided (loosely constrained)
Our Tools Philosophy! vs.
Controlled (highly constrained)
• Software development workflow is documented and enabled within Jira, but
we have not constrained the tool to force compliance
• Team members are expected to follow the workflow and the rules
• Some rules are absolute and are highly constrained, for example, code
check-in/check-out
• Some fields are required
• OOB = out of the box. For the most part, we are using the ability to
configure Jira, but not the ability to highly customize it
15. Using JIRA for Financials!
• Annual budget process!
• Portfolio Item is a major
budget line item!
• Every Requirement JI must
link upstream to a Portfolio
Item JI!
16. Managing Requirements!
• Requirement JIs represent
software requirements!
• Subtasks define standard work!
• Requirement JIs beget
Enhancement JIs!
• Traceability (large grain)!
• Requirements in Subversion!
• Introducing Balsamiq!
18. Know yourself! Align your culture to your
processes and tools, assess Flexibility vs. Control
To take over the world, you need a plan
OOB=less work to implement and maintain!
19. Managing Source Code!
• Primary tool is Subversion!
• Also looking at Mercurial!
• Enhancements in JIRA!
• Traceable to Requirements!
• Agile development (Greenhopper)!
• Test case driven development!
• Integrated security!
• Mandatory code reviews!
20. Custom Integrations!
• Subversion commits dependent on
JIRA issue links!
• Code branches locked/unlocked
from Confluence!
• Subversion project access tied into
JIRA/Crowd groups!
• JIRA workflow transition counters!
• Auto creation of issues!
• Auto-switching issue types!
21. Builds and Deployments!
• Continuous integration builds!
• Cherry-picking builds!
• Ant or Maven 2 (Artifactory)!
• Local and remote auto-deploys!
• FTP and Auto-Test jobs!
!
22. Testing!
• Defect JIs are linked to
Enhancement JIs (as applicable)!
• Traceability!
• Other testing tools: Quality Center,
QTP, Performance Center,
LoadRunner!
• Use of linking for cross-project
Defect JIs!
23. Additional Quality Assurance!
• Mandatory code reviews!
• Only authorized code changes allowed!
• Junit for automated unit tests via Bamboo!
• Automatic running of test suites on new builds!
• Static code scanning in developer local workspaces!
• More comprehensive code scanning of built code (JTest / Fortify)!
• All historical issue data is available for reporting and analysis!
24. Project Management Support!
• All PMO issue types in JIRA!
• Change Requests, Risks, !
Issues, Action Items!
• Auto issue escalation!
• Delegation of Project Administration tasks!
• User management, Version management!
25. Leverage JIRA for traceability across the lifecycle
Use Bamboo for more than just builds
Add custom integrations and plugins, but judiciously!
26. Atlassian Toolset Benefits!
• Lower license costs!
• Lower support costs!
• Responsive to SDLC changes!
• Ease of integrations, plug-ins!
• All data in one place!
• Full end-to-end traceability!
• Management visibility!
27. Balancing Trade-offs!
• All aboard, or See you later?!
• Our way or the highway!
• Centralized control vs delegated!
• Standard flows/pages vs customized!
• Stability vs flexibility!
28. Tips and Pointers!
• Process:!
• To take over the world, you need a plan!
• Know yourself! Align your culture to your processes and tools!
• OOB=less work to implement and maintain!
• Technology:!
• No need to throw out other tools that are working well for you!
• Leverage JIRA for traceability across the lifecycle!
• Find the right balance between stability and flexibility!