Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tech Agility at TD Ameritrade

105 views

Published on

SpringOne Platform 2019
Session Title: Tech Agility at TD Ameritrade
Speakers: Poornima Rajendhran, Senior Software Engineer, TD Ameritrade; Michael Dennis, Senior Software Engineer, TD Ameritrade; Mounika Kikkuru, Software Engineer, TD Ameritrade
Youtube: https://youtu.be/TzKlxr5R-Ew

Published in: Software
  • Be the first to comment

  • Be the first to like this

Tech Agility at TD Ameritrade

  1. 1. Tech Agility at TD Ameritrade Poornima Rajendhran Michael Dennis Mounika Kikkuru October 7–10, 2019 Austin Convention Center TD Ameritrade and Pivotal are separate unaffiliated companies and are not responsible for each other’s services, opinions or policies. Presentation content provided by and property of TD Ameritrade. TD Ameritrade is a trademark jointly owned by TD Ameritrade IP Company, Inc. and The Toronto-Dominion Bank. © 2019 TD Ameritrade
  2. 2. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ • TD Ameritrade Institutional has been on a modernization and transformation journey. • Vision: transform software delivery process Introduction 2
  3. 3. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth… two years ago… • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  4. 4. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ • Introduction of Extreme Programming. (XP) practices like : • Test driven development (TDD) • Pair programming • CI / CD • Small releases • Collective code ownership • Strategies like domain driven design, consumer driven contracts, reactive programming Pivotal Enablement & Impact 4
  5. 5. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  6. 6. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Discovery & Framing • Stakeholder meetings • User interviews • Problem exploration • Solutions/brainstorming • Goals/anti-goals • Tech stack decisions • Personas
  7. 7. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Project mindset A project that meets • All deadlines • Within budget • Original scope BUT is it the right PRODUCT ? • Realizes a set of activities • Over an agreed period of time • Achieves a specific purpose
  8. 8. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Product mindset • Focus on customer Empowered teams • Sustainable pace for continuous delivery • Enables measurement of business metrics • Adoption and retention • Revenue or cost savings
  9. 9. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  10. 10. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Story writing Challenges: • 20+ point stories • Stories written based on developer skills & availability (horizontally sliced) Strategies:  Creating and representing the product strategy and vision  Focusing on achieving customer delight  Creating a product roadmap with frequent releases  Maximizing revenues and return-on-investment
  11. 11. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ • Understanding of the needs, wants, and limitations of users • Analyzing and foreseeing how users are likely to use a product • Active involvement with users • Incorporating user insights to refine design User-Centered Design(UCD)
  12. 12. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ User stories in XP • Used to capture a description of a software feature from an end-user perspective • Describes the type of user, what they want and why • Helps to create a simplified description of a requirement • Delivers clear user value • Vertically sliced requiring full stack development
  13. 13. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Story writing Challenges of regular user research and feedback: • Difficulty in acquiring users on a regular cadence • Appropriate staffing for the job Business vs technical requirements: spikes for technically complex epics first
  14. 14. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  15. 15. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Sprint Planning Challenges: • Scrum way of committing to fixed points on a sprint • Limited opportunity for innovation and spiking out new technologies Strategies:  Practice Kanban & rolling backlog  One week iterations  Metrics for team performance: Velocity & Volatility
  16. 16. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  17. 17. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Challenges: • Lack of team stability • Individuals divided between multiple teams based on need & availability Balanced Team 1 7 Strategies:  Balanced team including Product, UX, Engineers, Quality Assurance  Minimal changes to team structure  Pairing  Full stack development  Collective code ownership
  18. 18. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Insights: • Collaborative • Cross-disciplinary • Self-sufficient • Co-located (ideally) • Team discussions • OK to ask for help • Regular retrospectives in a safe setting Balanced Team 1 8
  19. 19. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  20. 20. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Challenges: • Reliance on manual testing • Late discovery of bugs • Low confidence to refactor code Testing 2 0 Strategies:  Test Driven Development (TDD)  Shifting left
  21. 21. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RED: Create a unit tests that fails GREEN: Write code that makes that test pass REFACTOR: Clean up the code
  22. 22. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ • Short feedback loops • Built-in regression • Supports iterative development • Facilitates CI/CD • Fewer bugs Benefits of TDD 2 2 • Confidence to refactor • More adaptable code • Increases “bus count” • Increases productivity • Decreases time to market
  23. 23. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What to test: • Must have a full understanding of the acceptance criteria • Anticipate what could happen • Define edge cases Testing 2 3 Test coverage: • Unit • Contract • Integration • Browser automation • Acceptance / E2E
  24. 24. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  25. 25. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Challenges: • Accumulating tech debt • Waiting on code reviews / peer reviews • Legacy code risky to refactor Code Quality 2 5 Strategies:  Maintaining clean code through refactoring  Pay down tech debt early and regularly  Tests as documentation  Pair programming
  26. 26. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ • Ping-pong pairing • Navigator-driver • Rotate pairs every day • “Mobbing” Pair Programming 2 6
  27. 27. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  28. 28. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ • Integrate code into shared repo several times a day • Each commit – automated build & runs test suite Continuous Integration (CI) 2 8 • Trunk development • Fixing broken build is the priority for the team
  29. 29. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Continuous Delivery / Deployment (CD) 2 9 • Frequent small deployments • Risk of deployment is low • Leverage feature flags for large functionalities • Same artifact for all environments • Homogenous environments • Production is another stage in the pipeline
  30. 30. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Deployment tool 3 0 • Immutable release unit comprising binaries and configs from multiple services • Promoted to higher environments using a single command
  31. 31. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Deployments – Before… 3 1 • Request VMs for new services • Setup the VM with required software & configs for the service • Setup Jenkins jobs manually and use scripts to deploy the app into running VM • 6 to 8 weeks release cycle • Release all-nighters
  32. 32. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Deployments – After… 3 2 • Write and commit code
  33. 33. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Impact of PaaS 3 3 • Faster time to market • More responsive • Greater efficiency • Increased productivity • Resource utilization • Automation • Self-service • Cost offset 0 20 40 60 80 Time to market Before After Developer efficiency improvement 25% to 30%
  34. 34. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 3 4
  35. 35. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Dev or Ops or DevOps ? 3 5 • We are a Dev team, not a DevOps team • Responsibilities of our Ops team: • Setting up & configuring Pivotal Platform environments and spaces • Deployment tool • Releases • Dev / Ops / DevOps: Vigilance about who is responsible for what
  36. 36. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Areas for growth • Project to product mindset • Story writing • Sprint planning • Balanced team • Testing • Code quality • Deployments • Sustainability
  37. 37. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ • Enablement with other teams • Sharing of knowledge • Continuous discussions and feedback • Cross-over pairing • Coopertition (Cooperation + Competition) Sustainability 3 7
  38. 38. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What all of this helped us achieve… 3 8 • RESTful microservices architecture • Implement Spring Cloud Gateway as routing app for our backend-for- frontends (BFFs) • Domain driven design + consumer driven contracts + other testing patterns • Demo app for our site providing incredible value to sales & marketing to promote the site
  39. 39. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ • Service discovery & registry for microservices architecture • Client side load balancing and Circuit breaker patterns • Deploy each microservice independently • Acceptance test suite that will eventually replace Enterprise QA cycle Road Ahead 3 9 “”When the road ahead seems too long, look back to see how far you’ve come. For, even if the hill before you is steep, the view gives you hope to finish the journey” - Adira Daniella Kessler
  40. 40. Thank you Please reach out if you have any questions #springone@s1p

×