Crew scheduling
Workflow optimization feature
Problem:
The operations team can not create crew assignments & duty time directly from the schedule board causing work load strain
Solution:
Using system paradigms, create a new event type that allows a user to assign crew directly to an event/tail/flight leg from the schedule board
Results:
Reduction of an average of 80% time on task which equates to a labor reduction of 5.6 hours per week per operator
Company:
Wheels Up
Platform:
Avianis (Flight management system)
Roles:
UX / UI designer
User researcher
Design process
What was delivered and how
1 / 5
Discover
- User interviews
- Task analysis
Define
- Task analysis
- HMW statements
Design
- High fidelity mockups
- Prototype
- Testing
Deliver
- TOT reduced avg. of 2 mins per assignment
- Decreased page load time
Discover
2 / 5
Understanding the problem
We need the ability to set crew assignments with positions & duty times to a flight leg directly from the schedule board. The current process is too time consuming for our operations team.
Steve, Ops Leader - Mountain Aviation
Crew assignments
An assignment given to indicate a crew member will be working a particular event/tail/flight leg. These records are critical for maintain proper compliance with the FAA.
Duty time
Duty time is the portion of the day when a crew member is on duty in any capacity. This duty time must be recorded for each event/tail/flight leg in accordance with FAA regulations.
How is operations team currently adding crew assignments?
Step 1
Locate & select desired flight leg via schedule board
→ Step 2
In a separate tab with the flight leg search open, search for & select the desired flight leg
→ Step 3
On flight leg profile page user must locate the crew section and assign crew/position appropriately
✓ Step 4
User then tabs back to schedule board, refreshes page & must relocate flight leg on the schedule board
How is operations team currently adding duty time?
or
or
🏁 Step 1
On the trip page access the “Duty Time” tab on the flight log you want to add duty time to
→ Step 2
Select the Personnel or All Crew option
→ Step 3
Designate the Duty Category
✓ Step 4
Confirm the start/end date are accurate, enter the start/end times in Zulu and save
This is what they are saying about their processes...
The operations teams schedules crew assignments and duty time in advanced and flexes those assignments between tails.
Assignments are made coordinating between a flight leg page and the schedule board.
Airops Team
- Duty includes tail assignment, create individually per each crew (PIC and SIC separate) for 8 days at a time
- If crew changes assignment then duty moves
- Crew “checks in” to confirm when on duty, but never creates/edits duty
Mountain Aviation
- Create pre-scheduled duty for a large segment of crew (20+ people) for 8 days at a time
- May edit individual duty later
- Create assignment events on tails for the crew (currently without positions)
Global Scheduling Team
- Reference available crew to make assignments for 8 days
- May partially create flight scheduling knowing the tail will be crewed
- Create duty start/end around early anticipated scheduling
3P Services team
- Set crew availability forecast for 3 months or more, scheduling en mass for crew
- Create 8 days of duty for a group of pilots at a time
- Assign crew to tails
Define
User challenges:
Crew Swaps: What happens when one pilot stays with the aircraft but the other one swaps? How do I know that the crew schedules are async and that I can’t schedule flights?
Tail Swap: What happens if there is an AOG and I need my crew to use another tail?
Scheduled duty vs “actual” duty: When the duty is pre-scheduled, its assumed that will be what is confirmed as true
∿ Flexibility: Duty start/end times are not the same across the entire assignment period, or change as the flight schedule is created
User requirements:
1. Multiple duty assignments: I want to create DUTY records for multiple pilots over multiple days quickly and easily, with a standard start-end time for each day.
a) I need to be able to edit duty separately per day as schedules change
b) I need to be able to edit duty separately per crew member, this should be clear in how the schedule displays that it is different and for whom
c) I want to schedule and assign crew to duty (or an assignment) and have it on the schedule but not communicate to the crew until I’m ready
d) I need the crew to acknowledge their scheduled duty time upon being scheduled
e) I need the crew to “check-in” to confirm that they have started working per a scheduled duty time
f) I want the option to prevent the crew from ever being able to create/edit duty events
g) Need to maintain the ability for crew to log net-new duty for the managed model, with flight log
2. Select date range: I want to make assignments of crew to an aircraft over a date/time range that is position specific.
a) I need to be able to quickly see on the aircraft schedule if the appropriate crew has been assigned to make the aircraft available
b) I want any flight I assign to a tail that already has a crew assignment to have that crew automatically added to that flight
c) I want to be able to quickly query what crew are on what aircraft and when they [all] have duty scheduled (Optimizer)
Coordinating a solution with development
The Avianis system was built with a complex data system that only allowed for new features to built with in a rigid rule set.
Developer challenges:
1. Rigid code restrictions
2. Resource limitation
Requirements:
1. Use legacy UI components
2. Use legacy data architecture
Design
How might we consolidate crew assignments?
3 / 5
Presenting options to the operations team
After gaining a deeper understanding from the development team of the system restraints, I proposed to use the existing event structure to give our operations team the ability to assign crew.
By using the existing event type structure, the developers could use Avianis' modal functionality to allow the operations team to add both crew assignments and duty time from the schedule board.
Solution A
Process
1. Scheduler creates an Assignment layer with the expected start times for duty on each day for each crew
2. When crew “checks in” it creates actual Duty Time event
Feedback
Pros
• Reduces confusion of scheduled v actual duty (2.a)
• Easy to query (2.c)
• Reduce data entry for assign v duty
Cons
• Challenges with crew swap mgmt. (1.b)
• Crew creates duty (1.f), but could put controls
• How to connect on ‘check-in’ status (1.e)
• Potential double mgmt if actual/=assigned
• Must create crew schedule with aircraft assignments (fleets?)
Solution B
Process
1. Scheduler creates assignments for each crew
2. Scheduler creates scheduled Duty Time events for groups of crew at a time
Feedback
Pros
• Max flexibility on changes, swaps (1.a+b)
• Can apply no create/edit restrictions on duty easily (1.f)
Cons
• Double mgmt. assignment and duty
• Requires creating a “check in” process that is ‘smart’ with scheduled duty
• Need to look in 2 places to find duty time and assignment (2.c)
Solution C
Process
Feedback
Pros
• Single step process
• Eliminates duplicate schedule items
• Full scheduler control of duty
• Easy to query
Cons
• Challenges to support current managed model
• Change mgmt. challenges
• ‘Check-in’ process
Problems solved & pivots made
After running click through prototype tests, we discovered that leveraging an event type would cause data input redundancies and extra steps. Instead the team decided to allow the ops team to right click on a trip/flight to create a crew assignment (not on the modal but using event type structure) and the duty time would be input using the modal with expanded functionality. With our final solution we managed to integrate assigning duty time into the crew assignment workflow, although we were to main the duty time assignment functionality.
Solution C v2
Process
• Single step process
• Eliminates duplicate schedule items
• Full scheduler control of duty
• Easy to query
Feedback
A viable solution
• Single step process
• Developer approved
Crew assignments
Duty time
Crew Assignments
Duty time
Deliver
4 / 5
After a series of iterative co-designing sessions with the operations team, I was a able to deliver a feature which met the needs of the team.
Creating crew assignments & duty time from the schedule board
Leveraging Avianis conventions, a new event type was created within the system which allowed crew assignments and duty time to input directly from the schedule board.
Enabling the operations teams to generate an assignment type directly from the schedule board, Avianis leveraged this data to seamlessly generate automated duty times, thereby eliminating the necessity for a separate duty time record.
New integrated workflow
Step 1
On the Avianis schedule board locate desire trip/flight leg right click then select ‘Create Assignment”
Step 2
• Enter the appropriate Start and End dates and times
• The Start airport is required if the “Local” timezone is selected and is identified along with all of the required fields with an Asterisk
• Choose the desired positions for the assignment
• Select the (+) to continue
• Click Save