From 14e565c1ddc860d0549e8fd53f213e5a61f32fea Mon Sep 17 00:00:00 2001 From: David Keyes Date: Tue, 9 Apr 2024 11:01:11 -0700 Subject: [PATCH] Updates --- _quarto.yml | 4 ++- consulting-client-communication.qmd | 12 +++++++++ consulting-project-management.qmd | 38 +++++++++++++++++++++++++++++ consulting-proposals.qmd | 27 ++++++++++++++++++++ project-management.qmd | 24 ------------------ 5 files changed, 80 insertions(+), 25 deletions(-) create mode 100644 consulting-client-communication.qmd create mode 100644 consulting-project-management.qmd create mode 100644 consulting-proposals.qmd delete mode 100644 project-management.qmd diff --git a/_quarto.yml b/_quarto.yml index 23d498d..b7a73c4 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -52,7 +52,9 @@ website: - section: "Consulting" contents: - consulting-overview.qmd - - project-management.qmd + - consulting-proposals.qmd + - consulting-project-management.qmd + - consulting-client-communication.qmd - section: "Code" contents: - code-style.qmd diff --git a/consulting-client-communication.qmd b/consulting-client-communication.qmd new file mode 100644 index 0000000..e4a898d --- /dev/null +++ b/consulting-client-communication.qmd @@ -0,0 +1,12 @@ +--- +title: "Client Communication" +--- + +The most important thing we can do is communicate effectively and regularly. This means getting back to clients within 24 hours. + +The type of communication we use with clients depends on the client. + +- If clients are comfortable working in GtiHub and we decide it is appropriate to have them collaborate on GitHub, feel free to add them to the repo. +- If they don't want to work in GitHub (most don't), email is generally best. + +I generally try to send clients updates by email about overall progress every 1-2 weeks to make sure they know what's going on and see if they have any questions. diff --git a/consulting-project-management.qmd b/consulting-project-management.qmd new file mode 100644 index 0000000..34e7d45 --- /dev/null +++ b/consulting-project-management.qmd @@ -0,0 +1,38 @@ +--- +title: "Project Management" +--- + +## Overview + +We use three primary tools for project management: + +1. GitHub to manage code and issues +2. Linear to set internal due dates and have internal discussions about issues +3. Twist to have general discussions about projects + +## GitHub + +Create a **GitHub repo** (set to private unless the client is ok with it being public): + +- Use the **README** to lay out the overall project scope, deliverables, deadlines, etc. +- Use **issues** to manage code-related questions at a granular level. + +## Linear + +We use Lienar for project management. After creating a new repo in GitHub, create a new associated project in Linear. You'll then want to link the GitHub repo to Linear using the GitHub integration. This will ensure that all issues and associated discussions on GitHub also show up in Linear. Issues added in GitHub will show up in the Triage section on Linear and you'll need to move them manually to the right project. You cannot add issues from Linear to GitHub. + +By bringing in issues to Linear, we also get to add additional metadata to issues to help us manage things. Specifically, we use: + +1. **Due dates** to show when an issue is due +1. **Status** to show what is happening with an issue +1. **Estimates** to show how much work an issue is +1. **Cycles**, which for our purposes just enables David to see what work is happening in which week + +For larger projects, we can create **milestones** and set due dates for the milestones. This allows us to get an overview of upcoming milestones when looking at projects in a Gantt-style view. + +When creating a new project in Linear, also set a **project lead**. Doing so will set a reminder every Friday at 8am Pacific for them to post an update about how things are going with the project. When posting this update, please also post about the project health using the built-in tool for that. + +## Twist + +Create a thread in the #consulting channel on Twist for the project. This is a good place for things we'd like to keep confidential and general updates (because we work more and more with clients directly in GitHub, that isn't the best place for confidential discussions). + diff --git a/consulting-proposals.qmd b/consulting-proposals.qmd new file mode 100644 index 0000000..d70880b --- /dev/null +++ b/consulting-proposals.qmd @@ -0,0 +1,27 @@ +--- +title: "Proposals" +--- + +## Initial Call + +Most consulting projects begin with an initial call. This is usually a 30-minute call to learn more about the client's needs and figure out whether we are a good fit to help them. + +## Proposals + +If we are a good fit, we follow up by putting together a proposal. Usually, this involves asking additional questions by email and, possibly, another call. + +To write a proposal, we first create a new project in Linear and add it to the Proposal roadmap. From there, we create a new document using the Proposal Outline template. + +One thing we have done in the past is to share a draft version of the proposal with clients for their feedback. This enables them to provide feedback and ensures we are meeting their needs. To do this, copy the proposal from Linear (minus the pricing info) into a Google Doc and share it with the client. + +Once proposals are ready to be sent, copy them into PandaDoc and send them. + +## Items to Include in Proposals + +- Specific scope +- Specific timeline +- Requirements of us (getting back to client, timeframe for sending updates, etc) +- Requirements of client (get back to us within certain time frame etc) +- Pricing +- Language about needing to adjust pricing if scope/timeline changes + diff --git a/project-management.qmd b/project-management.qmd deleted file mode 100644 index 8be7a06..0000000 --- a/project-management.qmd +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Project Management" ---- - -## Overview - -Create a **GitHub repo** (set to private unless the client is ok with it being public): - -- Use the **README** to lay out the overall project scope, deliverables, deadlines, etc. -- Use **issues** to manage code-related questions at a granular level. -- If the project is large enough, use **milestones**. - -Create a thread in the #consulting channel on Twist for the project. This is a good place for things we'd like to keep confidential (because we work more and more with clients directly in GitHub, that isn't the best place for confidential discussions). Communicate updates on overall progress with David using Twist. An update once a week or so is helpful. - -## Client Communication - -The most important thing we can do is communicate effectively and regularly. This means getting back to clients within 24 hours. - -The type of communication we use with clients depends on the client. - -- If clients are comfortable working in GtiHub and we decide it is appropriate to have them collaborate on GitHub, feel free to add them to the repo. -- If they don't want to work in GitHub (most don't), email is generally best. - -I generally try to send clients updates by email about overall progress every 1-2 weeks to make sure they know what's going on and see if they have any questions.