Life Outside of TFS

702 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
702
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • I have never used TFS in my lifeThis presentation is not a comparison between CSG’s solution and TFSnor an endorsement of one being “better” than the other
  • Cross functional teamsSelf managed
  • Changing tires on a car while it’s moving
  • Economies of Scale
  • 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/

    ×