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.

Life Outside of TFS

837 views

Published on

Published in: Technology
  • Login to see the comments

Life Outside of TFS

  1. 1. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.1 Life Outside of TFS Andrew Ochsner
  2. 2. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.2 Life Outside of TFS Andrew Ochsner
  3. 3. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.3 About CSG
  4. 4. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.4 About CSG  Business Support System (BSS) and Operational Support System (OSS) software • Product, Order, Billing, and Customer management • Inventory, Provisioning, and Job management • Primarily North America cable, satellite, and telecom companies • Expanding internationally • Hosted solution
  5. 5. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.5 Code  10s of Millions of Lines of Code • Mainframe – Assembler, COBOL, JCL • Linux/Solaris – C/C++ • Linux – Java • Windows – .NET/C#, C/C++, Java  Databases • SQL Server • Oracle • DB2 on Mainframe
  6. 6. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.6 Code  10s of Millions of Lines of Code • Mainframe – Assembler, COBOL, JCL • Linux/Solaris – C/C++ • Linux – Java • Windows – .NET/C#, C/C++, Java  Databases • SQL Server • Oracle • DB2 on Mainframe
  7. 7. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.7 Agile Transformation
  8. 8. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.8 Waterfall
  9. 9. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.9 Scrum
  10. 10. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.10 Scaled Agile Framework (SAFe) http://scaledagileframework.com/
  11. 11. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.11 CSG’s ALM Approach  Best in breed approach • Mostly an evolution – no big bang • Integrated what we had • Upgrade to better components as we find them  Solidifying around Atlassian Suite • Not Open Source but customers are allowed to view and modify source • Integrates with many third party tools • Web based • Hosted or On Premise • Rich plugin ecosystem/marketplace • Open web-based APIs and SDKs
  12. 12. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.12 Core Principles
  13. 13. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.13 Core Principles  Have No Fear  Trunk Based Development  Continuous Integration • Commit early • Commit often  Collective Code Ownership  Demand ownership of failing builds  Standardized project layout  Dedicated System Team (ESM) • Staffed with good developers
  14. 14. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.14 Development Lifecycle
  15. 15. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.15 Development Lifecycle
  16. 16. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.16 Tools  Issue Tracking – Atlassian JIRA  Source Code Control – VisualSVN (Subversion)  Package Repository –Artifactory/NuGet  Testing – NUnit & SpecFlow  Database Migrations – CSG Tools  Continuous Builds – Jenkins/NAnt/MSBuild  Code Reviews – Atlassian Crucible  Code Search – Atlassian Fisheye  Installers - WiX  Automated Deployments – BMC BladeLogic
  17. 17. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.17 Development Lifecycle
  18. 18. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.18 Issue Tracker
  19. 19. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.19 Jira – Issue Tracker  Web based issue tracker created by Atlassian  On-Premise or Hosted  Very flexible custom fields and workflows • Lots of third party plugins • Mobile app • Plugin SDK to build your own  Scrum and Kanban story boards  EpicsFeaturesStoriesTasks  Development and Production Defects  Production Defects synchronize with Remedy  IDE Integration  Reports and Charts are lacking a bit
  20. 20. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.20 Demo
  21. 21. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.21 Jira – Issue Tracker
  22. 22. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.22 Jira – Issue Tracker
  23. 23. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.23 Jira – Issue Tracker
  24. 24. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.24 Issue Tracker
  25. 25. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.25 Developer Tools `
  26. 26. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.26 Developer Tools  Visual Studio  Resharper  VisualSVN – Visual Studio Subversion integration  NUnit & SpecFlow  CSG Developer Tools • CSGCopyDeps – Copy dependencies – LibraryManifest.xml • CSGVerifySolution – Enforce Standard Project Layout • SqlServer Management Studio Addins for Database Migrations
  27. 27. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.27 Developer Tools  Visual Studio  Resharper  VisualSVN – Visual Studio Subversion integration  NUnit & SpecFlow  CSG Developer Tools • CSGCopyDeps – Copy dependencies – LibraryManifest.xml • CSGVerifySolution – Enforce Standard Project Layout • SqlServer Management Studio Addins for Database Migrations
  28. 28. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.28 Standard Project Layout Built Assemblies (not checked in) Database Schema & Static Data Dependencies (not checked in) Deploy configs and build script hooks Source code Module specific build option settings Module Solution File Module Installer Solution File Generated WSDL Documentation
  29. 29. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.29 CSGCopyDeps – SCMLibraryManifest.xml
  30. 30. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.30 CSGCopyDeps
  31. 31. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.31 CSGVerifySolution
  32. 32. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.32 Developer Tools `
  33. 33. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.33 Package Repositories
  34. 34. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.34 Artifactory - Package Repositories  Need the ability to grab the build artifacts of any given version  Third party dependencies too!  Don’t check binaries into Subversion  Non .NET teams have same needs  Eventually could replace CSGCopyDeps with NuGet
  35. 35. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.35 Artifactory - Package Repositories  Artifactory Pro by JFrog • Supports NuGet (Pro), Ivy, Maven  Web Based & On-Premise or Hosted  Stores CSG built packages along with version  Acts as a remote proxy between build tool and external galleries • Pin a package to a particular version • Governance around approved Third Party Software and Licenses (Pro w/ BlackDuck integration)
  36. 36. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.36 Package Repositories
  37. 37. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.37 Source Code Control
  38. 38. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.38 Subversion - Source Control  Subversion – Open Source Centralized Version Control  Copy-Modify-Merge rather than Lock-Modify-Unlock  Directories are first class objects, just like files  Branching and Tagging are “cheap” • Copy on Write  Widespread adoption & integration with other tools  No Stash/Shelve features • We utilize a Branch
  39. 39. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.39 Subversion - Source Control  VisualSVN Server – On Premise Subversion installation for Windows • ActiveDirectory integration  VisualSVN – Visual Studio Subversion Integration  TortoiseSVN – Windows Explorer Integration
  40. 40. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.40 Subversion - Source Control  VisualSVN Server – On Premise Subversion installation for Windows • ActiveDirectory integration  VisualSVN – Visual Studio Subversion Integration  TortoiseSVN – Windows Explorer Integration
  41. 41. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.41 Demo
  42. 42. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.42 Source Code Control
  43. 43. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.43 Continuous Integration
  44. 44. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.44 Jenkins – Continuous Integration  Web-based, open source continuous integration server  On-Premise or Hosted by Cloudbees  Fork of Hudson project  Tons of plugins to integrate with just about anything • Write your own as needed  Open APIs and command line tools to automate as needed • JenkinsGenerator  One Master (Controller), Many Agents
  45. 45. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.45 Jenkins – Continuous Integration  Polls Repository for changes  Triggers builds  Generate Reports off of build artifacts • Emails • Test Results
  46. 46. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.46 Jenkins – Continuous Integration  Polls Repository for changes  Triggers builds  Generate Reports off of build artifacts • Emails • Test Results
  47. 47. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.47 Common build - NAnt  Checkout source (done by Jenkins slave)  Get dependencies via CSGCopyDeps (varies by build type)  Run CSGVerifySolution  Build solution - MSBuild  Run Tests • Build system only runs tests that don’t hit external systems • Smoke test builds run all tests  Run Code Analysis (varies by build type)  Build Installers  Publish Artifacts
  48. 48. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.48 Build Types  Every module has at least 3 builds • Daily Build (DSM) • Continuous Stable (CS) • Continuous Integration (CI)  Other build types • Smoke Test (SMOKETEST) • Continuous Stable Database (CSDB) • Database Restore (QRDB/PRDB) • Documentation (DOC) • Sonar (SONAR)
  49. 49. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.49 Build Types  Every module has at least 3 builds • Daily Build (DSM) • Continuous Stable (CS) • Continuous Integration (CI)  Other build types • Smoke Test (SMOKETEST) • Continuous Stable Database (CSDB) • Database Restore (QRDB/PRDB) • Documentation (DOC) • Sonar (SONAR)
  50. 50. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.50 Build Types – Daily Build  “The official build”  Builds latest from SVN  Uses dependencies officially staged from Package Repository  Results are staged into Package Repository  CREATE and MIGRATION scripts also generated  Triggered nightly
  51. 51. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.51 Build Types – Continuous Stable  “Current build”  Builds latest from SVN  Uses dependencies from Package Repository (dependency DSMs)  Runs extra checks such as Code Analysis  Results are not staged into Package Repository  Triggered off of SVN commit or dependency DSM
  52. 52. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.52 Build Types – Continuous Integration  “Tomorrow’s DSM”  Builds latest from SVN  Uses dependencies from latest CI of each module dependency  Results are not staged into Package Repository • Go into a “sandbox” area to be used by other CI builds  Triggered off of SVN commit or dependency CI
  53. 53. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.53 Build Types Build Type Description Daily Build (DSM) Builds the latest of a module's branch/trunk, including database CREATE and MIGRATION SCRIPTs, using other modules officially staged assets as dependencies, results are officially staged. Triggered Nightly. Continuous Stable (CS) Builds the latest of that module's branch/trunk, using other modules' officially staged assets as dependencies, results are not officially staged. Triggered by an SVN change. Continuous Integration (CI) Builds module's trunk and uses the artifacts of the latest successful CI build for each consumed module. Triggered by an SVN change. Causes all down stream modules' CI builds to run. Smoke Tests Owned by module teams. Takes built artifacts from CS build and runs entire test suite.
  54. 54. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.54 Build Types Build Type Description Continuous Stable Database (CSDB) Builds CREATE and MIGRATION script based off the latest of that modules branch/trunk Database Restore Utilities (QRDB/PRDB) Stands up a Production/QA database backup to a database server. Triggered by forcing the build and selecting various parameters. Documentation (DOC) Runs like a DSM except it does not publish built artifacts. Builds documentation using Sandcastle and publishes the documentation as defined in the various projects. Sonar (SONAR) A suite of tests are run under the SONAR framework and results are published for subsequent analysis. Triggered on a nightly schedule but can also be forced.
  55. 55. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.55 Demo
  56. 56. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.56 Database Migrations  Built by CSG years ago • Similar in functionality to Database Projects or RoundhousE  Databases are versioned alongside code  Standard folder layout (DbGhost)  SQL Server Management Studio plugins  Build to Build migrations (CSDB) • Generates CREATE.sql and MIGRATION.sql • Validate consistency (RedGate SQL Compare)  CSGExecuteMigration • Inspects Version table • Applies subsequent migrations
  57. 57. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.57 Database Migrations Change Scripts go here Create Scripts go here
  58. 58. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.58 SQL Server Management Studio
  59. 59. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.59 Database Migrations
  60. 60. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.60 Database Migrations
  61. 61. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.61 Continuous Integration
  62. 62. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.62 Code Reviews
  63. 63. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.63 Crucible & Fisheye - Code Reviews  Web-based built by Atlassian  On Premise or Hosted  Source code browser - Fisheye  Source code search engine – Fisheye  Code review tool – Crucible  Integrates with SVN and a few other source code control systems
  64. 64. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.64 Demo
  65. 65. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.65 Code Reviews
  66. 66. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.66 We made it!
  67. 67. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.67 Questions?
  68. 68. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.68 Extras  BMC BladeLogic – Automated Deployments  Atlassian Confluence – wiki • Designs  WiX - Installers  Configuration Migrations – CSG built (XSLT)  Build History website – CSG built  Sonar – Build Analysis  Git/Stash/SourceTree – Distributed Version Control • SubGit syncs with Subversion
  69. 69. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.69 Thanks!
  70. 70. Copyright © 2013 CSG Systems International, Inc. and/or its affiliates (“CSG International”). All rights reserved.70 Trunk Based Development http://paulhammant.com/2013/04/05/what-is-trunk-based-development/

×