{"action":"created","comment":{"url":"https://api.github.com/repos/dockyard/reefpoints/pulls/comments/26789843","id":26789843,"diff_hunk":"@@ -0,0 +1,53 @@\n+---\n+layout: post\n+title: \"The Lean Project\"\n+comments: true\n+author: Jon Lacks\n+twitter: \"Jon_Lacks\"\n+social: true\n+summary: \"The right recipe of team, process, communication, work environment and pride\"\n+published: true\n+tags: project management, lean, agile\n+---\n+\n+I am firm believer in Lean proccesses aimed to maximize value while minimizing waste. When it comes to running projects in a Lean way, this goes far beyond the role of the Project Manager (or Scrum-master) thus requiring the right recipe of team, process, communication, work environment and pride. \n+\n+**The Raw Materials**\n+\n+ If any of these seem unreasonable, you need to take a hard look at your team and work environment. Any conccesions made here will reduce team effectviness.\n+\n+* A team well-balanced in terms of seniority - Experience is contagious !\n+* Dedicated team members - not split across multiple projects\n+* Co-located team members\n+* Smaller teams (no more 5-7) —  Once you breach this team size communication complexity increases exponentially.  \n+* Conduct retrospectives with full particpation - Always seek to get better\n+* A knowledge management strategy ensure team members know where to store/post directional artifacts that other team members require to do their job (e.g. Wireframes, PSGs, Test Cases, Context Diagrams )\n+* Use of Information Radiators — Physical views into plans (e.g. Post-Its on a whiteboards) that may supplement a digital plan view\n+\n+**1.) Breakdown the work**\n+\n+Decomposition of capabilities/features is a necessary (and somewhat painfull) evil.  However, you do not need to go to painful level of detail to create this artifact.  The importance is breadth not necessarily depth.  The depth only needs to go as far as necessary for the team to directionally understand where a feature needs to go. If a team member is able to provide some form of time estimate (Best and worst case) for one of those lower level items your low level enough. If estimates are coming out to less then 1 day you have likely gone too far.  Get the full team involved, apply the 80/20 rule in terms of completness and time-box the activity.  \n+\n+**2.) Define a Path**\n+\n+Once you have step 1 in place, work with the team to derive a chronological execution of the work driven by precieved value and/or risk/complexity of a given feature.  Front loading your risk/complexity (as long as it is somewhat high value) is very acceptable and smart approach because impact of course correction early on is much less invasive then the alternative.   Ensure a basic architecture for the overall solution is derived and communicated. This ensures that the team has a solid foundation to build upon.\n+\n+**3.) Respect the Pyramid of Constraints**\n+\n+Scope, Time and Cost —  Fundamental variables applicable to any project context.  Visibility and active monitoring of these variables is essential to ensure project success.  First and foremost, ensure that a baseline is established for each of these variables before a team even start the project. Understand how your stakeholders rate the relative importance of each of these variables and uphold the \"Rule\" that trade-offs are the only way these baselines can/will adjust.   Deferring this activity to after a project gets going can result in scope creep and cost/time over runs.  \n+\n+**4.) Hold up the mirror**\n+\n+As a PM, it’s your responsibility to hold up a mirror in front of your team that shows the good, the bad and the ugly.  This allows the team to maintain appreciation for the big picture while they do their best to work through the small one.   I am huge advocate of a plan view that I have written about in the past ([High and Mid-Level Plans](http://reefpoints.dockyard.com/2014/07/29/project-carpe-diem.html)) — Which show time, features, tasks, distribution of work across team capability areas (Design, Backend, UXD, etc.) progress made, unplanned work and deffered work that will come in later releases.  If you have this and revisit it often- consider your team informed and that those Triangle of Constraint variables are being monitored (for the most part.)\n+\n+**5.) Create an environment of ownership and accountability**\n+\n+Everyone is a player. PM’s should be servant leaders, therefore any plan created needs to be the teams plan not he PM’s (or Sr. Mgmt.)  This way the team has accountability and ownership rights over what ever happens to the plan.  If something is not going as planned the team can understand the implications of this and course correct and work to reveal why something my not be working out.  Constant readjustment and calibration is required to keep things moving along. The project manger helps ensure these conversations happen.\n+\n+No team member can slip into the shadows. To be successful every contributor needs to have a voice.  A PM needs to put their “Facilitation” hats on and ensure they proactvily encourage all to participate and chime in on team affairs… That’s the beauty of teams, they succeed together not as single entities.  ","path":"source/posts/2015-03-19-lean-project-management.md","position":47,"original_position":47,"commit_id":"762f217cc7f68902c54a76db341c77f786a55408","original_commit_id":"762f217cc7f68902c54a76db341c77f786a55408","user":{"login":"rgbcolor","id":6465236,"avatar_url":"https://avatars.githubusercontent.com/u/6465236?v=3","gravatar_id":"","url":"https://api.github.com/users/rgbcolor","html_url":"https://github.com/rgbcolor","followers_url":"https://api.github.com/users/rgbcolor/followers","following_url":"https://api.github.com/users/rgbcolor/following{/other_user}","gists_url":"https://api.github.com/users/rgbcolor/gists{/gist_id}","starred_url":"https://api.github.com/users/rgbcolor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rgbcolor/subscriptions","organizations_url":"https://api.github.com/users/rgbcolor/orgs","repos_url":"https://api.github.com/users/rgbcolor/repos","events_url":"https://api.github.com/users/rgbcolor/events{/privacy}","received_events_url":"https://api.github.com/users/rgbcolor/received_events","type":"User","site_admin":false},"body":"\"they succeed together not as single entities.\"\r\nthe word entities seems to point to teams here, but I think you meant \"single individuals\"?","created_at":"2015-03-19T19:38:40Z","updated_at":"2015-03-19T19:38:40Z","html_url":"https://github.com/dockyard/reefpoints/pull/310#discussion_r26789843","pull_request_url":"https://api.github.com/repos/dockyard/reefpoints/pulls/310","_links":{"self":{"href":"https://api.github.com/repos/dockyard/reefpoints/pulls/comments/26789843"},"html":{"href":"https://github.com/dockyard/reefpoints/pull/310#discussion_r26789843"},"pull_request":{"href":"https://api.github.com/repos/dockyard/reefpoints/pulls/310"}}},"pull_request":{"url":"https://api.github.com/repos/dockyard/reefpoints/pulls/310","id":31546438,"html_url":"https://github.com/dockyard/reefpoints/pull/310","diff_url":"https://github.com/dockyard/reefpoints/pull/310.diff","patch_url":"https://github.com/dockyard/reefpoints/pull/310.patch","issue_url":"https://api.github.com/repos/dockyard/reefpoints/issues/310","number":310,"state":"open","locked":false,"title":"Create 2015-03-19-lean-project-management.md","user":{"login":"jonlacks","id":6575390,"avatar_url":"https://avatars.githubusercontent.com/u/6575390?v=3","gravatar_id":"","url":"https://api.github.com/users/jonlacks","html_url":"https://github.com/jonlacks","followers_url":"https://api.github.com/users/jonlacks/followers","following_url":"https://api.github.com/users/jonlacks/following{/other_user}","gists_url":"https://api.github.com/users/jonlacks/gists{/gist_id}","starred_url":"https://api.github.com/users/jonlacks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonlacks/subscriptions","organizations_url":"https://api.github.com/users/jonlacks/orgs","repos_url":"https://api.github.com/users/jonlacks/repos","events_url":"https://api.github.com/users/jonlacks/events{/privacy}","received_events_url":"https://api.github.com/users/jonlacks/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-03-19T17:30:41Z","updated_at":"2015-03-19T19:38:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"02c178240a32d1671a9a55bf2bc05c606ff6af3f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dockyard/reefpoints/pulls/310/commits","review_comments_url":"https://api.github.com/repos/dockyard/reefpoints/pulls/310/comments","review_comment_url":"https://api.github.com/repos/dockyard/reefpoints/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dockyard/reefpoints/issues/310/comments","statuses_url":"https://api.github.com/repos/dockyard/reefpoints/statuses/762f217cc7f68902c54a76db341c77f786a55408","head":{"label":"dockyard:Lean-Project-Management-Blog","ref":"Lean-Project-Management-Blog","sha":"762f217cc7f68902c54a76db341c77f786a55408","user":{"login":"dockyard","id":873981,"avatar_url":"https://avatars.githubusercontent.com/u/873981?v=3","gravatar_id":"","url":"https://api.github.com/users/dockyard","html_url":"https://github.com/dockyard","followers_url":"https://api.github.com/users/dockyard/followers","following_url":"https://api.github.com/users/dockyard/following{/other_user}","gists_url":"https://api.github.com/users/dockyard/gists{/gist_id}","starred_url":"https://api.github.com/users/dockyard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dockyard/subscriptions","organizations_url":"https://api.github.com/users/dockyard/orgs","repos_url":"https://api.github.com/users/dockyard/repos","events_url":"https://api.github.com/users/dockyard/events{/privacy}","received_events_url":"https://api.github.com/users/dockyard/received_events","type":"Organization","site_admin":false},"repo":{"id":2262874,"name":"reefpoints","full_name":"dockyard/reefpoints","owner":{"login":"dockyard","id":873981,"avatar_url":"https://avatars.githubusercontent.com/u/873981?v=3","gravatar_id":"","url":"https://api.github.com/users/dockyard","html_url":"https://github.com/dockyard","followers_url":"https://api.github.com/users/dockyard/followers","following_url":"https://api.github.com/users/dockyard/following{/other_user}","gists_url":"https://api.github.com/users/dockyard/gists{/gist_id}","starred_url":"https://api.github.com/users/dockyard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dockyard/subscriptions","organizations_url":"https://api.github.com/users/dockyard/orgs","repos_url":"https://api.github.com/users/dockyard/repos","events_url":"https://api.github.com/users/dockyard/events{/privacy}","received_events_url":"https://api.github.com/users/dockyard/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dockyard/reefpoints","description":"DockYard Blog","fork":false,"url":"https://api.github.com/repos/dockyard/reefpoints","forks_url":"https://api.github.com/repos/dockyard/reefpoints/forks","keys_url":"https://api.github.com/repos/dockyard/reefpoints/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dockyard/reefpoints/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dockyard/reefpoints/teams","hooks_url":"https://api.github.com/repos/dockyard/reefpoints/hooks","issue_events_url":"https://api.github.com/repos/dockyard/reefpoints/issues/events{/number}","events_url":"https://api.github.com/repos/dockyard/reefpoints/events","assignees_url":"https://api.github.com/repos/dockyard/reefpoints/assignees{/user}","branches_url":"https://api.github.com/repos/dockyard/reefpoints/branches{/branch}","tags_url":"https://api.github.com/repos/dockyard/reefpoints/tags","blobs_url":"https://api.github.com/repos/dockyard/reefpoints/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dockyard/reefpoints/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dockyard/reefpoints/git/refs{/sha}","trees_url":"https://api.github.com/repos/dockyard/reefpoints/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dockyard/reefpoints/statuses/{sha}","languages_url":"https://api.github.com/repos/dockyard/reefpoints/languages","stargazers_url":"https://api.github.com/repos/dockyard/reefpoints/stargazers","contributors_url":"https://api.github.com/repos/dockyard/reefpoints/contributors","subscribers_url":"https://api.github.com/repos/dockyard/reefpoints/subscribers","subscription_url":"https://api.github.com/repos/dockyard/reefpoints/subscription","commits_url":"https://api.github.com/repos/dockyard/reefpoints/commits{/sha}","git_commits_url":"https://api.github.com/repos/dockyard/reefpoints/git/commits{/sha}","comments_url":"https://api.github.com/repos/dockyard/reefpoints/comments{/number}","issue_comment_url":"https://api.github.com/repos/dockyard/reefpoints/issues/comments{/number}","contents_url":"https://api.github.com/repos/dockyard/reefpoints/contents/{+path}","compare_url":"https://api.github.com/repos/dockyard/reefpoints/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dockyard/reefpoints/merges","archive_url":"https://api.github.com/repos/dockyard/reefpoints/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dockyard/reefpoints/downloads","issues_url":"https://api.github.com/repos/dockyard/reefpoints/issues{/number}","pulls_url":"https://api.github.com/repos/dockyard/reefpoints/pulls{/number}","milestones_url":"https://api.github.com/repos/dockyard/reefpoints/milestones{/number}","notifications_url":"https://api.github.com/repos/dockyard/reefpoints/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dockyard/reefpoints/labels{/name}","releases_url":"https://api.github.com/repos/dockyard/reefpoints/releases{/id}","created_at":"2011-08-24T16:55:40Z","updated_at":"2015-03-18T18:39:31Z","pushed_at":"2015-03-19T19:21:21Z","git_url":"git://github.com/dockyard/reefpoints.git","ssh_url":"git@github.com:dockyard/reefpoints.git","clone_url":"https://github.com/dockyard/reefpoints.git","svn_url":"https://github.com/dockyard/reefpoints","homepage":"http://reefpoints.dockyard.com","size":75776,"stargazers_count":31,"watchers_count":31,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":58,"mirror_url":null,"open_issues_count":10,"forks":58,"open_issues":10,"watchers":31,"default_branch":"master"}},"base":{"label":"dockyard:master","ref":"master","sha":"1ddca46dabb6bcc7aa8cd33a4324a84559ed7e4c","user":{"login":"dockyard","id":873981,"avatar_url":"https://avatars.githubusercontent.com/u/873981?v=3","gravatar_id":"","url":"https://api.github.com/users/dockyard","html_url":"https://github.com/dockyard","followers_url":"https://api.github.com/users/dockyard/followers","following_url":"https://api.github.com/users/dockyard/following{/other_user}","gists_url":"https://api.github.com/users/dockyard/gists{/gist_id}","starred_url":"https://api.github.com/users/dockyard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dockyard/subscriptions","organizations_url":"https://api.github.com/users/dockyard/orgs","repos_url":"https://api.github.com/users/dockyard/repos","events_url":"https://api.github.com/users/dockyard/events{/privacy}","received_events_url":"https://api.github.com/users/dockyard/received_events","type":"Organization","site_admin":false},"repo":{"id":2262874,"name":"reefpoints","full_name":"dockyard/reefpoints","owner":{"login":"dockyard","id":873981,"avatar_url":"https://avatars.githubusercontent.com/u/873981?v=3","gravatar_id":"","url":"https://api.github.com/users/dockyard","html_url":"https://github.com/dockyard","followers_url":"https://api.github.com/users/dockyard/followers","following_url":"https://api.github.com/users/dockyard/following{/other_user}","gists_url":"https://api.github.com/users/dockyard/gists{/gist_id}","starred_url":"https://api.github.com/users/dockyard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dockyard/subscriptions","organizations_url":"https://api.github.com/users/dockyard/orgs","repos_url":"https://api.github.com/users/dockyard/repos","events_url":"https://api.github.com/users/dockyard/events{/privacy}","received_events_url":"https://api.github.com/users/dockyard/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dockyard/reefpoints","description":"DockYard Blog","fork":false,"url":"https://api.github.com/repos/dockyard/reefpoints","forks_url":"https://api.github.com/repos/dockyard/reefpoints/forks","keys_url":"https://api.github.com/repos/dockyard/reefpoints/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dockyard/reefpoints/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dockyard/reefpoints/teams","hooks_url":"https://api.github.com/repos/dockyard/reefpoints/hooks","issue_events_url":"https://api.github.com/repos/dockyard/reefpoints/issues/events{/number}","events_url":"https://api.github.com/repos/dockyard/reefpoints/events","assignees_url":"https://api.github.com/repos/dockyard/reefpoints/assignees{/user}","branches_url":"https://api.github.com/repos/dockyard/reefpoints/branches{/branch}","tags_url":"https://api.github.com/repos/dockyard/reefpoints/tags","blobs_url":"https://api.github.com/repos/dockyard/reefpoints/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dockyard/reefpoints/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dockyard/reefpoints/git/refs{/sha}","trees_url":"https://api.github.com/repos/dockyard/reefpoints/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dockyard/reefpoints/statuses/{sha}","languages_url":"https://api.github.com/repos/dockyard/reefpoints/languages","stargazers_url":"https://api.github.com/repos/dockyard/reefpoints/stargazers","contributors_url":"https://api.github.com/repos/dockyard/reefpoints/contributors","subscribers_url":"https://api.github.com/repos/dockyard/reefpoints/subscribers","subscription_url":"https://api.github.com/repos/dockyard/reefpoints/subscription","commits_url":"https://api.github.com/repos/dockyard/reefpoints/commits{/sha}","git_commits_url":"https://api.github.com/repos/dockyard/reefpoints/git/commits{/sha}","comments_url":"https://api.github.com/repos/dockyard/reefpoints/comments{/number}","issue_comment_url":"https://api.github.com/repos/dockyard/reefpoints/issues/comments{/number}","contents_url":"https://api.github.com/repos/dockyard/reefpoints/contents/{+path}","compare_url":"https://api.github.com/repos/dockyard/reefpoints/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dockyard/reefpoints/merges","archive_url":"https://api.github.com/repos/dockyard/reefpoints/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dockyard/reefpoints/downloads","issues_url":"https://api.github.com/repos/dockyard/reefpoints/issues{/number}","pulls_url":"https://api.github.com/repos/dockyard/reefpoints/pulls{/number}","milestones_url":"https://api.github.com/repos/dockyard/reefpoints/milestones{/number}","notifications_url":"https://api.github.com/repos/dockyard/reefpoints/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dockyard/reefpoints/labels{/name}","releases_url":"https://api.github.com/repos/dockyard/reefpoints/releases{/id}","created_at":"2011-08-24T16:55:40Z","updated_at":"2015-03-18T18:39:31Z","pushed_at":"2015-03-19T19:21:21Z","git_url":"git://github.com/dockyard/reefpoints.git","ssh_url":"git@github.com:dockyard/reefpoints.git","clone_url":"https://github.com/dockyard/reefpoints.git","svn_url":"https://github.com/dockyard/reefpoints","homepage":"http://reefpoints.dockyard.com","size":75776,"stargazers_count":31,"watchers_count":31,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":58,"mirror_url":null,"open_issues_count":10,"forks":58,"open_issues":10,"watchers":31,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dockyard/reefpoints/pulls/310"},"html":{"href":"https://github.com/dockyard/reefpoints/pull/310"},"issue":{"href":"https://api.github.com/repos/dockyard/reefpoints/issues/310"},"comments":{"href":"https://api.github.com/repos/dockyard/reefpoints/issues/310/comments"},"review_comments":{"href":"https://api.github.com/repos/dockyard/reefpoints/pulls/310/comments"},"review_comment":{"href":"https://api.github.com/repos/dockyard/reefpoints/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dockyard/reefpoints/pulls/310/commits"},"statuses":{"href":"https://api.github.com/repos/dockyard/reefpoints/statuses/762f217cc7f68902c54a76db341c77f786a55408"}}}}