SharePoint-Powered Project Management
Download
Report
Transcript SharePoint-Powered Project Management
SharePoint-Powered
Project Management
Insights & Innovations on Process Modeling
CSUG
downtown
event
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
ONE SOURCE. INFINITE SOLUTIONS.
Netrix provides:
Cage-to-Cloud Infrastructure
Desktop-to-Mobile Applications
Carrier-to-Endpoint Communications
Network-to-Application Security
Tailored/Custom Business Solutions
Engineering Expertise to Design, Deploy and Manage ALL of your needs
Why Customers Choose Netrix for SharePoint Solutions:
More than 30 cumulative years of hands-on SharePoint experience
More than 70 cumulative years of IT & Business Solutions experience in leadership
Comprehensive capabilities from analysis through implementation & support
Focus on customer satisfaction and service excellence
The Netrix Guarantee
Netrix makes it ALL work together
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
About Netrix LLC…
Mark E. Vogt
Principal Architect, SharePoint Practice, Netrix LLC.
Engineering (Aerospace, Robotics) background
BS Aerospace – U of MN IT
MS (ABT) Mechanical Engineering/Robotics – U of MN IT
MS Computer Science & Applied Mathematics (Control Systems) – IIT
Diverse Career Path
Professor
Engineer
Developer/Architect
Manager
Consultant
Inventor
Alternating betwixt consulting & management by fear of boredom
Driven into Project Management by aggravation
Drawn into SharePoint by its revelation, simplicity & power
Inventing & Fly Fishing every other waking minute
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
About the Presenter…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Subliminal Messages Imminent…
ONE SOURCE. INFINITE SOLUTIONS.
Subliminal Messages…
NO SharePoint KILLER APP
There has never been a SharePoint “KILLER APP”…
There will never be a SharePoint “KILLER APP”…
There
ARE
SharePoint
KILLER PRACTICES
1.
SharePoint-Powered Project Management – by EVERYONE
2.
SharePoint-Powered Process Management – by EVERYONE
3.
Distributed & Delegated Solution Development – by EVERYONE
4.
SharePoint-Powered Task Management – by EVERYONE
SharePoint is NOT the pet of IT
SharePoint
IS the workshop
of the
BUSINESS
YOU DIDN’T SEE THIS SLIDE…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
There is
ONE SOURCE. INFINITE SOLUTIONS.
More Subliminal Messages…
Embrace The Hoard
(your “hidden” IT resource)
Architects
Official IT…
TRIPLE
your effective
DEV Staff…
Developers
Designers
Dark/Rogue/Ninja/Hidden IT…
TEACH them…
they become
ALLIES!
Developers
Designers
THINK
Power Users
Power Users
about THAT…
YOU DIDN’T SEE THIS SLIDE EITHER…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
ONE SOURCE. INFINITE SOLUTIONS.
More Subliminal Messages…
DISTRIBUTE development
Architects
Official IT…
Developers
Designers
Dark/Rogue/Ninja/Hidden IT…
Developers
TRIPLE
your effective
DEV Staff…
Designers
THINK
Power Users
Power Users
about THAT…
TO LOOK AT THIS MEANS DEATH!...
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
ONE SOURCE. INFINITE SOLUTIONS.
ONE SOURCE. INFINITE SOLUTIONS.
COVER theory…
Understand that modeling is different from automating
DIFFERENTIATE Process Automation vs Process Management Automation;
UNDERSTAND a bit about “State Machine” Workflows (smWFs) and their value;
UNDERSTAND various metaphors for modeling business processes;
EXAMINE practices…
EXPLORE “composite” State Machine Workflows to automate complex processes;
EXPLORE advantages of modeling process-as-content type;
EXAMINE “the Big Picture” - a complex process modeled using the above innovations;
EXPLORE a workaround for scheduled-workflows via built-in timer jobs;
IN GENERAL…
SHARE some insights about deriving ROI from SharePoint;
DISCUSS (and Discuss and Discuss…)
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Session Goals…
Intended Audience…
Power Users
Designers
Developers
Architects
Dark/Rogue/Ninja/Hidden IT…
Official IT…
Developers
Designers
Power Users
Developers
Designers
Power Users
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
ONE SOURCE. INFINITE SOLUTIONS.
2012: Contracted to work in a challenging environment:
Large telecomm company with own standalone consulting firm
Massive Program:
- $67 M
- 2 years
- 987 locations
- 100+ concurrent projects at any moment
- 75-100 regularly-churning project staff
- Each project executing numerous complex, constantly-changing processes
- highly-constrained production environment (sandboxed solutions only)
- Complex Business (Technical) Processes needed to be modeled & automated:
-
Simply – no VS solutions
Adaptively – could change/evolve (typically grow more complex) at any time
Intuitively as possible to participating project teams (“just tell me what to do”)
Inheritably by a client-side staff of SharePoint novices
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Situation Overview…
Process Modeling
How best to model (metaphor) a given process
What process-centric properties & values to include
What “helper” properties & values to include
Process Automating
How best to automate a given process
Types of Workflows to use (sequential vs state machine)
Where to use workflows
How to use workflows
Process Modeling is NOT Process Automating…
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Fundamentals: Process Automation involves…
ONE SOURCE. INFINITE SOLUTIONS.
Business Process Automation
Genuine automation not always possible – at least not 100%
eg: CREATE document, SURVEY location, ORDER equipment, INSTALL equipment, etc
Business Process Management Automation (instructing people what to do)
Always possible – even up to 100%
Often manifests as well-defined tasks sent as emails (simple!)
Often completely achievable with SPD (codeless) Workflows!
Workload can be distributed across even client-side resources (see subliminal messages)
Reality:
Most organizations don’t want to replace people performing tasks
Most organizations do want people performing tasks…better
Business Process Management Automation can enable this!
Reduces Process Ambiguity (who does what, when, how)
Increases Process Efficiency (how fast each step occurs)
Business Process Management Automation is a powerful enterprise strategy…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
INSIGHT: We weren’t automating the processes…
ONE SOURCE. INFINITE SOLUTIONS.
Process:
A collection of related, structured activities or
tasks that produce a specific service or
product (serve a particular goal) for a
particular customer or customers.
Workflow:
A sequence of connected steps where each step
follows without delay or gap and ends just before
the subsequent step may begin. It is a depiction
of a sequence of operations, declared as work of
a person or group.
Workflows are (typically) the building blocks of processes…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Understanding Processes vs Workflows…
In general, a state machine is any “device” that stores
the status of something at a given time and can operate
on input to change the status and/or cause an action or
output to take place for any given change.
In practice state machines are used to develop and
describe specific program interactions.
To summarize, a state machine is:
An initial state of set of states;
A set of possible input events;
A set of new states that result from the input;
A set of actions or output events that result from a new state;
A function that maps states and inputs to states & outputs;
(called a state transition function)
Processes & State Machines have a lot in common…
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Understanding “State Machines”…
ONE SOURCE. INFINITE SOLUTIONS.
IMAGINE several smaller “component” Workflows all contribute to become a
larger “composite” State Machine model for a key business process:
Simpler for clients (and developers) to understand;
Simpler to code;
Often breaks down into lots of “WHEN <event> DO <response>” coding
Surprisingly easy & intuitive for client-side to staff to share in this type of coding !
Sets the stage for progressive automated/manual process management !
Start with very little automated management
Progressively automate more & more of the process management a piece at a time
Re-usable “component” workflows (each involved in NUMEROUS processes)
The key lies in figuring out an elegant way to model process states…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
State Machine-Automated Processes…
ONE SOURCE. INFINITE SOLUTIONS.
Tying the model of the process to a single document isn’t realistic
What if a given process involves multiple documents?
The Process needs to be SEPARATE from any particular DOCUMENT(S)
Many WF examples (even intuition) repeatedly reinforce WRONG model
The DOCUMENT is NOT The PROCESS
The Process is The Process… and merely involves document(s)
So… what IS a better (best?) metaphor for a Process?
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
INSIGHT: Process-as-Document isn’t realistic…
Processes are really (often) bundles of properties representing states
“Bundle of Properties” is really just saying Content Type
Content Types can store these process states as columns
The Process itself becomes an abstraction (template)
Instances of processes can be manifested as individual list items
(One does not execute a “process”; one executes an instance of a process)
Each list item (process instance) is always explicitly visible
Entire list of items (process instances) becomes (literally) a dashboard
Large number of states – modeling complex processes - becomes easy!
Each column persists its current state while process is dormant!
Can readily intermingle manual & automated “state changes”
(people can manually override state changes when needed )
process-as-content-type is a superior metaphor for modeling processes…
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
INSIGHT: Process-as-Content Type is realistic…
System
Item
Title [single line text]
LEGEND:
ABCItem
Content Type
Column Name
Column Value
ABCProjectItem
Project Name [single line text]
Client [single line text]
Practice Area [single line text]
ABCProjectSummary
ABCProjectGoal
ABCProjectProcess
Description [multi-line; brief description of specific instance of process…]
Priority [A B C]
OverallCondition [Green, Yellow, Red]
OverallState [Started, Pending, Completed, Deferred, Cancelled]
Overall%Complete [0% - 100% in 10% increments]
Notes [multi-line; ongoing journal of changes, etc in specific instance of process…]
ABCProjectProcess001
Criteria 001.01 State [Unmet, Met]
Criteria 001.02 State [Unsatisfied, Satisfied]
Deliverable 001.01 State [Started, Pending, Completed, Deferred, Cancelled]
Deliverable 001.02 State [Started, Pending, Completed, Deferred, Cancelled]
Milestone 001.01 State [Unreached, Reached]
Milestone 001.02 State [Unreached, Reached]
Milestone 001.03 State [Unreached, Reached]
ABCProjectProcess002
Criteria 002.01 State [Unmet, Met]
Milestone 002.01 State [Unreached, Reached]
Deliverable 002.01 State [Started, Pending, Completed, Deferred, Cancelled]
…
Processes then are sets of properties each of which has a final or “done” state…
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
INSIGHT: Each process has own content type…
• DON’T model process-as-document (or document-as-process)
- often leads to constraints!
• DO model process-as-content type derived from Item – not Document
• Can have multiple statuses representing stages, conditions, etc for completion
• Can have multiple documents associated with a given process instance
• Can include multiple criteria, component statuses, milestones – whatever defines the process!
• Multiple events all over site collection trigger multiple (small) WFs but update single process instance
(This is essentially a (composite) State Machine Workflow – the grail thought not possible in SPD!)
• Information about each process instance is explicit & visible rather than hidden inside SharePoint
• Processes list literally becomes a dashboard into the overall status of the processes
• DO create MULTIPLE Process content types – one for every process required by a project!
Let’s apply all this to a real-life complex process…
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
MORE INSIGHTS: Process-as-Content Type…
ONE SOURCE. INFINITE SOLUTIONS.
Many of the project processes involving
preparing & updating individual
portions/sections of many types of
deliverable documents as shown here…
Some of these documents (spreadsheets)
easily contained 15-50 MB of data!...
Many documents had their own set of
individual preparation workflows, with
document-specific statuses representing
“phase gates” for that workflow…
… but the overall “migration” process
wasn’t complete until ALL the documents
were completed and reviewed and
accepted!...
THAT is The Process…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Real-Life: single process – numerous documents…
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Real-life: Numerous types of statuses…
OBSERVATION:
Modeling status columns as choice-type or
lookup-type doesn’t really matter for overall
process modeling & automation…
<!– DEFINE new styles to append to selected table cells…-->
<style media="screen" type="text/css">
.cellRed { background-color: Red;}
.cellYellow { background-color: Yellow;}
.cellGreen { background-color: Lime;}
</style>
<!– REFERENCE jQuery library, either on-premises or via CDN…-->
<script type="text/javascript" src=“{URL to CDN}/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// SELECT all table cells with specific CSS class unique to list items…
$('.ms-cellstyle.ms-vb2').each(function() {
var colText = $(this).text();
// TEST actual value in cell, and append colorizing CSS as appropriate…
if (colText == 'Green') {$(this).addClass("cellGreen"); }
else if (colText == 'Yellow') {$(this).addClass("cellYellow"); }
else if (colText == 'Red') {$(this).addClass("cellRed");
}
});
});
</script>
…with a bit of simple jQuery for styling = DASHBOARD !!!
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
Real-Life: Migration process instances in a list…
ONE SOURCE. INFINITE SOLUTIONS.
Envision your larger processes as being comprised of multiple individual
workflows which – for this process – happen to all work in symphony to
execute an instance of that process.
Think in terms of smaller, simpler (easier to code & inherit) Workflows
Think in terms of automating the management of the process
Think “tell the right people what to do, how and when”
Think in terms of DEFINING & ASSIGNING TASKS
Make things as simple as sending emailed instructions (from task lists)
Examples:
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
INSIGHTS: Modeling (real) Business Processes…
ONE SOURCE. INFINITE SOLUTIONS.
Workers can get lost in the weeds of individual deliverables and the workflow surrounding them
that they LOSE sight of the larger, over-arching process itself.
SPEND time actually DEFINING The OVERALL Process
DIFFERENTIATE the individual composite WFs from The Process !!!
What Happened to Us:
Design Document Tab1 (there were 26) as process… INCOMPLETE & UNnatural
Design Document itself as process… INCOMPLETE & UNnatural
Deliverable XYZ as process… INCOMPLETE & UNnatural
LocationABCMigration (20+ docs plus actual work) as process… COMPLETE & natural
Design Document Prep as WF of Migration Processs… natural & intuitive
Deliverable XYZ Prep as WF of Migration Process… natural & intuitive
…
Actual Equipment Work as WF of Migration Process…natural & intuitive
… and all the while every key milestone/critiera/condition is visible in the Process Dashboard
IDENTIFY The (actual) Process… and everything starts to come together…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
INSIGHT: Sometimes The Process gets missed…
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
EXAMPLE: A Real-Life Business Process
Each “swim lane” represents a separate event-driven Workflow
Columns represents different changes (in value) of several process property
states (Submittal Status, Deliverable Status, Review Status, Archive Status)
Let’s see how to tackle modeling & automating this with our new insights…
1
2
3
5
4
ONE SOURCE. INFINITE SOLUTIONS.
6
7
8
Each sub-process becomes its own instruction-sending workflow (simple!)
Each component workflow regularly updates a property in the larger process
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
INSIGHT: Divide & Conquer…
Process Workflow(s)
ONE SOURCE. INFINITE SOLUTIONS.
Emailed Instructions
Emailed
Instructions
Task
Workflows
1
•
•
•
•
•
•
•
•
•
Process-as-item metaphor enables “Composite State Machine” Workflow
Projects involving repeated, complex processes can be readily tracked
Complex processes can be automated in smaller, re-usable WFs
Management of complex processes can be partially or fully automated
Human intervention (“override” of process values) is possible, even natural & trivial !
Numerous people can “feed” these items (unlike MPP files) concurrently
Numerous documents (deliverables) can be involved in a single complex (realistic) process
Numerous stages can be readily tracked
Numerous criteria for completion can be readily & intuitively tracked
2Document
Workflows
3
4
5
6
7
EVENT-driven WF
SCHEDULED WF
Process-as-Content Types looks complex, but is surprisingly INHERITABLE!
8
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
The Big Picture…
Workaround: Scheduled WFs via built-in Timer Jobs…
Process Management Automation typically requires 2 types of workflows:
1. Event-Triggered – WFs triggered by events occurring on a single item/document:
•
•
Item or Document Created
Item or Document (properties or content) Changed
2. Scheduled – WFs triggered regardless of an event occurred (scheduled tasks)
Typically SPD Workflows (Declarative) can only be triggered when an item is created and/or changed.
Triggering SPD Workflows to run on a scheduled basis requires a custom timer job
CHALLENGE: Sometimes custom timer jobs are NOT always possible
•
•
Organization doesn’t have development capability
Organization policy prohibits deployment of custom timer jobs into PROD farm
Useful Workaround:
Leverage the nightly timer job
already built-into the Information
Management Feature!
Create a Retention Stage which
repeats a selected WF daily, starting
immediately after creation …
With both event-triggered and scheduled WFs, much is possible…
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
ONE SOURCE. INFINITE SOLUTIONS.
Seek IMPROVEMENTS in overall efficiencies
Seek EXCELLENCE – this is achievable
DEFINE “Excellent” in terms of SLA metrics on a process
EXPECT BPMA to always be a MIXTURE of manual & automation
STARTS as more manual process…
EVOLVES toward more & more automation…
When you arrive at “Excellent” – STOP – and move on to next process!
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
INSIGHT: STOP Seeking Perfection…
Discussion…
To schedule this free presentation at your company…
Mark E. Vogt, Principal Architect
business email: [email protected]
personal email: [email protected]
cell: (630)781-9978
blog: markvogt.vogtland.ws
WATCH for 2 new books by Mark Vogt:
SharePoint-Powered Project Management: A BluePrint & Playbook
Sayings of The Wise Consultant
(available on Amazon.com Summer 2013)
(available on Amazon.com Summer 2013)
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
ONE SOURCE. INFINITE SOLUTIONS.
ONE SOURCE. INFINITE SOLUTIONS.
Copyright © 2013 Mark E. Vogt, Netrix LLC. All rights reserved.
…and lastly... GO BLACKHAWKS !!!