Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Drawing Analogies Between Publishing and Agile Development

Drawing Analogies Between Publishing and Agile Development

In a recent blog posting titled "Moving from Software Production to Software Publishing," Gojko Adzic describes how he and his staff applied agile software development techniques to improve the production process at Mikro (Serbian edition of PC World magazine). He then describes some ways in which the magazine publishing model can be applied to software development.

Gojko begins by drawing analogies between the players and pieces of magazine publishing and software development:

  • Writers = Programmers
  • Readers = Users
  • Advertisers = Large Customers
  • Articles = Source Code
  • Editing = Unit Testing
  • Proof Reading = QA
  • Layout = User Interface
  • Magazine Assembly = Integration and Packaging

In both worlds, there exist trade-offs between four variables: quality, cost, time and scope. For Mikro, limited printing resources within Serbia meant that deadlines could never be missed, and marketing demanded consistent scope - 164 pages, to be exact - in every issue. Within these constraints,  predictability and consistency were achieved by:

  • Managing the expectations of readers and advertisers
  • Maintaining a pipeline of large and small features which could be swapped in and out of any given issue
  • Spreading important features across issues

From these experiences, Gojko makes specific recommendations for software development teams:

  • Instead of deriving a schedule from a feature list, begin with an iterative schedule, and map features into the schedule
  • Enforce non-negotiable deadlines for software releases
  • Define the scope of each software release in a similar manner to that of a magazine issue: a small number of big features, and a larger number of small features
  • If necessary, delay features - even if they're ready - to later releases in order to achieve consistency of scope between releases

For another example of cross-pollination between publishing and agile software development, see "The Emerging Art of Agile Publishing" at

Rate this Article