OmniPlan 2 for iOS Tutorial

Welcome to the tutorial! Starting with a blank slate, we’ll build a project from the ground up to show all of the core features of OmniPlan in practical use.

Step 1: Create a Project

For the purpose of this tutorial we’ll be looking at the development process of a game being put together by an independent team of intrepid designers, coders, and testers.

Starting off in the document browser, tap the New Project button.

Tap the plus button in the toolbar to create a new project.

This opens the Project Editor, where a first task is waiting to be customized or edited. Before we get to that, let’s rename the project to something more interesting.

Tap My Project in the toolbar to edit the project title.

Tap the default project name in the toolbar to edit it.

Step 2: Choose a Start or End Date

When setting out to build a project, one of the most important aspects is the timeframe. This, in turn, is dictated by any deadlines or start constraints that exist for the project.

In the case of our game development scheme, we don’t have a hard deadline for the project to be finished - we want it to be done when it’s ready (but as soon as reasonably possible). To indicate this, we’ll go to the project inspector and set the start date as today.

The project editor with the default start date (the day the project is created).

Conveniently, this is the default setting for any new project.

Note
If you’re planning a project in the abstract without a fixed start or end date, you can change the dates from Specific to Undetermined until the timeframe is more set in stone. You’ll get dates that display as T+1d, T +2d... instead.

If you’re planning a project with a specific do-or-die deadline, you’ll want to switch the direction from forward to backward and put the deadline date in the End field. Tasks will be scheduled back from this date, filling in the time from project completion to the present.

Step 3: Create Milestones

Milestones are the anchor points in your project that mark important shifts in focus or unlocking a new phase of the project. Clarifying these will help break a dauntingly large project down into more manageable sections, and help dictate the tasks leading up to and following the milestone.

To create a milestone, tap and hold the new task button until the option appears:

Create a new milestone by pressing the new task button.

Alternatively, tap the currently existing task ("Task 1") to select it, then open the Task Inspector. You can change the task type from a regular task to a milestone here.

Change a task to a milestone in the Task Inspector.

We’ll change the name of "Task 1" by double-tapping it or editing the name field in the Task Info tab, create a few more milestones for our game plan, and then go on to reinforce our milestones with tasks.

Step 4: Create Tasks

Create a task by tapping the new task button.

New tasks appear below the currently selected item in the Gantt view, or at the bottom of the list if no tasks, milestones, or groups are selected.

A basic lists of tasks and milestones for our project.

For our project we’ll create several tasks beneath each milestone that they’re related to. Since we now have more items than will fit on the screen at once, pinch vertically on the Gantt view to change the view scale.

Step 5: Edit the Work Week

Now that we’re starting to see the game plan come together, we’ll set tasks aside for the moment and start setting up the work schedule for our project.

Tap the project inspector and then Work Hours to access the regular weekly work schedule for the project. By default, working hours are Monday through Friday from 8:00 to 5:00, with an hour-long break for lunch at noon.

The default schedule for a work week in the project inspector.

Since we’re working with a bunch of more nocturnal folks, let’s change the schedule to reflect that. Tap and hold one of the time blocks on the calendar to bring it to a new position, or drag one of the side handles to change the size of the block. We end up with a schedule that fits our needs:

The work week updated to fit our needs.

Time blocks can be created for individual days to indicate longer or shorter regular working hours (tap New Time Block), and deleted by tapping Edit.

Step 6: Set Schedule Exceptions

Even the most accommodating work week will occasionally have days that are out of the ordinary. Whether it’s a national holiday, a team-wide training seminar, an industry expo or conference, or just a patch of bad weather that keeps folks out of the office, setting exceptions to the regular work schedule can be key to keeping a project on track.

One that we know is in the future for our project is the upcoming Memorial Day. We can add that to our schedule right now by returning to the top level of the project inspector and tapping Calendar.

The project calendar overview.

Green days on the exceptions calendar indicate regular work days. Swipe to scroll down to May, then tap on the week of Memorial Day (the 25th) to access the exceptions calendar for that week.

The week of May 24-30 in detail.

We know we want to take Memorial Day off, but we can also predict that this week will be crunch mode for the team. We use the Add Time Off button to create a block of time that covers the 25th, and then replace that lost time with evening overtime hours through the rest of the week.

The week of May 24-30 with exceptions added.

Step 7: Set Task Durations

Returning to our tasks in the Gantt view we can begin to scope out how long each task will take. With estimated times for their completion in mind, tap a task and drag the right handle that appears to the appropriate length for the task’s duration (in this case, two full workdays).

A task with its duration extended to two days.

Task duration can also be set using the Task Inspector.

Step 8: Group Tasks

When tasks are closely related or interdependent it can be useful to put them in a group. Groups help organize a project conceptually, and also act as meta-tasks that can be linked via dependencies to other tasks or groups.

