Speak the customer’s language and put content first in your DAM UI

We’re currently designing our DAM system’s next generation user interface (UI), and one of the things I’m thinking about a lot is how to present content, and how to navigate it, in a way that makes sense to the people using the DAM.

Mental models

For the DAM vendor, it’s natural to view a DAM system as a generic container for any kind of “assets” or “content”, plus functionality for operating on those assets. If you asked me as a DAM developer for the main sections of a DAM, I’d go for something like “Search, Edit, Upload”.

Here’s how some DAM products name their main navigation items (the first line is from our DC-X product), exemplary of the “generic container” approach:

Read the full article…

Fri, 24 Jun 2016 10:43:00 +0000

Where do I put search result context in schema.org?

I’ve been advocating schema.org for DAM interoperability for a while now, but mostly from a theoretical perspective – I didn’t have any implementation experience to back my claims up. This is supposed to change now as we’re trying to base parts of our new DAM UI on the schema.org vocabulary.

But of course, where the rubber meets the road, there’s unexpected challenges. I had already figured out how to express core asset data using schema.org, but a real DAM UI’s central aspect is search. And searches don’t just consist of the found objects’ data, but also of context and controls (to borrow a phrase from Ruben Verborgh’s excellent Turtles all the way down).

Here’s some things I need to know to render a good search UI (along with related OpenSearch and Hydra property names where available):

Read the full article…

Mon, 30 May 2016 12:25:00 +0000

Digital Asset Management resources

Just a short collection of essential links for people new to Digital Asset Management (DAM).

Other (and more complete) DAM resource listings:

Blogs and news sites:


Other sites:

Thu, 28 Apr 2016 18:36:00 +0000

Distributed DAM: From silo to search engine

This week I dived into product management: gathering requirements for our DAM product, sketching and specifying new features, taking screenshots and writing discussion documents. It’s an important process (here’s an outline) – we don’t want to build stuff our customers don’t need.

But I’m getting lost tracking the documents and files produced during this process: To-dos and discussions in Basecamp, documents in Google Docs, PDFs and photos of paper sketches in Dropbox, and wireframes in myBalsamiq. A bit ironic given that I work for a DAM vendor, isn’t it? After all, my favorite DAM system claim is to be “the content hub for all your digital creations”…

I could (manually) create copies of all these documents within our DAM. But they’ll get modified in the originating systems, and new documents will appear which I’d have to copy as well. In this case, most of my digital assets need to live outside the DAM (for editing and sharing) so the DAM system isn’t of much use to me.

Can’t our DAM software be a bit more like a Web search engine, or “enterprise search” software, and not care where a document is located as long as it is accessible? Why does our software require the records and metadata to reside in its local database? (I already discussed this in “Dreaming of a shared content store”.)

I wonder whether a modern DAM system should let us “manage” decentralized or distributed assets: We should to be able to not just find them within the DAM, but also add/edit metadata and rights information. (That structured data associated with the “remote asset” could well live within the local DAM database.) Wouldn’t it be great to sign up to a fresh cloud DAM system and have it automatically index and link my Dropbox files, Google documents and Facebook photos – then letting me search and organize them?

This sounds way easier than it is; it has its drawbacks and will be a pain to implement. (Yes, I’d be the poor developer struggling with all the fragile connectors to other systems.) But that’s the DAM system I wish I’d had this week.

See also: Cloud software, local files: A hybrid DAM approach and System architecture: Splitting a DAM into Self-Contained Systems.

Fri, 22 Apr 2016 14:22:00 +0000

Turn HTML into plain text with proper whitespace (in XSLT and PHP)

Turning HTML into (unformatted) plain text seems simple at first: PHP has strip_tags(), XSLT has xsl:value-of. In practice, though, you’ll frequently find that words are glued together which should have whitespace between them.

Take this example – extra weirdly-formatted to get the point across:

If you select and copy this text in the browser, the result will look similar to the following:


First line
Second line.


Now look what we get if we feed the same HTML source code into strip_tags() or xsl:value-of:

First lineSecond line.

Words (“HelloWorld” instead of “Hello World”) and lines are glued together!

Read the full article…

Thu, 10 Mar 2016 12:42:00 +0000

Adam Ard: Why Scrum is the Wrong Way to Build Software

Adam Ard – Why Scrum is the Wrong Way to Build Software:

