SlideShare a Scribd company logo
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

More Related Content

PDF
How to implement an effective fmea process
PPTX
PFMEA, Risk Reduction and Effectiveness – Advance (AIAG FMEA #4 Edition)
PPTX
Eliciting Non-Functional Requirements
PDF
Reliability Engineering Maturity Matrix
PPT
Kepner tregoe approach to problem solving
PDF
Risk Assessment PowerPoint Presentation Slides
PPTX
18 Jul 2018 - FMEA and Risk Management in Practice
PPT
FMEA Presentation V1.1
How to implement an effective fmea process
PFMEA, Risk Reduction and Effectiveness – Advance (AIAG FMEA #4 Edition)
Eliciting Non-Functional Requirements
Reliability Engineering Maturity Matrix
Kepner tregoe approach to problem solving
Risk Assessment PowerPoint Presentation Slides
18 Jul 2018 - FMEA and Risk Management in Practice
FMEA Presentation V1.1

What's hot (20)

PDF
Risk Management Process
PPT
Strategy deployment
PPTX
Failure mode
PPT
PPTX
APM Best Practices - Reliability Added Value
DOCX
Security of hyperion planning
PDF
Error-Proofing in Office & Service Environments
PPTX
DevOps and Build Automation
PPTX
Oracle EBS Journey to the Cloud - What is New in 2022 (UKOUG Breakthrough 22 ...
PPTX
DevOps Torino Meetup - SRE Concepts
PDF
Nodo regional de cambio climático. Eco-región eje cafetero
PPTX
Kepner-Tregoe Problem-Solving Method
PDF
Creating the Improvement-Minded Organization
PDF
Design fmea
PDF
Business Continuity Planning
PPTX
Trunk-based Development with Feature toggles
PPTX
KPI ppt
PPT
Root cause analysis arg sc
PDF
Fmea presentation
PDF
Strategy Deployment: Accelerating Improvement Through Focus and Alignment
Risk Management Process
Strategy deployment
Failure mode
APM Best Practices - Reliability Added Value
Security of hyperion planning
Error-Proofing in Office & Service Environments
DevOps and Build Automation
Oracle EBS Journey to the Cloud - What is New in 2022 (UKOUG Breakthrough 22 ...
DevOps Torino Meetup - SRE Concepts
Nodo regional de cambio climático. Eco-región eje cafetero
Kepner-Tregoe Problem-Solving Method
Creating the Improvement-Minded Organization
Design fmea
Business Continuity Planning
Trunk-based Development with Feature toggles
KPI ppt
Root cause analysis arg sc
Fmea presentation
Strategy Deployment: Accelerating Improvement Through Focus and Alignment
Ad

Similar to Dita Release Management (20)

PPTX
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
PPT
SVN Tool Information : Best Practices
PPTX
Version Control, Writers, and Workflows
PDF
Git presentation
PDF
Version Control With Subversion
PDF
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
PDF
SQL Server DevOps Jumpstart
PPTX
SVN Information
PDF
Apache Maven - eXo TN presentation
PPTX
Slide set 7 (Source Code Management History Overview) - Copy.pptx
PPTX
Collaborative software development with versioning
PPTX
Random House
PDF
Effectively using Open Source with conda
PPTX
Source version control using subversion
PPTX
Reproducibility with Revolution R Open
PPT
Subversion
PPTX
PPTX
CA Harvest "Private Solutions - State of New Hampshire
PDF
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
PDF
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
SVN Tool Information : Best Practices
Version Control, Writers, and Workflows
Git presentation
Version Control With Subversion
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
SQL Server DevOps Jumpstart
SVN Information
Apache Maven - eXo TN presentation
Slide set 7 (Source Code Management History Overview) - Copy.pptx
Collaborative software development with versioning
Random House
Effectively using Open Source with conda
Source version control using subversion
Reproducibility with Revolution R Open
Subversion
CA Harvest "Private Solutions - State of New Hampshire
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
Ad

Recently uploaded (20)

PDF
Nekopoi APK 2025 free lastest update
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
L1 - Introduction to python Backend.pptx
PDF
AI in Product Development-omnex systems
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Introduction to Artificial Intelligence
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
top salesforce developer skills in 2025.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
Nekopoi APK 2025 free lastest update
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Upgrade and Innovation Strategies for SAP ERP Customers
Understanding Forklifts - TECH EHS Solution
L1 - Introduction to python Backend.pptx
AI in Product Development-omnex systems
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PTS Company Brochure 2025 (1).pdf.......
Introduction to Artificial Intelligence
Design an Analysis of Algorithms I-SECS-1021-03
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
How Creative Agencies Leverage Project Management Software.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Which alternative to Crystal Reports is best for small or large businesses.pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
ISO 45001 Occupational Health and Safety Management System
ManageIQ - Sprint 268 Review - Slide Deck
top salesforce developer skills in 2025.pdf
How to Migrate SBCGlobal Email to Yahoo Easily

Dita Release Management

  • 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