The easiest way to gather tasks into a group in edit mode. Tap Edit on the project screen, then tap to select all of the tasks and milestones to be grouped. Finally, tap Group in the bottom toolbar to complete the edit.

Selecting multiple tasks for grouping in Edit mode.

With all of the tasks in the group selected, this would be a good time to add a bit of visual distinction to the group as well. Open the Task Inspector and tap Bar Color to choose a color that will identify all of the tasks in the group.

Styling a group’s bar color with the Task Inspector.

After organizing tasks and milestones into groups and estimating the time required to complete them, we’re starting to get a better picture of how our project will take shape. At this stage our Gantt chart looks something like this:

The project with groups, color styles, and task durations.

Step 9: Connect Tasks with Dependency Lines

We can’t complete all of our tasks simultaneously! Even if we had the resources to do so, some parts of the project can’t happen until others are finished. Thankfully, the pieces are now in place to establish the ways that those tasks are dependent on the status of others. There are four ways that dependencies can exist:

  • Finish → Start dependencies are the most common type, indicating that when task A finishes, task B can start.

  • Start → Finish dependencies indicate that when task A starts, task B can finish.

  • Start → Start dependencies indicate that when task A starts, task B can also start.

  • Finish → Finish dependencies indicate that when task A finishes, task B can also finish.

Connecting tasks in the Gantt view is as easy as tapping a selected task again, which puts dependency arrow handles on either side of the task bar.

A task with dependency handles displayed on either end of its bar in the Gantt timeline.

Drag an arrow from the selected task to another task to create a dependency. The type of dependency is based on the start- and end- points of the arrow: dragging an arrow from the completion of one task to the beginning of another will create a finish → start dependency, and so on.

A finish-to-start dependency between two tasks, as illustrated in the Gantt view.

While in edit mode, you can use the Connect/Disconnect button to add finish → start dependencies or remove dependencies between any number of selected tasks simultaneously.

Step 10: Create Hammock Tasks

A hammock task is one in which the duration is dependent on both when the previous task ends, and the next task starts. This type of task is useful when facing a hard deadline and deciding what can be compressed if the project is running behind schedule, or if external factors influence when parts of the project must happen.

In our example we decide that alpha testing for the game should begin as soon as possible after April 13th, since that’s when we receive our prototype testing hardware. We give the "Testing phase" group a start constraint of April 13th by choosing Constraints in the Scheduling pane of the Task Inspector, and setting Start at earliest to April 13th 11:00 AM.

Setting a start constraint for the Testing phase group.

Note
A Start at earliest constraint can also be set by selecting a task and dragging it along the timeline by the left handle that appears at its edge.

We decide that the "combine art and code" task is the one that’s going to give if the going gets rough. To convert it from a task of fixed duration to a hammock task:

  • First, make sure both the "coding" group and the "art" group are linked to "combine art and code" with finish → start dependencies.
  • Then, create a start → finish dependency originating from the testing phase and linking to "combine art and code."
  • Finally, select the "combine art and code" task and open the Task Inspector. The fourth task type, Hammock, is available for selection.
Selecting the Hammock task type in the Task Info pane of the Task Inspector.

Step 11: Create Resources

Now it’s time to start adding the team members, equipment and materials we’ll be using to bring the project to fruition. Every person, piece of infrastructure, and raw ingredient that contributes to reaching the project’s goal is counted as a resource, so let’s open the Resources Inspector and get started.

The single default resource that comes with a newly created project, as seen in the Resources Inspector.

One resource has been created by default for our project – a staff member. Tap it to access and edit their details, including name, resource type, and personal calendar.

When balancing workloads across multiple projects a staff member’s email address is used as their unique identifier, so make sure their address is consistent across all the projects they’re participating in.

After editing the default resource we’ll create a few more to fill out the list of our team members and the technology they’re using to bring the game to life. Remove or rearrange resources at any time using the Edit button.

A list of resources created for our project.

Step 12: Assign Resources

Assign resources to tasks by selecting the desired tasks in the Gantt view (multiple tasks can be selected simultaneously using edit mode), then opening the Task Inspector and switching to the Assignments tab.

Assigning resources to a task using the Assignment tab of the Task Inspector.

Tap each resource you’d like to assign to the selected task(s) and their names will appear next to each task that they’re assigned to.

Step 13: Level Resources

After assigning team members and equipment to the tasks that make up your project, you can ensure the team is at its most productive by leveling the workload across your resources and tasks.

To level the resource workload for your project, open the Resources Inspector and tap Level Load. Unless your staff is already in the optimal configuration you’ll see the tasks in the Gantt view shift to accommodate the most efficient use of your resources’ time.

