Saturday, July 25, 2015

Modern Content for Modern Apps

Microsoft has been so fond of bandying about the term modern applications of late that I started wondering what exactly that means.

The term modern usually refers to the flat design UI called Metro, so named because of its:
  • roots in the modern design movement, especially Bauhaus
  • focus on Swiss typography, as in signs on public transit systems, which also evoke the name "Metro" (typo geeks note the UI font is Segoe)
  • Influence by cinematic motion design
Metro was originally designed for Zune and the Windows Phone, and spread to the rest of the platform. This was likely due to the push to have the OS interoperate seamlessly on "three screens:" desktop, mobile, and entertainment consoles.

But Microsoft has also used the term modern business applications or modern developer apps for enterprise and cloud services. "Modern" here seems to refer to the special syzygy in which mobile devices (or any device, like a PC or XBOX) take advantage of cloud services. I searched for specifics online, and found nothing definitive, but I'd define it as best I can as follows.

A modern app is one that runs in the cloud and so is:
  • Accessible from any device (mobile, tablet, desktop, entertainment console, TV, IOT).
  • Dynamically scalable and allocateable. You can dynamically scale and deploy cloud resources.
  • Available as needed. Companies can rent resources as needed and do not have to buy/maintain physical infrastructure to support the app.
  • Collaborative. Developers can collaboratively develop and distribute the code (e.g. via GitHub).
  • Secure/sandboxed. Users are authenticated and apps cannot affect resources outside their permitted sandbox.



The question that follows, then, is why not create modern content to support modern apps? And what would that content be like?

Modern content is writing and/or applications that engage with a target community in a practical, social, shared way that invites participation. It is:
  • Practical/presentational
  • Social/collaborative
  • Shared/dynamic (via cloud across users and devices)

Breaking down the definition in more detail:
  • Presentational means speaking personally to the audience (e.g. demo videos)
  • Social means that feedback/comments can be included and can influence the content (e.g. blogs)
  • Collaborative means that readers can annotate or contribute (e.g. wikis)
  • Uses text, example code, and possibly audio/video presentation
  • Blends instructional design and technical writing disciplines (e.g. a guided "how to")
  • Is highly practical, to the point, avoids excessive conceptual content
  • Ideally builds or is built around a working example app (goodbye, "Hello World")
  • Avoids deeply nested TOCs and relies on search and links to find content
  • TOCs are now more like content lists or content maps (clickable graphic maps)
  • Shared means that users can access content via the cloud via many devices (mobile, tablet, desktop, XBOX, IOT);
  • Shared/dynamic also implies instantaneous, dynamically enhanced content: when one shared instance is changed, all views are updated (Amazon publishing model: publish, test, adjust, republish)

Be the very model of a modern content developer

I'd like to give proper credit to these sources: I based my definition of modern UI and modern apps on my own experience at Microsoft and also from these articles: