Unblocking The Main Thread Solving ANRs and Frozen Frames
Sample upload
1.
2. Problem Definition
0 Web Portal for Team Management
0 Target Audience: Sr. Managers
0 Supported Tasks:
0 Manage Team Members
0 Add / Remove / Change / View Members
0 Manage Project Allocations
0 Assign / Remove / Change Resources
3. User Profile
0 Sr. Managers are responsible for managing their
teams
0 Sr. Managers are responsible for multiple projects at
any point in time
0 They need to regularly review how their team
members are utilized and optimize their allocations to
required areas/projects
0 They have extensive hands-on experience using MS
Excel to create project plans, team status etc.
4. Assumptions - I
0
0
0
0
0
0
0
0
A team member can be added to multiple projects
A team member can have multiple supervisors (one per project)
There can be team members who are not assigned to any projects (i.e. on Bench/available status)
Each project has a supervisor who reports to Sr. Manager
Each project has a project owner who doesn’t have to report to Sr. Managers
A team member has 100% time which can be divided into multiple projects and/or bench
A team member can have multiple status (one per project)
A team member can be assigned to projects and stay on bench at the same time (i.e. partial allocation to projects and partially to
bench)
0
0
In order to achieve this, Bench needs to be a special project alongwith other projects defaulting to all available time of every team member
A team member on bench can have one of the two status:
0
A team member on other projects can one of the below status:
0
A team member will always have atleast one project assigned to them. When there are no assignments, it would mean 100% allocation to
Bench project
0
0
Available
On Leave
0
0
0
Billable
Considered
On Leave
0
A team member can be on leave for one project while working on other projects
0
Based on all of the above assumptions, there are following tasks emerging from given tasks
0
0
0
Add Team Member and Assign Projects (default project for every new member is Bench)
View Team Members
Change/Remove Assignments
5. Task 1: Add Team Member
and Assign Projects
0 Name (Full Name)
0 Level (out of given levels; assume I, II, III, Lead, Principal, Manager, Director, VP for the
0
0
0
0
0
0
0
0
assignment)
Experience (months)
Skills (assume it will be available from employee records against the team member)
Project (assume there is a list of active projects in the system and option to add new
projects)
Project Owner (assume this info will be available for active projects in the system)
Percentage of allocation on each projects
Project Engagement (start date and end date of project for the team member; assume
no mandate for end date for cases where project goes on for very long durations, e.g.
ongoing support)
Status of Team Member (assume the status depending on the two types of projects
assumed in Assumptions – I)
Comments (free-form field)
6. Task 2: View Team Members
0 On the basis of:
0 Name (Full Name)
0 Level (out of given levels; assume I, II, III, Lead, Principal, Manager,
0
0
0
0
0
0
0
Director, VP for the assignment)
Experience (months)
Assigned Projects (assume there is a list of active projects in the system
and option to add new projects)
Percentage of allocation on each projects
Project Engagement Dates (start date and end date of project for the
team member; assume no mandate for end date for cases where project
goes on for very long durations, e.g. ongoing support)
Supervisor Name
Status of Team Member (assume the status depending on the two types
of projects assumed in Assumptions – I)
Comments (date-wise and project-wise)
8. Overall Approach
0 Since the users are familiar and experienced with MS Excel, the system needs
to represent MS Excel style of data management and entry
0
0
0
0
Data represented in tabular format like Excel worksheets
Data color-coded to represent different meanings
Data items can be edited by direct manipulation just like Excel
Different color codes to represent different meanings to make certain data stand
out
0 Filters applicable on certain sections to enable Excel like quick filtering to view
particular data
0 Adding new entry would be like adding new row in the table
0 One problem with Excel is redundancy of data in multiple cells (especially
when there are team members assigned to multiple projects, excel would
need multiple cells to have same team member data for each project)
0 The system should utilize auto-fill functionality and provide suggestions
when characters are entered in data fields
9. Assumptions - II
0 It is assumed that while the designed system should have
similarity to excel, it should take care of this redundancy on UI as
well as backend
0 Since this exercise is concentrating only to support Task 1
and Task 2 as also mentioned above, it is assumed that
remaining aspects of the portal are already in place, i.e.
Employee data (name, skills, experience etc.) and Active
Projects data (dates, owners, supervisors etc.)
0 When viewing team members, users can apply a
combination of conditions (nested conditions to view data)
10. Design Directions
0 Following are the different ways in which the UI can be designed:
0 Tabular UI supporting add/edit/remove, freezing columns, filtering on columns etc. which is most
simplistic approach corresponding to Excel UI
0 Form based approach where data is presented in tabular data but adding/editing data would require
different pages/dialogs like advanced level Excel sheets with forms functionality into it
0 A mail-merge type of approach where data is spread into different sheets or documents and merged
with autofill etc. for advanced users of Excel
0 For the purpose of this exercise, we will choose tabular UI approach of traditional Excel paradigm
alongwith the mail-merge approach where data is getting auto-filled and/or suggested from
different tables
0 Table being a straight-forward adaptation from Excel will be easier for users to get going
0 Table will give a complete view at all times
0 For the sake of reducing errors, editing will be allowed per row which becomes a conscious decision
0 Filters can be easily incorporated on respective columns of table to support viewing data based on
specific values
0 Nesting of filters can be highlighted somewhere with option to revert/cancel upto specific filter levels
0 Just like Excel, search will be incorporated with filters so as to always present valid results
13. Place showing all set filter
criteria and their nesting.
Easy to identify all set
filters and remove specific
filters.
Sortable Column Headers.
Only
Name, Level, Experience, S
kills, Project, Owner, Super
visor, Start Date, End
Date, Status columns are
sortable
Option to set individual
filters on every
permissible column to
enable user to view
specific data values
Options to save or revert
all unsaved changes to the
table. This is over and
above relevant options on
individual edited rows to
save or revert all at one go.
Team member details are not repeated in the UI to
keep the grouping more understandable. When user
selects filters or sorts data according to certain
column that leads in a different order, the data
pertaining to a particular member will get
distributed to each row of table for that member.
MS Excel style infinite worksheet with
given number of fixed columns spanning
horizontally and infinite amount of data
spanning vertically. The data will lazy-load
as continuous scroll as against pagination
Different color codes on
project and member
combination depending on
member’s status on the
particular project
Direct manipulation of data is not
allowed to avoid mistakes. However
user can edit as many number of rows
as needed by selecting Edit for that
row.
15. Options to add more members or projects or remove existing (by pressing shift while
hovering) comes up on relevant cells on hover. Clicking will add another row under
current row/group under current row/group depending on scope of addition. When a
new row is added, it will not simply get added under current row without auto
reorder, but when user refreshes, reopens or does any sort, it moves to its proper
placement in the UI
Inline editable forms for each
cell of the row that can be
changed. As assumed, since
Level, Experience, Skills,
Project Owner, Supervisor are
stored in another system, they
cannot be changed.
For time allocation, if the %
total becomes more than 100,
the field being entered will
become red and will not allow
to be saved unless fixed.
When there is only one project allocation and it is
removed, the row will be replaced with default
Bench project with 100% allocation to it unless the
member is completely removed from the team.
When user is editing any
member and project
info, relevant actions
change from edit to save
and revert.
17. Different filters in order of
nesting with option to remove
any filter quickly
Excel like options to filter
columns alongwith an option
to freeze columns from
scrolling (another Excel
feature useful in infinite
tables)
Filtered columns will have
filter icon highlighted to
set context