“1. Because all product decision authority rests with the “Product Owner”, Scrum disallows engineers from making any product decisions and reduces them to grovelling to product management for any level of inclusion in product direction.

2. Scrum, in accounting for all the engineer’s time in a tightly managed fashion, discourages innovation . […]

9. Scrum discourages bug fixing, reduction of technical debt, and risk taking, all because of its narrow, exclusive focus on only doing items that Product Owners would interpret as valuable.

10. Scrum is hypocritical

Do managers or Product Owners track and estimate every task they engage in with little or no say in what they work on? […]

11. Scrum makes many faulty assumptions

[…] It assumes that engineers are not to be trusted with directing their own work. It assumes that engineers cannot aligned themselves with the best interest of the organization, without tight supervision.”

I’m not sure a hypothetical “perfect Scrum” has these faults, but these are certainly issues we’re facing in our bastardized pseudo-Scrum implementation.

Update: See also Jurriaan Kamer’s excellent You will not become agile by implementing scrum. Quote: “To enable agility, decision making power and responsibility should be implemented at the lowest possible level in an organization, ie. in a scrum team.”

Wed, 24 Feb 2016 13:19:00 +0000

A dropdown for large lists in a Symfony 3 form with choice_loader and Select2

I’m currently learning the PHP framework Symfony 3. The Symfony documentation is excellent for a quick start, but the first serious HTML form I wanted to build touched some ill-documented parts, made me file a bogus bug report (sorry guys) and took me about 20 hours to implement. So here’s how I did it. I hope that helps if you want to do something similar.

The problem was that I needed a dropdown that scales well to huge numbers of options – i.e. the dropdown shouldn’t require listing all available options (there might be thousands), but let the user search instead. And let her enter new values as well.

The UI side of the problem is already solved by the highly recommended Select2, “the jQuery replacement for select boxes”. My finished example form looks like this, it just lets you pick and add tags and dumps all form data when the form is submitted:

To build this, first install Select2 by adding these lines to your Symfony app’s composer.json file…

Read the full article…

Tue, 23 Feb 2016 23:07:00 +0000

Gerry McGovern: If the customer really was king

Gerry McGovern – If the customer really was king:

“Are the most powerful people in your organization those who interact most with your current customers? Are these people the most respected and highest paid?

[…] The customer isn’t just king in a digital economy; the customer is dictator. Those organizations that deliver an excellent experience to current customers will thrive. Those that don’t will wither.

[…] The old model ethos is that the organization is there to support management. The top of the hierarchy is not the customer; it is senior management. […] Their focus is on pleasing their managers, not pleasing their customers.”

Mon, 08 Feb 2016 22:01:00 +0000

Getting started with product management

In addition to my software development and architecture tasks, I’m growing into the “product manager” role – though it’s not yet clear what that means: bookkeeping of customer complaints and feature requests, coordinating product decisions and making sure everyone in the company has a say, or pushing my own ideas? Probably a bit of everything…

One thing we’re currently learning, and that’s bound to be a huge part of our future product management efforts, is that we need to move product development closer to the customer.

Read the full article…

Mon, 01 Feb 2016 23:25:00 +0000

Rick Yagodich: The Author Comes First

Rick Yagodich (@think_info) on the Contentful blog – The Author Comes First:

“Any time a big company buys an enterprise CMS, they are easily spending seven figures on the licenses and then another six on subscription fees. To customize this CMS to do something even vaguely resembling what the buyer wants is another seven figure project. It’s not uncommon to spend five-to-seven million dollars to get a mediocre publishing platform.

[…] When we’ve got a CMS that is configurable on a deeper level, we will see a paradigm shift. Organizations that currently spend millions of dollars on customising enterprise platforms, will go for natively configurable publishing tools.

[…] People recognise the value of this approach. There are challenges. And it will take investment. It’s a big step that doesn’t fit in with most vendors’ five-year roadmaps.

[…] At some point, a vendor will take that leap. They will develop a platform that defines a new generation in content management; a true game-changer.

[…] The other vendors would have no choice but to change course, to abandon their precious roadmaps and catch up as fast as they could. I think that would happen within a year of the first serious (enterprise-hardened) platform that provided that level of configurability hitting the market.”

I’d love this to happen in the DAM market as well – see my previous post on System architecture: Splitting a DAM into Self-Contained Systems.

Fri, 22 Jan 2016 07:55:00 +0000