Important Updates to Milestones - Mar 2018
March, 2018.
We're excited to announce a set of updates to SolarNexus aimed at helping you more effectively track and manage project status, tasks, and issues. This article will give you an overview of the new features and changes, along with some examples of how to accomplish common tasks the "new way" vs. the "old way".
Note that while the new features are optional for the most part, if you currently use the Pending field for tracking status or Scheduled Reminders for managing follow ups, you will need to adjust your process. See the What's Changing and Pending Value Migration sections for details.
What's Changing
1. Pending field deprecated in favor of milestone status, subtasks and labels
The Pending field for a project, visible on the Project screen and on the Sales/Installs screens, has provided a way for project owners to indicate the next action, status, or blocking issue for a project. While the Pending field can be a helpful tool for managing project workflow, it has proven to be somewhat confusing and limiting for many users. Problems have included:
- Pending values can get out of sync with milestones, leading to mixed signals and confusing state. For example, if you set the pending value to "Second Call Attempt" while qualifying a lead, but then forget to clear it once the lead is qualified, the project might be left with "Propose to Customer" as the next milestone but with "Second Call Attempt" still pending, which can be confusing.
- Pending values are often redundant with milestones (e.g. "Sales Appointment Pending" vs. Sales Appointment milestone) and it is not always clear when to use the Pending field vs. milestones. Milestones are the primary mechanism for managing workflow in SolarNexus, so having pending values that are redundant with milestones can create inconsistent/conflicting state and can make it harder to effectively track and manage project status.
- A project can only have a single Pending value, which is limiting if there are multiple people working on a project at the same time. For example, the finance team and engineering team might both be involved on a project after the sale. Which one of them gets to use the Pending field to track status? Also, when selecting a Pending value, you might have to choose from a long list of possible values that apply to all phases of a project.
- There is no direct way to add detail or assign someone to resolve the problem when the Pending field indicates a problem or issue. As a result, users have come up with various creative ways to overload the Pending field with a large amount of detail or to flag other users to look at an issue.
We've designed the new workflow features (per-milestone status, subtasks, and labels) to provide a better way of tracking and managing status/issues, so we will be deprecating the Pending field going forward. This means that you will no longer be able to set Pending values for projects and will need to use milestone status, subtasks, or labels instead.
As described in more detail below, rather than setting a single project-level Pending value, you now set status at the milestone level. If a project has two concurrent milestones in process, for example, each one will have its own status that can be set independently by the milestone owner. Each milestone has its own list of unique statuses that can apply at that step. Additionally, you can now create and assign milestone subtasks to better track ad-hoc issues and dependencies rather than trying to track all that with Pending values.
Where you'll see changes:
- On the Project screen, if the project still has a Pending value that hasn't been migrated, it will be displayed read-only in the Status module.
- On the Sales/Installs screen, if a project still has a Pending value that hasn't been migrated, it will be displayed read-only in the Current Milestones column.
- When completed a milestone, you'll no longer be able to update the Pending value. The next milestone(s) will start with an appropriate default status that you can then update from the Status module. (An account administrator can set the default status for each milestone.)
- You will still be able to filter the Sales/Installs screen and reports by Pending value for the time being in order to find projects with Pending values that haven't (yet) been migrated.
If your company makes use of the Pending field for tracking project status, please see the Pending Value Migration section for instructions on migrating your process and data to make use of the new features.
2. Scheduled Reminders replaced by ad-hoc tasks with due dates
If you use Scheduled Reminders for setting up follow-up reminders or alerts for upcoming events, you'll notice that your reminders will no longer show up in the Scheduled Reminders pane of the project's Management Panel (aka the section on the right hand side of the project screen. Instead, you'll see your reminders listed as Pending Tasks in the new Additional Tasks/Issues section, and that's where you'll create new reminders going forward (as well as in the subtask section of each milestone).
Existing reminders have been converted to Subtasks, a new SolarNexus construct, with the scheduled reminder date set as the task due date. You'll continue to get an email notification on the task due date.
To create a new reminder, click to add a new subtask, enter the reminder description in the box, and click the alert icon to specify the due date.
Benefits of this change:
- Unlike scheduled reminders, which are set to notify users by role, subtasks can be assigned to specific users.
- In addition to getting email reminders, you will now also see your assigned scheduled subtasks on the Tasks screen and in the My Tasks module on your home page, both in the list and calendar views.
- Subtasks stick around in view until they are checked off, even after the due date. This helps provide a continual reminder to complete them beyond the reminder email you get on the due date. If they are checked off prior to the due date, no reminder will be sent.
- Subtask deadlines can be set for a specific time of day whereas scheduled reminders could only be set for a date.
- With subtasks, you can set a short summary for display, with a more detailed description in the task popup.
What's New
1. New UI for project milestones
We've updated the Status panel on the right-hand side of the Project screen in order to make it easier to manage project milestones.
Changes:
- Look and feel updated to bring focus to the current milestones for the project. Each milestone is now displayed as a to-do list "card".
- Easier to see milestone owner at a glance. Initials of milestone owner are displayed in top-right corner of the milestone card. (You can go to your user profile page to change your initials.)
- Easier to see milestone due date at a glance. If the milestone has a due date, it is always displayed on the bottom-left of the card.
- Ability to add a milestone-specific project log entry. Click the comment icon at the bottom of a milestone card to add a note associated with that milestone. The note will still appear in the main project log, but it will be tagged to the milestone to help you "thread" comments.
- Ability to set milestone-specific status and track milestone subtasks. See below.
2. Track projects with new per-milestone status and color-coded condition
Each project milestone now has its own status field for tracking progress toward the milestone.
The milestone status appears below the milestone name in each milestone card on the Project screen. The default status in many cases is simply "Pending", meaning that the milestone is waiting to be completed, but you can select a more specific status to indicate where things stand with that step in the process. This is similar to the existing Pending field, but at a milestone-specific level instead of project-level.
Each milestone status has a color-coded condition -- normal (green), issue (yellow), blocker (red) -- that provides a simple visual cue of the milestone status. The milestone card is color-coded based on this condition and milestone conditions roll up to the project level: if any milestones are yellow ("issue"), the project as a whole will show as yellow; if any milestones are red ("blocker"), the project as a whole will show as red. Additionally, if any milestone is marked as having a blocking issue (red), users will be prevented from completing any other milestones until the blocking issue is resolved. This allows you to easily put a halt to a project when a problem comes up.
To change a milestone's status, click on the status to bring up the status dialog. You can select from a list of standard statuses (account admins can manage this list on the milestone admin screen) or select "[other]" to enter an ad-hoc status. You can also specify the date when you estimate the milestone will be completed.
Where you'll see changes:
- Project screen
- The milestone status is displayed beneath each milestone and milestone cards are color-coded based on the associated condition.
- The overall project state and condition is indicated next to the project name at the top of the page.
- Tasks Screen and My Tasks module
- Milestone status displayed in a new Status column
- Sales/Install screen
- Current Milestones column added with a toggle to view either Current Milestones or Last Milestones. Pending column removed, with status of current milestones shown in the Current Milestones column.
- New Current Milestones and Current Milestone Status filters allow you to filter projects by current milestone/status.
- Projects are color-coded by condition.
- Reports
- New Current Milestones column, which includes current milestones along with status.
- Notifications (Reminders)
- If project reassigned, milestone assignment notification includes the current milestone status.
3. Create ad-hoc tasks to track/assign project subtasks and issues
Project subtasks give you a way to track and assign issues and tasks at a lower level than milestones. While milestones represent the standard, orchestrated steps you repeat for every project, subtasks are for the smaller, ad-hoc issues that vary per project.
You can add a milestone subtask by clicking the checklist icon at the bottom of the milestone card. Simply enter a task summary and click save, or click Edit details... to add more info, like assigned user, deadline or appointment date, and detailed description.
You can also add subtasks at the project-level in the Additional Tasks/Issues module on the right hand side of the project page. This is for project issues that aren't necessarily relevant to a current milestone. For example, if the customer calls up to discuss a change to the project while you're in the permitting phase, you can add a project-level subtask to capture the call and assign it to the right person on the team for follow up (or even schedule a call on the spot).
Subtasks that have a deadline or scheduled appointment date will show up on the Tasks screen and in the calendar along with milestones.
4. Tag projects with custom labels to help you more easily find them later
The new Labels module on the right hand side of the project page gives you a quick way to tag projects with one or more pre-defined labels for whatever purpose you want. You can filter by label on the Sales and Installs screens and in reports.
We found that in some cases, users were using the Pending field as a way of tagging projects with arbitrary values unrelated to project status. Labels are a better way of doing that since you can have multiple labels per project and they can co-exist with milestone status.
Note: you can only use labels that have been pre-defined in your account. Labels are managed by the account administrator on the Administration > Lead and Project Data screen.
5. See all milestone/task activity in the project log
The Project Log has traditionally shown user log entries added via the Project Log module and other dialogs. We've now enhanced it to additionally show all milestone/task activity, including milestone status changes, milestone completions, task creation/completion, reassignments, etc. This gives you more insight and visibility into project history, and a way to easily see who did what, when.
The full Project Log Viewer (link in top right on all project pages) will show only user comments by default, but you can click on the Show All Activity checkbox to see all milestone/task events.
The Project Log quick view module on the right hand side of project pages will continue to only display user comments.
Common Scenarios - New Way vs. Old Way
I want to... | Example | Old Approach | New Approach |
Create a reminder to follow up with customer | Follow up in 2 days after delivering proposal | Create scheduled reminder | Create subtask of Close Sale milestone to "Follow up with customer" in 2 days |
Flag a blocking issue on a project | Customer denied credit approval | Set Pending value to e.g. FINANCE ISSUE, add note to project log | Set Finance Approval milestone status to Denied, which is a blocker (red), optionally add milestone subtask for sales owner to discuss alternative with customer |
Indicate that I'm waiting on something | Proposal waiting on sales design | Set Pending to "Sales Design" | Set "Propose to Customer" milestone status to "Waiting on Sales Design" |
Handle project rework | Permit denied, revision needed | Add note to project log | Set "Permit Approval" milestone status to Denied, which is an issue (yellow), add milestone subtask for engineer to make revisions with a 2 day deadline |
Track customer inquiry | During permitting phase, customer calls about changing the design | Add note to project log | Add project-level subtask detailing customer inquiry and assign to sales rep or project manager, schedule customer call |
Pending Value Migration
The Pending field is being deprecated, so if you currently rely on the Pending field to manage workflow, you'll need to migrate your process and data to leverage milestone statuses, labels and other purpose-built project management features instead.
Process Migration
You'll need to make the following changes to your process where you are accustomed to using the Pending field:
- When completing a milestone, you may be accustomed to setting the Pending value to indicate the next step for the lead/project. You'll now no longer be able to do this. Instead, you should rely on the next milestone(s) in the process to indicate the next step. After completing a milestone, you can set the status of the next milestone(s) from the Status module on the project screen. An account administrator can define the available statuses for each milestone and can set the default status for each milestone.
- To find all leads/projects at a particular step on the Sales/Installs screen, you may be accustomed to using the Pending filter to find projects at that step. Once the Pending values are migrated for your account, you should instead use the Next Steps filter to find projects at a particular milestone and the Next Step Status to further narrow down to projects with the given milestone status. If any of your Pending values have been migrated to Labels, you can also use the Labels filter to find the associated projects.
Data Migration
For a seamless transition, it is important to migrate the Pending values on existing leads/projects to a milestone status or label.
SolarNexus will perform the migration automatically in many cases, but your help may be required in some cases to identify the correct migration strategy. If we are unable to automatically migrate your pending values, we will work with the administrator(s) for your account to plan and carry out the migration.
You are not required to migrate the Pending values for all projects. If a Pending value is not migrated, it will continue to be displayed on the Project screen and Sales/Installs screens as a legacy, read-only value. When next updating the disposition of a project with a legacy Pending value, you can click to clear the legacy pending value and then indicate the new disposition by setting a milestone status, creating a subtask, adding a label, archiving the lead, etc.
The table below describes the most common options for migrating a Pending value.
Action | When to Use | Example | How it Works |
Migrate to milestone status | The most common case. Use when a pre-defined Pending value represents a status that applies to a single milestone. | Migrate First Contact Attempt pending value to First Contact Attempt Pending status on the Qualify Lead milestone. | On the relevant milestone, define a new status value corresponding to the Pending value. Update all projects with that Pending value that are at the relevant milestone to have the new milestone status. Projects with that pending value that are past the relevant milestone will have their pending value cleared without migrating it because it was probably left assigned to the project by mistake. |
Migrate to project label | Use when the Pending value is more of an arbitrary tag than a status. | Manager used the Pending value Jane's Old Leads to flag the leads brought in by a now-departed sales rep. Migrate this to a label. | Define a new label representing the Pending value. Add the label to all projects with that Pending value. |
Archive the lead | Use when the Pending value indicates the lead is dead but the lead is still active. | Pending value of Dead - Uninterested set on some old leads that were never closed. Archive these leads with the reason Uninterested. | If not already defined, define a new archive reason corresponding the Pending value. Archive all leads with that Pending value, setting the corresponding archive reason on each project. |
Clear legacy value | Use when a Pending value is no longer relevant. | Pending value Sold is redundant with the Sold milestone and can be removed. | For all projects with the Pending value, simply clear the Pending value. |
Leave legacy value | Use for custom (write-in) Pending values or other old pre-defined Pending values that you want to keep for historical purposes but which you don't plan to use going forward. | A sales rep set the custom Pending value "Waiting for customer to talk to wife". No need to migrate, leave as read-only legacy value. | Projects with the Pending value will be left alone. On the project screen and sales/installs screen, the Pending value will continue to be shown as a legacy (read-only) Pending value. |
Automatic Migration
To simplify the transition, SolarNexus will attempt to automatically migrate the Pending values for your account using the actions above. SolarNexus will only try to automatically migrate projects that use a pre-defined Pending value. Projects that have a custom Pending value (i.e. where the user selected "other" and wrote in a pending value) will be left alone and those Pending values will remain as legacy Pending values.
In cases where the existing Pending value for an active project appears to apply to an earlier phase of the project than the current milestone, the Pending value will be cleared.
In cases where it is unclear which milestones an existing Pending value applies to, projects with that Pending value will be left alone and those Pending values will remain as legacy Pending values. An account administrator can create milestone status values or labels corresponding to these Pending values for users to use going forward.