Leveling resource loads using the resource inspector.

Optionally, choose Leveling from the Resources Inspector and turn on Automatically Level to have OmniPlan optimize your resource use every time a change is made to your project.

Automatic leveling enabled in the resource inspector.

Step 14: Set the Baseline

With tasks set and resources assigned and leveled, the state the project is in now may be a glimpse at its fate in the best of all possible worlds – one where unforeseen hindrances don’t bog down progress, and where optimistic estimations rule the day.

This is the world that is captured when we set a baseline for progress, a feature used to compare how the project is actually doing against initial expectations, so milestones and resource allocation can be adjusted accordingly.

To set a baseline, open the View Inspector and tap Baselines. Tap Set Baseline and enter a name (the current date is the default); it’s now selected for comparison, and can be compared against subsequently set baselines as the project progresses.

Setting a baseline with the View Inspector.

Step 15: Update Task Completion

As work on the project begins, you can track progress against the baseline you’ve set by tapping a task currently in progress and moving the slider along to the task’s completion percentage (this can be edited in the Task Inspector as well).

Updating task completion using the task completion slider.

If a task is behind schedule, update the expected duration and level resources again to compensate for the additional time needed.

Step 16: Resolve Violations

Occasionally situations will emerge that break the rules of logic you’ve set up for your project. When one of these occurs, OmniPlan will let you know with an indicating a violation related to the adjacent task.

Violations can be fixed by opening the View Inspector and tapping Violations. You’ll find a description of the problem and a command to tap that should resolve it.

A violation appears! Use the View Inspector to identify and resolve it.

Step 17: Split Tasks

Whether because a key collaborator is on vacation or another part of the project has taken priority, suspending work on a particular task can be very helpful. When you want a resource or team member to devote time to something other than the task they’re currently assigned to, splitting the task into parts around the "time out" period is an ideal solution.

A task ready for splitting via the contextual menu.

To split a task, press and hold it in the Gantt view until the contextual menu appears, then tap the right arrow and choose Split. You’ll be asked to choose the duration of each segment of the task, and the date and time you want the task to resume after the break. If the resource will be absent during the split, remember to indicate this on its schedule in the Resources Inspector.

Note
The schedules of individual resources (usually workers) can be customized to account for personal vacation or sick days by selecting the resource in the Resources Inspector and choosing Calendar.

And now the task is split.

After splitting a task it’s always a good idea to level to be sure the split is the most efficient way to manage the task at hand given the project’s available resources and time constraints.

Warning
A split task may mysteriously re-merge after leveling. If this isn’t what you want, make sure that Allow Splitting is turned on in the Resources Inspector’s Leveling submenu.

Step 18: Collaborate via Server Repository

On a large project, or one where the collaborators are spread across diverse geographic locations, you may want to have multiple teammembers able to update the project status remotely. OmniPlan makes this easy!

The project inspector screen flow for setting up publishing and subscription.

To share the project you’re currently working on, open the project inspector and tap Publish and Subscribe, then Repository. You’ll be asked to choose a repository to sync to; if you don’t have one set up, tap Manage Repositories and see Getting Synced at the beginning of this manual to get started.

After choosing a repository, return to the Sync panel and choose an auto-update interval. This is the frequency with which your project will pull changes from the version stored on the server (you can tap Update to manually cause a sync any time you’d like). When you have the settings the way you want them, tap Publish to bring the project live.

Note
Publication is fully manual to give you complete control over your submissions to the project. Any time you have changes to share, tap Publish to sync them to the server.

When changes come in from other contributors, you can use Change Tracking in the View inspector to review, accept, or reject remote edits to the project.

Step 19: Balance Multi-Project Resource Loads

If resources (usually human members of your team) are shared between multiple projects in the same repository, you’ll want to decide in the repository panel whether you’ll publish the current project’s resource loads to other projects and whether the current project will subscribe to the resource loads of others.

Choose whether to publish the project’s resource loads, subscribe to those of others in the same repository, or neither.

Choosing to publish a project’s resource loads means that other subscribing projects will obey its workload information when leveling; if Julie is working on Project A on Wednesday and its loads are being published to Project B, after leveling Project B won’t schedule her to work on Wednesday.

Choosing to subscribe to resource loads means that the project will obey all constraints by projects in the repository that are publishing their loads. By using only the publish or subscribe option a hierarchy of priority can be established between simultaneous projects — a project that only publishes will always have its needs met first, while a project that only subscribes will be assigned resources only when they can be spared.

By both publishing and subscribing, projects are treated as equals — and if a project neither publishes or subscribes, it ignores external factors and syncs only with its own updates.

Note
The key to balancing resource loads across projects is that individual resources be tagged and identified by a unique email address that is shared across all projects. This can be set using the Resources Inspector.