Skip to main content

Sailing Through Software: Designing Work Items for the High Seas

Drawing from a project management tool's design, this article explores how structuring work items is like rigging a sailboat—each component must work in harmony to navigate complex waters.

Charting the Course: From Project Management to Sailing

There's a moment in every sailing trip when the wind picks up, the boat heels, and you realize that every line, every block, and every sail must work in concert. It's not just about having the right gear—it's about how that gear is designed and configured. The same is true for project management software, where the underlying structure of work items determines whether your team sails smoothly or capsizes in a storm of confusion.

I recently read a fascinating article about designing a project management tool, and it struck me how similar the challenges are to sailing. The author, a product manager, was wrestling with a simple-sounding request: “When a defect moves from 'Pending Verification' to 'Closed,' can we require a verification result?” It's a reasonable ask, but it opens a can of worms. Do you make it mandatory? What about edge cases? How do you ensure the rule applies consistently across teams?

That's where the analogy to sailing becomes vivid. Just as a sailboat has a hull, a mast, sails, and rigging—each with a specific role—a work item has types, fields, workflows, and rules. Getting them to work together requires a clear model, not just a pile of features.

The Six Questions Every Work Item Must Answer

Think of a work item as a boat. Before you can sail, you need to know: What kind of boat is it? What can it carry? How do you interact with it? How can it change? What other boats can it connect to? And where do all these rules apply?

  • What is it? The type—like a keelboat or a catamaran—defines its identity.
  • What can it hold? Attributes—crew, cargo, fuel—are the data it carries.
  • How do you use it? Forms and layouts determine how you interact with it.
  • How can it change? Workflows define the states it can move through—docked, sailing, anchored.
  • What can it connect to? Relationships link it to other boats or objects.
  • Where do rules apply? Scopes determine which teams or contexts follow which rules.

These six layers are distinct but must work together. If you mix them into one giant configuration mess, you get a boat that's over-rigged and impossible to handle.

Types: The Hull, Not the Cargo

In the project management article, the author emphasizes that a work item type should only define identity—not default assignees or other rules. That's like saying the hull of a boat determines its shape, but not what cargo it carries or who's in the crew.

If you bake 'default captain' into the boat's design, you'll run into trouble when different teams need different captains. One team might want the creator to be the default, another might want a team lead. The hull stays the same; the crew changes. So, keep the type clean and let attributes and rules handle the rest.

Attributes: The Cargo Hold

Once you have the hull, you need a cargo hold. The article suggests moving beyond 'custom fields' to a richer 'attribute model.' In sailing terms, think of attributes as the various storage compartments—some for food, some for equipment, some for people. Each has its own rules for what it can hold and how it's accessed.

Attributes aren't just text boxes. They can be people, attachments, time logs, or even computed values like a child task's progress. The key is to define them consistently so that forms, APIs, and automations all understand them the same way.

Forms and Layouts: The Cockpit

When you're at the helm, you don't want to fumble through every compartment to find the compass. You want the essentials within reach. That's what forms and layouts do—they present the right attributes at the right time. A create form might just ask for the boat's name and destination, while a detail view shows the full status, crew, and cargo.

The article wisely notes that layouts shouldn't define data rules. Like a cockpit, they're for interaction, not for deciding whether you need a life jacket. That's a separate rule.

Workflows: The Wind and Currents

Workflows are the wind and currents that move your boat from one state to another. In the software, a workflow defines states like 'Open,' 'In Progress,' and 'Closed,' and the transitions between them. It's not enough to just list states; you need to define the actions that trigger changes.

For example, moving a defect to 'Closed' might require a verification result. That's a rule attached to the transition, not to the attribute itself. Just like a captain must check the weather before setting sail, a user must provide certain info before changing a state.

Configuration Scopes: The Harbor Boundaries

Finally, where do these rules apply? In the article, they talk about moving from 'Project' to 'Space'—a long-term container for team collaboration. In sailing, think of it as your home harbor versus a temporary anchorage. A space is where you keep your boat, maintain it, and return to after each voyage. A project is a specific trip with a start and end.

So, instead of creating a new 'project' entity for each delivery, you use goals, versions, and iterations within a space. That keeps the configuration clean and avoids duplicating fields and workflows for every new endeavor.

Configuration Changes: The Rigging Tune-Up

Changing a configuration is like adjusting your rigging—it affects everything connected to it. If you suddenly require a verification result on closure, existing batches might break. That's why you need versioning and impact analysis. The article suggests using stable IDs and references to see which spaces, filters, and automations are affected before you publish a change.

It's a careful dance. You don't want to yank a line while the boat is underway and cause a mess. So, you draft, test, and release changes gradually, ensuring existing work items aren't stranded.

Sailing Onward

In the end, designing a project management tool is a lot like designing a sailboat. You start with a clear vision of the object, its parts, and how they interact. Then you build a model that respects the boundaries between type, attributes, forms, workflows, relationships, and scopes. Only then can your team sail smoothly, adapting to changing winds without losing their way.

So, whether you're a software architect or a sailor, remember: the best designs keep the hull strong, the cargo organized, and the rigging flexible. Fair winds and following seas.

Share this article:

Comments (0)

No comments yet. Be the first to comment!