DITA production (multi-department)

IBM Analytics, Commerce, and Systems

25 March 2018

Skills

  • PHP
  • CakePHP
  • MySQL
  • jQuery
  • Ant
  • SOAP
  • Agile
  • Leadership

Summary

From 2011 to 2017, I was on small team that developed and maintained the documentation production environment for products in the Analytics, Commerce, and Systems groups.

The Vanguard build page

From 2015 to 2017, I led the team of 3 developers and 5 other contributors, releasing refreshes every few weeks to keep up with the changes in corporate documentation management strategies.

A colleage started and initially led the group. Previously, he contributed to the documentation build and test system I had set up for our particular product. When he left the product team he was able to rally support and work on this common production system for the entire lab.

He invited me to help develop the new system, which I had done part-time until mid-2015 when I then led the team. Before becoming lead, my major contribution to the system was the translation component, from packaging and sending to receiving and testing to deployment.

The Vanguard build page

The system is a web app built on the CakePHP 1.3 MVC framework, which users interact with to kick off build and packaging jobs that are queued up in the database and run by Jenkins. Each job is defined by the web app as a custom Ant script, which drives the back end processes for our corporate documentation build processes. The web app also automates the creation and control of documentation review servers, receives communication from the central translation application for package shipment and receipt, and semi-automates the processing of returned translation packages for easier in-country testing.

My most recent major development contributions:

  • Mentoring an intern as she contributed many items to the project, such as a front-end page to display the UI that takes advantage of the APIs below to better present available package content choices to users. The page enables them to define many packages at once rather than one at a time.

  • A SOAP API to request and receive data from the central translation planning system, to more effectively drive the automated workflow used for local planning, processing of packages, and testing.

  • A basic REST API to enable our new additional translation servers to communicate with our main translation server, and the automated workflow that ensures the correct server handles the request.

  • An installable package of the system for distribution to teams in other organizations. This work also contributed to my streamlining of the update process on our own five servers, easing our more frequent deployments.