310 likes | 317 Views
Join Mark E. Vogt from Netrix LLC to learn about SharePoint-powered project management, process modeling, and insights for maximizing ROI. Explore state machine workflows, distributed development, and the role of business in SharePoint.
E N D
CSUG downtown SharePoint-PoweredProject Management event Insights & Innovations on Process Modeling
About Netrix LLC… 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
About the Presenter… • 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
Subliminal Messages… There is NOSharePoint KILLER APP • There has never been a SharePoint “KILLER APP”… • There will never be a SharePoint “KILLER APP”… There ARESharePoint KILLER PRACTICES • SharePoint-Powered Project Management – by EVERYONE • SharePoint-Powered Process Management – by EVERYONE • Distributed & Delegated Solution Development – by EVERYONE • SharePoint-Powered Task Management – by EVERYONE SharePoint is NOTthe pet of IT SharePointISthe workshopof theBUSINESS YOU DIDN’TSEE THIS SLIDE…
More Subliminal Messages… Embrace The Hoard (your “hidden” IT resource) Official IT… Dark/Rogue/Ninja/Hidden IT… TRIPLE your effective DEV Staff… TEACHthem… they become ALLIES! THINK about THAT… YOU DIDN’T SEE THIS SLIDE EITHER…
More Subliminal Messages… DISTRIBUTE development Official IT… Dark/Rogue/Ninja/Hidden IT… TRIPLE your effective DEV Staff… THINK about THAT… TO LOOK AT THIS MEANS DEATH!...
Session Goals… 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…)
Intended Audience… • Power Users • Designers • Developers Dark/Rogue/Ninja/Hidden IT… Official IT…
Situation Overview… 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 numerouscomplex, 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
Fundamentals: Process Automation involves… • 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…
INSIGHT: We weren’t automating the processes… BusinessProcess 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!) • Oftencompletely achievable with SPD (codeless) Workflows! • Workload can be distributed across even client-side resources (see subliminal messages) Reality: • Most organizations don’twant 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…
Understanding ProcessesvsWorkflows… 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…
Understanding “State Machines”… 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 newstate; • A function that maps states and inputs to states & outputs;(called a state transition function) Processes & State Machines have a lot in common…
State Machine-AutomatedProcesses… 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…
INSIGHT: Process-as-Documentisn’t realistic… • 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?
INSIGHT: Process-as-Content Typeis 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…
INSIGHT: Each process has own content type… System Item Title[single line text] ABCItem 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 Criteria001.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] … LEGEND: Content Type Column Name Column Value Processes then are sets of properties each of which has a final or “done” state…
MORE INSIGHTS: Process-as-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 multiplestatuses representing stages, conditions, etc for completion • Can have multipledocuments associated with a given process instance • Can include multiplecriteria, 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…
Real-Life: single process – numerous documents… 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…
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…
Real-Life: Migration process instances in a list… <!– 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() { varcolText = $(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 !!!
INSIGHTS: Modeling (real) Business Processes… • 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:
INSIGHT: Sometimes The Process gets missed… 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…
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…
INSIGHT: Divide & Conquer… 5 2 1 4 6 Each sub-process becomes its own instruction-sending workflow (simple!) Each component workflow regularly updates a property in the larger process 3 7 8
The Big Picture… Process Workflow(s) Emailed Instructions Emailed Instructions Task Workflows Document Workflows 2 3 4 5 1 6 • 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 partiallyor fullyautomated • 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 singlecomplex (realistic) process • Numerous stages can be readily tracked • Numerouscriteria for completion can be readily & intuitively tracked 7 8 • EVENT-driven WF • SCHEDULED WF • Process-as-Content Types looks complex, but is surprisingly INHERITABLE!
Workaround: Scheduled WFs via built-in Timer Jobs… • Process Management Automation typically requires 2 types of workflows: • Event-Triggered – WFs triggered by events occurring on a single item/document: • Item or Document Created • Item or Document (properties or content) Changed • 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, startingimmediately after creation … With both event-triggered and scheduled WFs, much is possible…
INSIGHT: STOP Seeking Perfection… • 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!
Discussion… To schedule this free presentation at your company… • Mark E. Vogt, Principal Architect • business email: SharePoint@NetrixLLC.com • personal email: mark_vogt@hotmail.com • cell: (630)781-9978 • blog: markvogt.vogtland.ws • WATCH for 2 new books by Mark Vogt: • SharePoint-Powered Project Management: A BluePrint & Playbook (available on Amazon.com Summer 2013) • Sayings of The Wise Consultant (available on Amazon.com Summer 2013)