SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
STRUCTURED
CONTENT
MANAGEMENT,
UPDATED
DITA Release Management
Frank Shipley
Presentation overview
• The problem analyzed
• The principle use cases
• Software release management applied to DITA
• Demo
• Conclusion
2
The problem analyzed
An analysis of what people in the
DITA community are saying about
release management.
3
The problem analyzed
Quotes taken from whitepapers, articles, presentations and discussions Main theme
“Multiple releases at one time”, “Multiple parallel releases”
“Ability for teams to work in parallel on a range of versions”
“Update previous versions of documents more often which results in having to
manage multiple versions of the documentation in parallel”
“Versioning for future versions along with current versions”
“Edit files for an upcoming release while retaining the capability to publish or
translate earlier release of the same files”
Multiple versions
in parallel
“Multiple variations”
“Maintain different documentation for different versions of the product or
variants of the product documentation for different customers”
“New customized products”
“Teams frequently share content where different users may need to make
variations on content for a specific deliverable”
Multiple variants
“Bringing together multiple components that are all developed on their own
schedules”
“Multiple versions of products overlapping through the manufacturing or
development process”
“Shorter schedules”, “Rapid product release cycles”
Multiple release cycles
4
Sources:
CIDM release management whitepapers, webinar, articles and presentations (http://www.infomanagementcenter.com/index.php?page=3592)
DITA users group (http://groups.yahoo.com/neo/groups/dita-users/conversations/topics/21270)
dita.xml.org (http://dita.xml.org/blog/is-uncertainty-making-release-management-difficult)
The principal use cases
• Multiple versions in parallel
• Multiple variants
• Multiple release cycles
5
Multiple
versions
in parallel
• Branching allows work in parallel on multiple versions
• Branching is the best solution
• Release branches may be kept for future releases
v1.0 v2.0
v1.1
Release branch
Time
Multiple
variants
• Branching allows work in parallel on multiple variants
• Branching may not be the best solution
• If the changes cannot be merged, the product branch will have to be kept
• What other solutions are there?
v1.0 v2.0
Product 1
Product 2
Product 1Shared
content
Time
Product 2
Product 1
Product 2
Product branch
Multiple variants
• Alternate solutions to branching
– Conditional processing
– Duplicating the topics
– Use conref or conkeyref
Strategy pattern
“Identify the aspects of your documentation that
vary and separate them from what stays the same”
8
Multiple
release cycles
• Branching allows work in parallel on multiple releases
• Branching is one possible solution
• What other solutions are there?
Product 1
Product 2
Product 1
v1.0
v2.0
Time
Product 2
Shared
content
Product 1
Product 2
v2.0
Multiple release cycles
• Alternate solutions to branching
– Link to specific versions of topics
• How best to do that?
10
Use cases: Summary of requirements
11
Use case Summary of requirements Need to branch
Multiple versions
in parallel
Work in parallel on multiple versions
(releases) in order to work on future
releases and still maintain existing
ones.
Mandatory
Branching is the best solution
Multiple variants Work in parallel on multiple product
variants so that the work in progress
on one product variant does not
interfere with the work in progress
on another product variant.
Optional
Branching may not be the best solution
Multiple release
cycles
Perform releases for some products
while work is in progress on other
products.
Optional
Branching is one possible solution
How many branches: example scenario
• 2 products
– 1st product released in Q1
– 2nd product released in Q2
• 3 versions
– current development version (n+1),
– latest production version (n),
– previous production version (n-1)
How many branches?
• Best: 3
• Worst: 12
– If products have specific variants that can’t be merged
– If products share content that doesn’t apply to both releases
12
Multiple
projects
• Shared content is put into a separate shared project
• Main project has a dependency on the shared project
• No branching and no merging
Product 1
Product 2
Product 1
v1.0
v2.0
Time
Shared
content
Product 2
v2.0 v3.0
v2.0
Dependency Dependency
Is branch and merge the answer?
Yes - for managing multiple versions
Probably not - for managing multiple product variants
and release cycles!
14
Multi-branch or multi-project
• When to branch:
– When managing multiple versions
– When working in parallel
• When to split into multiple projects
(or project modules)
– When content is shared between products that have
different release cycles
– When there are dependencies on external artifacts
– When content is developed by different teams
15
Software release management
applied to DITA
16
Software release management
Wikipedia
“Software configuration management is the task of
tracking and controlling changes in the software…”
“Software release management is the process of
managing software releases from development
stage to software release…”
17
Software release management
3 pieces to the puzzle:
• Version control system (VCS)
– To store and manage the source files
• Artifact repository
– To store and manage published artifacts
• Continuous integration server
– To build the software (artifacts)
– To run automated regression tests
18
Version control system (VCS)
“…a tool for managing a collection of program code that provides you
with three important capabilities: reversibility, concurrency, and
annotation.”
Eric Raymond. Understanding Version-Control Systems
• Reversibility
– Can’t loose anything
– Can go back to a previous point in time (snapshot or tag)
• Concurrency
– Allows parallel development through branching and working copies
• Annotation
– Know what changes have been made by who and when (traceability)
Your VCS or CMS provides these capabilities for your DITA source files.
19
Example branching strategy
• Development branch: Trunk
– Latest development (unstable) version of the code
– Infinite lifetime
• Release branches
– To manage multiple versions in parallel
– Can branch from trunk or from any previous release to create a new release branch
– The release branch is kept as long as the corresponding version is being maintained
20
1.0 1.1
2.0
Release 1
Release 2
Trunk
Example branching strategy
• Feature branches
– To work on new features (new products or product variants) in parallel
– Isolates your work from other features and from the trunk branch
– Should be short term branches that are merged with the trunk branch
as soon as the feature is completed
– Could also be related to a hot fix (hot fix branch)
21
1.0 1.1
2.0
Release 1
Release 2
Trunk
Feature
Artifacts and repositories
• Artifacts:
– A set of resources produced by a software build process.
– In the Java world this is usually the compiled Java class files and
associated resources packaged in a JAR file.
– In the DITA world this could be a zip of your source files and/or the
published output.
• Artifact repository:
– A central place for storing published artifacts so that they can be
shared over the network via SSH, HTTP or FTP.
– Popular artifact repository managers:
• Apache Archiva
• JFrog Artifactory
• Sonatype Nexus
• DITA artifacts could be stored in an artifact repository.
Dependency management
• Dependencies and transient dependencies
– Artifacts (software programs or libraries) often require other artifacts
in order to function correctly.
– Those artifacts in turn may require other artifacts themselves.
– We call these artifacts dependencies and transient dependencies.
• Dependency management
– The mechanism whereby all of the dependencies and transient
dependencies for a software program are resolved.
– Popular dependency management tools:
• Apache Ivy
• Apache Maven
• Gradle
• DITA dependencies could be managed in the same way.
Sharing content between teams
and across boundaries
24
Artifact
Repository
Artifact
Repository
Artifact
Repository
Artifact
Repository
Build / Continuous
Integration
Build / Continuous
Integration
Release and snapshot artifacts
• Release artifacts
– Final documents
– Only one release for each version
– Can only have dependencies on other release artifacts
• Snapshot artifacts
– Work in progress documents
– Can be created at any time before a version has been released
– Allows you to share your work in progress with others
– Can have dependencies on both release and snapshot artifacts
1.0
Snapshot 130901
1.0
Snapshot 130915
1.0 Release 2.0
Snapshot 131015
Continuous Integration
• Automate the build process so that all
software changes are integrated and tested
on a continuous basis
• Primary goal is to detect integration problems
and perform automated regression testing
• Popular continuous integration tools
– Atlassian Bamboo
– Jenkins
– Travis
Demo
• Componize: Source repository, build pipelines (VCS)
• Maven: Artifact repository, dependency management
• Jenkins: Continuous Integration
• Scenario
– User and training content
– The training content
• is released one month later than the user content
• reuses content from the user content
– We need to work in parallel on the user content for the
next v2.0 release while the training content is being
finished for the current v1.0 release
Conclusion
• Release management is not just about branch and merge
• Use branching:
– When managing multiple versions
– When working in parallel
• Split source files into multiple projects (or project modules)
– When content is shared between products that have different release
cycles
– When there are dependencies on external artifacts
– When content is developed by different teams
• Store published artifacts in an artifact repository
– So they can be easily shared with others
– So they can be easily integrated into a continuous build environment
• Use continuous integration
– To detect integration problems
– To perform regression testing
28
STRUCTURED
CONTENT
MANAGEMENT,
UPDATED
Thank you – Questions
frank.shipley@componize.com
www.componize.com

Weitere ähnliche Inhalte

Was ist angesagt?

DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링JeongHun Byeon
 
How to Build a Proof of Concept
How to Build a Proof of Concept How to Build a Proof of Concept
How to Build a Proof of Concept Michael Hamilton
 
Orvibo all one_user_manual
Orvibo all one_user_manualOrvibo all one_user_manual
Orvibo all one_user_manualDomotica daVinci
 
The Most Trusted In-Memory database in the world- Altibase
The Most Trusted In-Memory database in the world- AltibaseThe Most Trusted In-Memory database in the world- Altibase
The Most Trusted In-Memory database in the world- AltibaseAltibase
 
Best Practices for Front-End Django Developers
Best Practices for Front-End Django DevelopersBest Practices for Front-End Django Developers
Best Practices for Front-End Django DevelopersChristine Cheung
 
Application Portfolio Management Webinar
Application Portfolio Management WebinarApplication Portfolio Management Webinar
Application Portfolio Management WebinarLeanIX GmbH
 
Social Media Intelligence using Elasticsearch & Kibana
Social Media Intelligence using Elasticsearch & KibanaSocial Media Intelligence using Elasticsearch & Kibana
Social Media Intelligence using Elasticsearch & KibanaTiziano Fagni
 
OReilly SACON London: Potholes in the road from monolithic hell: Microservice...
OReilly SACON London: Potholes in the road from monolithic hell: Microservice...OReilly SACON London: Potholes in the road from monolithic hell: Microservice...
OReilly SACON London: Potholes in the road from monolithic hell: Microservice...Chris Richardson
 

Was ist angesagt? (13)

DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링
 
How to Build a Proof of Concept
How to Build a Proof of Concept How to Build a Proof of Concept
How to Build a Proof of Concept
 
Orvibo all one_user_manual
Orvibo all one_user_manualOrvibo all one_user_manual
Orvibo all one_user_manual
 
Jira training
Jira trainingJira training
Jira training
 
The Most Trusted In-Memory database in the world- Altibase
The Most Trusted In-Memory database in the world- AltibaseThe Most Trusted In-Memory database in the world- Altibase
The Most Trusted In-Memory database in the world- Altibase
 
Rpa approach
Rpa approachRpa approach
Rpa approach
 
Best Practices for Front-End Django Developers
Best Practices for Front-End Django DevelopersBest Practices for Front-End Django Developers
Best Practices for Front-End Django Developers
 
Application Portfolio Management Webinar
Application Portfolio Management WebinarApplication Portfolio Management Webinar
Application Portfolio Management Webinar
 
Autorisation rescrit fiscal
Autorisation rescrit fiscalAutorisation rescrit fiscal
Autorisation rescrit fiscal
 
Short bio examples
Short bio examplesShort bio examples
Short bio examples
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 
Social Media Intelligence using Elasticsearch & Kibana
Social Media Intelligence using Elasticsearch & KibanaSocial Media Intelligence using Elasticsearch & Kibana
Social Media Intelligence using Elasticsearch & Kibana
 
OReilly SACON London: Potholes in the road from monolithic hell: Microservice...
OReilly SACON London: Potholes in the road from monolithic hell: Microservice...OReilly SACON London: Potholes in the road from monolithic hell: Microservice...
OReilly SACON London: Potholes in the road from monolithic hell: Microservice...
 

Ähnlich wie STRUCTURED CONTENT MANAGEMENT FOR MULTIPLE RELEASES

Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best PracticesMaidul Islam
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflowsstc-siliconvalley
 
Git presentation
Git presentationGit presentation
Git presentationjordimash
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With SubversionSamnang Chhun
 
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...GlobalLogic Ukraine
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps JumpstartOri Donner
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentationArnaud Héritier
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with condaTravis Oliphant
 
Source version control using subversion
Source version control using subversionSource version control using subversion
Source version control using subversionMangesh Bhujbal
 
Reproducibility with Revolution R Open
Reproducibility with Revolution R OpenReproducibility with Revolution R Open
Reproducibility with Revolution R OpenRevolution Analytics
 
CA Harvest "Private Solutions - State of New Hampshire
CA Harvest "Private Solutions - State of New HampshireCA Harvest "Private Solutions - State of New Hampshire
CA Harvest "Private Solutions - State of New HampshireBill Mannion (LION)
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsAlfresco Software
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformaticsStephen Turner
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 

Ähnlich wie STRUCTURED CONTENT MANAGEMENT FOR MULTIPLE RELEASES (20)

Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflows
 
Git presentation
Git presentationGit presentation
Git presentation
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
 
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
SVN Information
SVN Information  SVN Information
SVN Information
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
 
Collaborative software development with versioning
Collaborative software development with versioningCollaborative software development with versioning
Collaborative software development with versioning
 
Random House
Random HouseRandom House
Random House
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with conda
 
Source version control using subversion
Source version control using subversionSource version control using subversion
Source version control using subversion
 
Reproducibility with Revolution R Open
Reproducibility with Revolution R OpenReproducibility with Revolution R Open
Reproducibility with Revolution R Open
 
Subversion
SubversionSubversion
Subversion
 
SVN
SVNSVN
SVN
 
CA Harvest "Private Solutions - State of New Hampshire
CA Harvest "Private Solutions - State of New HampshireCA Harvest "Private Solutions - State of New Hampshire
CA Harvest "Private Solutions - State of New Hampshire
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 

Kürzlich hochgeladen

SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 

Kürzlich hochgeladen (20)

SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 

STRUCTURED CONTENT MANAGEMENT FOR MULTIPLE RELEASES

  • 2. Presentation overview • The problem analyzed • The principle use cases • Software release management applied to DITA • Demo • Conclusion 2
  • 3. The problem analyzed An analysis of what people in the DITA community are saying about release management. 3
  • 4. The problem analyzed Quotes taken from whitepapers, articles, presentations and discussions Main theme “Multiple releases at one time”, “Multiple parallel releases” “Ability for teams to work in parallel on a range of versions” “Update previous versions of documents more often which results in having to manage multiple versions of the documentation in parallel” “Versioning for future versions along with current versions” “Edit files for an upcoming release while retaining the capability to publish or translate earlier release of the same files” Multiple versions in parallel “Multiple variations” “Maintain different documentation for different versions of the product or variants of the product documentation for different customers” “New customized products” “Teams frequently share content where different users may need to make variations on content for a specific deliverable” Multiple variants “Bringing together multiple components that are all developed on their own schedules” “Multiple versions of products overlapping through the manufacturing or development process” “Shorter schedules”, “Rapid product release cycles” Multiple release cycles 4 Sources: CIDM release management whitepapers, webinar, articles and presentations (http://www.infomanagementcenter.com/index.php?page=3592) DITA users group (http://groups.yahoo.com/neo/groups/dita-users/conversations/topics/21270) dita.xml.org (http://dita.xml.org/blog/is-uncertainty-making-release-management-difficult)
  • 5. The principal use cases • Multiple versions in parallel • Multiple variants • Multiple release cycles 5
  • 6. Multiple versions in parallel • Branching allows work in parallel on multiple versions • Branching is the best solution • Release branches may be kept for future releases v1.0 v2.0 v1.1 Release branch Time
  • 7. Multiple variants • Branching allows work in parallel on multiple variants • Branching may not be the best solution • If the changes cannot be merged, the product branch will have to be kept • What other solutions are there? v1.0 v2.0 Product 1 Product 2 Product 1Shared content Time Product 2 Product 1 Product 2 Product branch
  • 8. Multiple variants • Alternate solutions to branching – Conditional processing – Duplicating the topics – Use conref or conkeyref Strategy pattern “Identify the aspects of your documentation that vary and separate them from what stays the same” 8
  • 9. Multiple release cycles • Branching allows work in parallel on multiple releases • Branching is one possible solution • What other solutions are there? Product 1 Product 2 Product 1 v1.0 v2.0 Time Product 2 Shared content Product 1 Product 2 v2.0
  • 10. Multiple release cycles • Alternate solutions to branching – Link to specific versions of topics • How best to do that? 10
  • 11. Use cases: Summary of requirements 11 Use case Summary of requirements Need to branch Multiple versions in parallel Work in parallel on multiple versions (releases) in order to work on future releases and still maintain existing ones. Mandatory Branching is the best solution Multiple variants Work in parallel on multiple product variants so that the work in progress on one product variant does not interfere with the work in progress on another product variant. Optional Branching may not be the best solution Multiple release cycles Perform releases for some products while work is in progress on other products. Optional Branching is one possible solution
  • 12. How many branches: example scenario • 2 products – 1st product released in Q1 – 2nd product released in Q2 • 3 versions – current development version (n+1), – latest production version (n), – previous production version (n-1) How many branches? • Best: 3 • Worst: 12 – If products have specific variants that can’t be merged – If products share content that doesn’t apply to both releases 12
  • 13. Multiple projects • Shared content is put into a separate shared project • Main project has a dependency on the shared project • No branching and no merging Product 1 Product 2 Product 1 v1.0 v2.0 Time Shared content Product 2 v2.0 v3.0 v2.0 Dependency Dependency
  • 14. Is branch and merge the answer? Yes - for managing multiple versions Probably not - for managing multiple product variants and release cycles! 14
  • 15. Multi-branch or multi-project • When to branch: – When managing multiple versions – When working in parallel • When to split into multiple projects (or project modules) – When content is shared between products that have different release cycles – When there are dependencies on external artifacts – When content is developed by different teams 15
  • 17. Software release management Wikipedia “Software configuration management is the task of tracking and controlling changes in the software…” “Software release management is the process of managing software releases from development stage to software release…” 17
  • 18. Software release management 3 pieces to the puzzle: • Version control system (VCS) – To store and manage the source files • Artifact repository – To store and manage published artifacts • Continuous integration server – To build the software (artifacts) – To run automated regression tests 18
  • 19. Version control system (VCS) “…a tool for managing a collection of program code that provides you with three important capabilities: reversibility, concurrency, and annotation.” Eric Raymond. Understanding Version-Control Systems • Reversibility – Can’t loose anything – Can go back to a previous point in time (snapshot or tag) • Concurrency – Allows parallel development through branching and working copies • Annotation – Know what changes have been made by who and when (traceability) Your VCS or CMS provides these capabilities for your DITA source files. 19
  • 20. Example branching strategy • Development branch: Trunk – Latest development (unstable) version of the code – Infinite lifetime • Release branches – To manage multiple versions in parallel – Can branch from trunk or from any previous release to create a new release branch – The release branch is kept as long as the corresponding version is being maintained 20 1.0 1.1 2.0 Release 1 Release 2 Trunk
  • 21. Example branching strategy • Feature branches – To work on new features (new products or product variants) in parallel – Isolates your work from other features and from the trunk branch – Should be short term branches that are merged with the trunk branch as soon as the feature is completed – Could also be related to a hot fix (hot fix branch) 21 1.0 1.1 2.0 Release 1 Release 2 Trunk Feature
  • 22. Artifacts and repositories • Artifacts: – A set of resources produced by a software build process. – In the Java world this is usually the compiled Java class files and associated resources packaged in a JAR file. – In the DITA world this could be a zip of your source files and/or the published output. • Artifact repository: – A central place for storing published artifacts so that they can be shared over the network via SSH, HTTP or FTP. – Popular artifact repository managers: • Apache Archiva • JFrog Artifactory • Sonatype Nexus • DITA artifacts could be stored in an artifact repository.
  • 23. Dependency management • Dependencies and transient dependencies – Artifacts (software programs or libraries) often require other artifacts in order to function correctly. – Those artifacts in turn may require other artifacts themselves. – We call these artifacts dependencies and transient dependencies. • Dependency management – The mechanism whereby all of the dependencies and transient dependencies for a software program are resolved. – Popular dependency management tools: • Apache Ivy • Apache Maven • Gradle • DITA dependencies could be managed in the same way.
  • 24. Sharing content between teams and across boundaries 24 Artifact Repository Artifact Repository Artifact Repository Artifact Repository Build / Continuous Integration Build / Continuous Integration
  • 25. Release and snapshot artifacts • Release artifacts – Final documents – Only one release for each version – Can only have dependencies on other release artifacts • Snapshot artifacts – Work in progress documents – Can be created at any time before a version has been released – Allows you to share your work in progress with others – Can have dependencies on both release and snapshot artifacts 1.0 Snapshot 130901 1.0 Snapshot 130915 1.0 Release 2.0 Snapshot 131015
  • 26. Continuous Integration • Automate the build process so that all software changes are integrated and tested on a continuous basis • Primary goal is to detect integration problems and perform automated regression testing • Popular continuous integration tools – Atlassian Bamboo – Jenkins – Travis
  • 27. Demo • Componize: Source repository, build pipelines (VCS) • Maven: Artifact repository, dependency management • Jenkins: Continuous Integration • Scenario – User and training content – The training content • is released one month later than the user content • reuses content from the user content – We need to work in parallel on the user content for the next v2.0 release while the training content is being finished for the current v1.0 release
  • 28. Conclusion • Release management is not just about branch and merge • Use branching: – When managing multiple versions – When working in parallel • Split source files into multiple projects (or project modules) – When content is shared between products that have different release cycles – When there are dependencies on external artifacts – When content is developed by different teams • Store published artifacts in an artifact repository – So they can be easily shared with others – So they can be easily integrated into a continuous build environment • Use continuous integration – To detect integration problems – To perform regression testing 28
  • 29. STRUCTURED CONTENT MANAGEMENT, UPDATED Thank you – Questions frank.shipley@componize.com www.componize.com