Rule 1: Make sure a workflow engine can talk to your software easily The fundamental notion of a computational workflow is that a workflow engine runs software tools in a given sequence, feeding data from one step to the next [[8]]. Within software design I separation of concerns i is a fundamental design principle [[55]], but developers may only address it within a piece of software, instead of considering the boundaries of the software tool itself. Despite significant increase in uptake of workflow tools [[7]], there is little specific guidance for writing software intended to slot in as a tool within a workflow, or on converting an existing stand-alone research-quality software tool into a reusable, composable, well-behaved citizen within a larger workflow. [Extracted from the article]