├── .gitignore ├── .vscode └── settings.json ├── README.md ├── communication_skills ├── proposals_presentations_storytelling.md └── team_sell_interview.md ├── getting-started ├── holistic_approach_to_leadership.md ├── mentoring_a_new_hire.md ├── mentoring_a_new_mentor.md ├── understanding_people.md └── user_manual_for_you.md ├── management_processes ├── career_growth_plans.md └── pip.md ├── media ├── IMG_4914.jpg ├── IMG_7287.jpg ├── IMG_7288.jpg ├── Image from iOS (1).jpg ├── Image from iOS (2).jpg ├── Image from iOS (3).jpg ├── Image from iOS (4).jpg ├── Image from iOS (5).jpg ├── Image from iOS (6).jpg ├── Image from iOS (7).jpg ├── Image from iOS (8).jpg ├── Image from iOS.jpg ├── Image from iOS.png ├── [template]_formulating_a_proposal.pdf ├── basicBulletJournal.png ├── beautifulBulletJournal.png ├── carriedAway.png ├── status_update_slide.png └── storytelling.png ├── productivity ├── bullet_journaling_for_adhd.md └── documentation_culture.md └── software-design_cs_and_engineering ├── Release_Branching Strategy.png ├── code-reviews.md ├── engineering_design_principles.md └── the_pyramid_of_basic_coding_principles.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Processes, Systems, Philosophies, and Mentorship 2 | 3 | This repo has an assortment of some of my favorite articles I use regularly as a leader. 4 | 5 | ## Some of my favorite articles 6 | 7 | ### Leadership and Getting Started 8 | - [Holistic Approach to Leadership](https://github.com/knitcodemonkey/processes/blob/master/getting-started/holistic_approach_to_leadership.md) 9 | - [User Manual for You](https://github.com/knitcodemonkey/processes/blob/master/getting-started/user_manual_for_you.md) 10 | 11 | ### Workflow Processes 12 | - [Bullet Journaling for Work (and ADHD)](https://github.com/knitcodemonkey/processes/blob/master/productivity/bullet_journaling_for_adhd.md) 13 | - [Documentation Culture](https://github.com/knitcodemonkey/processes/blob/master/productivity/documentation_culture.md) 14 | - [Proposals, Presentations, and Storytelling](https://github.com/knitcodemonkey/processes/blob/master/communication_skills/proposals_presentations_storytelling.md) 15 | 16 | ### Engineering Principles 17 | - [Engineering Design Principles](https://github.com/knitcodemonkey/processes/blob/master/software-design_cs_and_engineering/engineering_design_principles.md) 18 | - [Code Reviews](https://github.com/knitcodemonkey/processes/blob/master/software-design_cs_and_engineering/code-reviews.md) 19 | - [Pyramid of Basic Coding Principles](https://github.com/knitcodemonkey/processes/blob/master/software-design_cs_and_engineering/the_pyramid_of_basic_coding_principles.md) 20 | 21 | ### Management 22 | - [Team Sell Interview](https://github.com/knitcodemonkey/processes/blob/master/communication_skills/team_sell_interview.md) 23 | 24 | -------------------------------------------------------------------------------- /communication_skills/proposals_presentations_storytelling.md: -------------------------------------------------------------------------------- 1 | # Proposals, Presentations, and Storytelling 2 | 3 | ![Storytelling, a primitive art, is as old as the beginning of mankind. People want to receive what's out there in the form of stories, not just facts, opionion, analysis. ~ Lee Gutkind](/media/storytelling.png) 4 | 5 | > Storytelling, a primitive art, is as old as the beginning of mankind. People want to receive what's out there in the form of stories, not just facts, opionion, analysis. ~ Lee Gutkind 6 | 7 | - Define the one sentence you want everyone to remember after the presentation is over. 8 | - Write this down on a sticky note, and keep it front and center when designing slides 9 | - If the information doesn’t directly correlate with that sentence, or move the story forward, delete it 10 | - Groups of 3 11 | - Humans can only remember a max of 5 things at a time, with the ideal number being closer to 3 12 | - Have no more than 3 main points with no more than 3 sub-points. 13 | - Add your data sources and references to the presenter notes 14 | - You don’t need to put them on the screen. This will help you access that data easily when questions are asked, but save space on the slides, and audience mental capacity for more important info. 15 | 16 | ## Template for Formulating a Presentation Proposal 17 | 18 | [PDF Template - Formulating a Proposal](/media/[template]_formulating_a_proposal.pdf) 19 | 20 | - “The problem I intend to solve” 21 | - How we viewed this in the past 22 | - “Following my analysis, this is why I would approach solving the problem differently.” 23 | - “I will work with teams to...”-my plan; how I intent to solve the problem 24 | - “I would recommend...“-my requirements for this being successful and approachable 25 | - Benefits/wins/how this positions the company 26 | 27 | ## Questions to ask when planning a new project 28 | 29 | - What is the problem we are trying to solve? 30 | - Do we have data to support that this problem exists, needs solving, and needs solving now? 31 | - How does this idea solve this problem? 32 | - Do we have data to support that this idea is the right solution? 33 | - How long will it take to see the Return On Investment (ROI)? 34 | - Is it more cost-effective to patch the acute problem, or to solve the underlying issue? 35 | - What is the MVP (Minimum Viable Product)? What is the MDP(Minimum Delightful Product)? 36 | - Minimum Viable Product 37 | - The tiniest prototype possible. Ugly, barely functions. Proof of concept. 38 | - If you aren’t having to add requirements back in, you aren’t deleting enough. 39 | - Minimum Delightful Product 40 | - The smallest product where the customer finds it less frustrating to use than to not use it. 41 | - Releasable to customers (internal or external) 42 | 43 | ## The Model, Document, Share Approach 44 | 45 | From [An Elegant Puzzle: Systems of Engineering Management](https://lethian.com/elegant-puzzle), this approach is useful for testing ideas and socializing approaches in a way that allows other teams to opt into learning from you. It optimizes for getting things right over doing them quickly, and as such is less useful for mandating practices to teams, which typically wants speed with a reduced focus on pinning down exactly the right practices. Read the original article here: [Model, document and share.](https://lethain.com/model-document-share/) 46 | 47 | ### Model 48 | 49 | Identify a gap in your team that you want a new tool or process to solve. Try to create a baseline metric illustrating where you are today, which you’d like to improve. Adopt the practice or tool in your team, taking care to watch your metric for improvements. Give your experiment enough time to prove itself, but pay attention to what matters and revert the experiment if you’ve collected enough information that suggests that it’s not helping. 50 | 51 | ### Document 52 | 53 | Write up, in detail, the problem you had, how you approached your adoption and test, and the steps that other teams ought to follow to also adopt. Ask members of other teams to review the document for understandability. 54 | 55 | ### Share 56 | 57 | Share your document and experiences with others in some sort of public fashion. Let the appropriate people know about it, but do not ask anyone else to adopt it or lobby for the organization at large to mandate it. What worked for you may be a poor fit for other areas of the business. If others see the same constraints in their world that you saw in yours, they’ll be eager to learn from your approach. 58 | 59 | ## Slide Framework 60 | 61 | [Jasper Polak on Twitter](https://twitter.com/polak_jasper/status/1550816018158833667) 62 | 63 | Example of a Status Update slide 64 | 65 | ![Example of a Status Update Slide](/media/status_update_slide.png) 66 | -------------------------------------------------------------------------------- /communication_skills/team_sell_interview.md: -------------------------------------------------------------------------------- 1 | # Team Sell Interview 2 | 3 | The fine art of airing The Company’s dirty laundry, while also making it clear why we stay. 4 | 5 | The scorecard for this interview will likely be a single text box, and a hire yes/no. This focuses on them and their questions. 6 | 7 | Signals: All of the other interviews focus on whether the candidate fits The Company, but this interview should focus on whether The Company fits the candidate. We need them, they don’t necessarily need us. Let’s make sure we fit their goals. 8 | 9 | These questions are here as examples if there is a lull in the conversation. They are meant to flesh out the similarities and differences between The Company and what the candidate is looking for in their next role. If we match, talk it up! If we don’t, make sure the candidate knows what situation they would be walking into. Be honest! Tell them about where we are, not just where we want to be. 10 | 11 | This is the place where the candidate can truly feel the truth behind “transparency” and “caring for our people.” Though some of these questions may sound unprofessional, that is the point. It Disarms their defensiveness, gets them to relax, and helps them recognize this conversation is real, honest, and gritty. You are the friend that gives them the truth. 12 | 13 | If a candidate still chooses The Company knowing what adventures and pitfalls await them, they are signing up to help. They are far more likely to stay with us longer. They are more invested in the growth of The Company, the technology, and their team. 14 | 15 | --- 16 | 17 | ## Questions to figure out what they do and don’t want in their next role: 18 | 19 | - What inspires you to be at your best? 20 | - What frustrates you, and reduces your productivity? 21 | - What support do you need from your leadership team, your boss most specifically? 22 | - How do you give feedback to your leadership team? Managing up is celebrated here. 23 | - What sort of politics gets under your skin and makes you take your ball and go home? 24 | - What is the role of a PM on your team? QA? Design? Devops? 25 | - What processes/support/camaraderie do you want from your team? 26 | - Explain the role of a very accountable stakeholder, how they fall into the ecosystem at The Company, and how they influence project decisions. Is this something they will be okay with? 27 | - What are you looking to avoid in your next role? 28 | - What are you looking to accomplish in your next role? 29 | - Is there a particular process you hate with every fiber of your being that you’d like to never have to deal with again? 30 | 31 | ## Things you should share with the candidate: 32 | 33 | - What would make me quit? 34 | - My pet peeves about The Company. 35 | - What experiences do they have that were different? 36 | - Bounce ideas around on how you two could work together to solve them 37 | - Get them invested in seeing out the solutions before they even finish the hiring process. 38 | - What makes up for the down sides? Why do I stay? 39 | 40 | ## Optional Last Questions: 41 | 42 | - What are your concerns about joining The Company? 43 | - What situations sound like they aren’t a good fit, and why? 44 | - If they nail the issue spot on, then admit it. Better to cut a candidate loose now, than to hire them, onboard them, and lose them shortly after. 45 | - If they got the wrong impression, correct it. 46 | - What would make you decide to join us anyway? 47 | - What makes up for those deficits? 48 | - What do you like about The Company? 49 | 50 | ## Great questions that would work for the end of any interview in the process: 51 | 52 | - Do you have any feedback about this interview or the hiring process? How could we have made the experience better? 53 | - What question do you wish we had asked? 54 | - If you could go back and change an answer to a question, what would you like to say instead? 55 | -------------------------------------------------------------------------------- /getting-started/holistic_approach_to_leadership.md: -------------------------------------------------------------------------------- 1 |

Holistic Approach to Leadership

2 | 3 | People often seek out mentors to help them develop a specific aspect of their career, but as mentors, we need to recognize that we are mentoring people, not just that specific aspect. When work is stressful, home is impacted. Conversely, when home is doing well, work may be particularly productive. 4 | 5 | Understanding how the whole person is faring prevents mentors from doing more harm than good. 6 | 7 | Developing the relationship is the most important aspect of a mentor’s job. Just like a therapist, if the relationship is developed when life is good, when life isn’t good, the trust exists to confidently share and confront the challenges as they come. Addressing issues early, and often, keeps any of them from becoming too big to be insurmountable. That can’t happen, effectively, without trust in the relationship. 8 | 9 | If a mentor focuses only on the specific aspect, like a programming language or technology, then the mentee will only approach them with that specific aspect. Instead, they'll see it as part of their job and overwhelm themselves trying to fulfill the required tasks. They may not be willing to say "I'm stressed out about this thing at home, so I don't think I can take on the homework this week." They may not say, “I’m already overwhelmed by the complexity of this other ticket. Can you pair with me on it instead of what we had planned?” 10 | 11 | Understanding the capabilities and load of the person enables mentors to set reasonable expectations, coach them through difficult times, cheer them through good times, and work together to achieve the desired growth. Sometimes, it is more important to spend a 1:1 giving space for the mentee to vent about their worries about their family member’s health than to teach a new concept. Occasionally, the lesson is the distraction a mentee needs to take a break from home. Rarely, a mentor needs to point out that a mentee is harming their career due to a poor work and life balance and/or condition, and help the mentee and their manager identify a path moving forward to recuperate and recover. 12 | 13 | We are familiar with the concept that mentors can encourage a mentee when they are going through a rough patch, but an aspect that is overlooked in mentorship is helping the mentee understand that nobody can maintain peak performance for long. Going above and beyond is great, but if you maintain it for too long, it stops being above and beyond, and becomes the expected level of performance. It is not only okay, but healthy, to be “average” with periods of highs and lows. Slow and steady wins the race. 14 | 15 | Mentorship is a powerful tool. If we consider the mentee as a whole person, mentors can act as teachers, coaches, advocates, supporters, cheerleaders and sponsors. Mentors and mentees will both grow from the relationship. 16 | 17 |

Additional Reading

18 | 19 | https://ashleemboyer.com//blog/what-a-jar-of-buttons-is-teaching-me-about-trust 20 | 21 | https://www.nav.com/blog/kicked-dog-syndrome-company-culture-10865/ 22 | 23 | https://www.youtube.com/watch?v=DWLoasvaFb8 24 | -------------------------------------------------------------------------------- /getting-started/mentoring_a_new_hire.md: -------------------------------------------------------------------------------- 1 | # Mentoring a New Hire 2 | 3 | by Jen Luker and Shaine Hatch 4 | 5 | You will be the first experience that this new employee will have at Nav. Keep in mind that you’re representing Nav, your organization and your team. This will likely be the most memorable experience for them at Nav, and it’s your responsibility to make it a good memory. 6 | 7 | ## Expectations 8 | 9 | ### Prepare for their arrival 10 | 11 | - What day will they start? 12 | - When will they have their equipment? 13 | - How will we meet? 14 | - In person? 15 | - Zoom? 16 | - Will they have access to the systems? 17 | 18 | Answers to these questions will come from the hiring manager. As you review the onboarding schedule you’ll see the Pre-Onboarding steps that happen in preparation for their first day. It is expected that you will make sure they are invited to the meetings listed in the https://navinc.atlassian.net/wiki/spaces/ENG/pages/1495793708. Work with their manager if they need to be added to any meetings. 19 | 20 | ### Help them Create a Plan 21 | 22 | > “If you Fail to Plan, You are Planning to Fail” – Benjamin Franklin 23 | 24 | It’s important that the mentor and mentee have goals and a plan for growth. One way to do that is with a 30/60/90 plan. We have created a 30/60/90 Template that you can use. This is a tool that you can use to help build the plan. Not all personalities will work well with something this detailed. In some cases it can create a lot of anxiety and stress. Be aware of that and shape the plan accordingly. Work with your leadership team to help determine other ways to create and track the plan. 25 | 26 | ### Tribe/Discipline Onboarding Playbook 27 | 28 | Find time during the first week (usually their 2nd day) to go over the information specific to their Tribe/Discipline. You can find the playbooks specific for that in the Engineering Onboarding Playbook Section 3 29 | 30 | ### Team Onboarding Playbook 31 | 32 | Take them through the playbook specific to their team, if one exists. If one doesn’t, then start one together. This should introduce them to their backlog, the way that the team works, estimates and communicates. 33 | 34 | ### Have a project ready for them to work on 35 | 36 | Have a project ready for them to work on. This could be appropriate tasks from the backlog, or it could be pairing with you on the work that you are assigned. 37 | 38 | ### Have them present on their work 39 | 40 | We have bi-weekly company demos. Help them to prepare a demo for the work that they have completed during their first days/weeks at Nav. 41 | 42 | ### Encourage them to ask questions 43 | 44 | Help them to understand how code is delivered on the team. Allow them to spend some time working on tasks and check on them often to see if they have any questions. It can be hard for them to feel comfortable asking questions at the start. Listen carefully and respectfully to all their questions and answer them sincerely. Remember that you’re responsible for setting them up for success. This is an opportunity for you to see your company through fresh eyes. 45 | 46 | ### Review Company Jargon with them 47 | 48 | As is the case in most companies, we have developed a bit of our own language here at Nav. Take them through the https://navinc.atlassian.net/wiki/spaces/GSAN/pages/1314488533 and help them feel comfortable with the language their going to be hearing each day. 49 | 50 | ### Update the onboarding docs 51 | 52 | The onboarding documents, including this one, are only as good as we make them. As you spend time going through them, take the opportunity to improve them. Fix where there are mistakes, add to them where you find information that can benefit those future employees. 53 | 54 | ## Introduce them to the Company 55 | 56 | Take the time as you’re working and bring the new employee up to speed at Nav to introduce them to people at the company. Who does the design work, who are our engineering, product and marketing leaders? Bring them into some of your networks to help them become acclimated with Nav quickly. 57 | 58 | Week 1 59 | 60 | - Onboarding into the company 61 | 62 | Week 2 63 | 64 | - Onboarding into their code bases 65 | 66 | Week 3 67 | 68 | - Pairing sessions and helping your mentee find the appropriate resources/people (Especially if it is a cross team mentorship) 69 | 70 | First 30 days 71 | 72 | - Familiar with their team 73 | 74 | - A method a mentor can employ is to devise a “20 questions game” with their mentee. However, it’s important that the questions in place aren’t all work related. Mentors should take the opportunity to better understand their mentee (and vice versa) by asking more personal questions or even asking what their “work love language is”. 75 | 76 | - Words of Affirmation = Feedback + Mentorship 77 | - Quality Time = Workplace Bonding 78 | - Receiving Gifts = New Opportunities + Challenges 79 | - Acts of Service = Support 80 | - Physical Touch = Encouraging Touchpoints 81 | 82 | First 60 days 83 | 84 | First 90 days 85 | 86 | ## Expectations about relationship 87 | 88 | - What is the level of effort expected before requesting help? 89 | - How much time is committed to the relationship? 90 | - Who must be prepared with what before discussions? 91 | - How should we expect to work together? (Pairing etc) 92 | - How much time should we set aside to dedicate to meeting, how often? 93 | -------------------------------------------------------------------------------- /getting-started/mentoring_a_new_mentor.md: -------------------------------------------------------------------------------- 1 | # Mentoring a New Mentor 2 | 3 | ## Articles and Resources 4 | 5 | - [Addressing skills gaps for senior engineers](https://leaddev.com/mentoring-coaching-feedback/addressing-skills-gaps-senior-engineers) 6 | - [Developers mentoring other developers: practices I've seen work well](https://blog.pragmaticengineer.com/developers-mentoring-other-developers/) 7 | - [What does sponsorship look like?](https://larahogan.me/blog/what-sponsorship-looks-like/) 8 | 9 | ## First questions to ask your mentee 10 | 11 | - What are you hoping to learn through this mentorship? 12 | - How do you best receive praise and criticism? 13 | - What is the best way to communicate with you in between mentorship sessions? 14 | - What sort of time commitment are you aiming for? 15 | -------------------------------------------------------------------------------- /getting-started/understanding_people.md: -------------------------------------------------------------------------------- 1 | # Tips for understanding your employees 2 | 3 | ## Processing Types 4 | 5 | [Understanding processing types](https://leadbeeleadership.com/communication/processing-style/) 6 | 7 | ## Love Languages 8 | 9 | [5 Love Languages of Appreciation in the Workplace](https://a.co/d/cxwTB5x) 10 | 11 | 12 | -------------------------------------------------------------------------------- /getting-started/user_manual_for_you.md: -------------------------------------------------------------------------------- 1 |

The User Manual for You

2 | 3 | You have a new manager, mentor, or team, and want to share the info pertinent to working with you. What do they need to know? What should you share? What should you know about your manager? 4 | 5 |

Things to share about you

6 | 7 | - Favorite communication and learning style 8 | - How you give and receive feedback 9 | - How you give and receive praise and affirmations 10 | - Unique challenges you face such as neuro-divergence, memory, disability, etc, and how to cater to those challenges 11 | - Signs you are struggling, and how to support you 12 | - How to handle emergencies, such as a mental or emotional health breakdown, that require an “act now, ask questions later” policy. 13 | - Unusual things you do that aren’t a problem (ex. I knit during meetings so I can focus) 14 | - What inspires you 15 | - What demotivates you 16 | - Pet peeves and frustrations 17 | - Ice breakers, hobbies, random/unusual/interesting facts and interests 18 | - Areas and skills in which you excel 19 | - Areas and skills you need help growing 20 | - How you believe you are being measured (rubric, company values, KPI’s, etc) 21 | - What you prefer to work on 22 | 23 |

Ask about your manager

24 | 25 | - What are their current priorities, problems and key initiatives? 26 | - How stressed are they? How busy are they? Do they have time to grow in their role, or are they grinding? 27 | - What is their manager’s priority for them? 28 | - What is keeping them up at night? 29 | - How can you best help them learn the product? 30 | - What are they trying to improve on themselves, and what are their goals? 31 | 32 |

Meeting in the middle

33 | 34 | - Once you have shared these things, and gotten the corresponding answers from your cohort, start meeting in the middle. 35 | - How best do we communicate with each other? 36 | - How can you best support each other? 37 | - Keywords or routines that have specific and important meanings (ex. “I declare a safe space”, or “first 5-minutes of a meeting are setting up notes”) 38 | - How can I tell you that your advice isn’t working for me? 39 | -------------------------------------------------------------------------------- /management_processes/career_growth_plans.md: -------------------------------------------------------------------------------- 1 | Creating a career growth plan is a conversation that happens between a manager and their employee more than a spreadsheet or document you fill out. The following description is only one way to create such a plan. 2 | 3 | # Description 4 | Career Growth plans focus on just that: the career of the employee. Their career could have started before this job, and will likely continue beyond this job. You can use the projects for this job to help them practice and grow into those career skills, but the focus should be on the career growth, not job growth. The goal of this plan is to help the employee identify areas of strength and growth, uncover hidden talents, and define what they want their future trajectory to go. All of this is subject to change as your employee grows, so redo the evaluation frequently, quarterly or semi-annually is best. 5 | 6 | # Open questions 7 | 8 | The questions in these categories are meant as examples for you to pick and choose from. They, in essence, ask the same question, but different people need different versions of the question to dig deeper. Leave the question as open as possible to encourage the employee to think beyond a bulleted list. 9 | 10 | ## Growth: 11 | 12 | - When you say, “I want to grow,” what does that mean to you? 13 | - What is your personal definition of growth? 14 | - How do you prefer to receive feedback, and how often would you like to receive it to support your growth? 15 | 16 | ## Strengths: 17 | 18 | - What do your coworkers come to you for? 19 | - What kinds of questions do people come to you to ask? 20 | - What are your favorite parts of your job? 21 | - What skills do you have that this company isn’t taking advantage of? 22 | - What skills have you learned in previous positions that I, your manager, may not be aware of? 23 | 24 | ## Weaknesses: 25 | 26 | - When asked to take on a body of work, which ones immediately make you uncomfortable? 27 | - What skills do you admire in your coworkers? 28 | - What is the weakness that gives you the most imposter syndrome? 29 | - What sort of tasks do you struggle with? 30 | - For which kinds of skills require you to rely on your coworkers? 31 | 32 | ## Broad or Wide T 33 | 34 | This category is meant to help you determine whether an employee’s curiosity encourages them to be more interested in a broad array of topics or to dig deeply into one topic. The goal is to have a balanced T. We do not want our employees spreading themselves too thin or becoming a “jack of all trades, master of none.” We also don’t want our employees to be buried so deep that they cannot adapt to new technology as the ecosystem evolves. 35 | 36 | - Do you think you have a broader or deeper T? 37 | - Are you more interested in your primary specialty focus (frontend, backend, DevOps, platform services, etc.) or in learning the skills required of other positions? 38 | 39 | # Skill Level Rubric 40 | 41 | The attached Individual Development Plan was put together by [Gian Perrone](https://www.linkedin.com/in/gianp/) and is just an example of such a document. 42 | 43 | [Career Growth Plan - Google Docs](https://docs.google.com/spreadsheets/d/1e2Urgj6pJX5VIR-E_W-uI7yfwQSuvtESWH3xKbPMvPg/edit?usp=sharing) 44 | 45 | 1. Create a new spreadsheet or a new tab in the spreadsheet if it already exists, and rename the tab with today’s date 46 | 47 | 2. Transfer applicable skills and levels from the template rubric to their own spreadsheet: 48 | 1. If they were recently promoted, have them copy just the level they are at 49 | 2. If they are working towards a promotion, have them also copy out the skills for the level above them 50 | 51 | 3. For the employee: 52 | 1. Complete the self-evaluation for the level and level n+1 53 | 2. Explain why in the notes column for rows marked Uncomfortable and Confident 54 | 3. Brainstorm ways to practice in rows marked Uncomfortable 55 | 56 | 4. For the manager: 57 | 1. Provide your rating, add any notes, and schedule a follow-up meeting to discuss any divergences, and define the plan 58 | 59 | 5. Together: 60 | 1. Review the employee’s evaluations and how they may diverge from the manager’s evaluations 61 | 2. Review the brainstormed ideas for how to practice the skills where growth is needed 62 | 3. Commit to development actions and timelines 63 | 64 | 6. Note: You can really only focus on one or two development areas at a time. Prioritize and discuss what is achievable 65 | 66 | You will notice the spreadsheet does not use the Does Not Meet / Meets / Exceeds language. People can only gauge the skill level of others compared to their own, but they can’t judge where they are in their own level. Instead, the document uses Uncomfortable / Comfortable / Confident language. People are far more capable of evaluating their comfort level than they are of evaluating their level. 67 | 68 | For skills they mark as either uncomfortable or confident, have them fill out the Notes/Reasoning/Evidence column. For Uncomfortable, you will likely get explanations as to what part of the statement makes them uncomfortable or a better understanding of what they think that task entails. For Confident, you will get examples of work they’ve done that has required these skills. 69 | 70 | For those areas marked Uncomfortable, have the employee fill out the column to brainstorm ways to practice. Allowing them to brainstorm ideas will help you identify goal types they are more likely to buy into. If an employee has difficulty sitting down long enough to read a whole book, assigning them a book to read is likely not going to be a goal they will accomplish. We want to set up our employees for success, not for failure. 71 | 72 | # Final note 73 | The employee should own their own career growth spreadsheet. That way, it can travel with them as they move between managers or even jobs. Each new manager can see the growth and goals that the employee has been working towards without having to start over from scratch. 74 | 75 | As the employee performs most of the work, it teaches them how to set up a growth plan for themselves. Adding a new tab for each review allows them to see their growth over time, which can be a big motivator for an employee who has struggled to see that growth in the past. 76 | -------------------------------------------------------------------------------- /management_processes/pip.md: -------------------------------------------------------------------------------- 1 | # Writing a PIP 2 | 3 | Writing a performance improvement plan, or even starting that process with your report before an official improvement plan with HR, is uncomfortable at best, and terrifying at worst. How do you indentify the exact issue? What steps should be taken to correct the problem? How do you communicate with your report if the get defensive? These are complicated questions with emotional impacts for both you and for them. Below are some articles and resources to help you navigate this difficult situation. 4 | 5 | [Impact of writing a PIP on new engineering managers](https://becomingaleader.substack.com/p/the-impact-of-pips-on-new-engineering-managers) 6 | 7 | PIP template download: 8 | 9 | - [Article](https://www.aihr.com/blog/performance-improvement-plan-template/) 10 | - [Download](https://www.aihr.com/wp-content/uploads/Performance-Improvement-Plan-Template-Updated.docx?il_id=in-article&il_name=pip-template-word&il_position=none) 11 | -------------------------------------------------------------------------------- /media/IMG_4914.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/IMG_4914.jpg -------------------------------------------------------------------------------- /media/IMG_7287.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/IMG_7287.jpg -------------------------------------------------------------------------------- /media/IMG_7288.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/IMG_7288.jpg -------------------------------------------------------------------------------- /media/Image from iOS (1).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS (1).jpg -------------------------------------------------------------------------------- /media/Image from iOS (2).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS (2).jpg -------------------------------------------------------------------------------- /media/Image from iOS (3).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS (3).jpg -------------------------------------------------------------------------------- /media/Image from iOS (4).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS (4).jpg -------------------------------------------------------------------------------- /media/Image from iOS (5).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS (5).jpg -------------------------------------------------------------------------------- /media/Image from iOS (6).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS (6).jpg -------------------------------------------------------------------------------- /media/Image from iOS (7).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS (7).jpg -------------------------------------------------------------------------------- /media/Image from iOS (8).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS (8).jpg -------------------------------------------------------------------------------- /media/Image from iOS.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS.jpg -------------------------------------------------------------------------------- /media/Image from iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/Image from iOS.png -------------------------------------------------------------------------------- /media/[template]_formulating_a_proposal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/[template]_formulating_a_proposal.pdf -------------------------------------------------------------------------------- /media/basicBulletJournal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/basicBulletJournal.png -------------------------------------------------------------------------------- /media/beautifulBulletJournal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/beautifulBulletJournal.png -------------------------------------------------------------------------------- /media/carriedAway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/carriedAway.png -------------------------------------------------------------------------------- /media/status_update_slide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/status_update_slide.png -------------------------------------------------------------------------------- /media/storytelling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/media/storytelling.png -------------------------------------------------------------------------------- /productivity/bullet_journaling_for_adhd.md: -------------------------------------------------------------------------------- 1 | # Bullet Journaling for ADHD and Work 2 | Created by Jen Luker 3 | 4 | ## Premise 5 | TikTok Video: [How 1 day turns into a week](https://vm.tiktok.com/ZM87kaTwF/) 6 | 7 | I'm going to put this out there. I've got ADHD. Executive function issues are no joke. It can feel like an uphill battle trying to fit my neurodivergent brain into a world that isn't made to work with my brain. When it comes to time management, focus, and staying on task, everyone will tell you their favorite note-taking apps. I have tried a multitude of digital note-taking and to-do apps, but as soon as the tab is closed, or the window makes it into the background, it might as well not exist. 8 | 9 | > Out of sight, out of mind. :smiling_imp: 10 | > 11 | > ~ My brain, every single time 12 | 13 | A physical notebook that I can touch, see, and takes up space on my desk means that it is never out of sight, or out of mind. Typing is in one ear and out the fingers, but somehow skips my memory. The process of writing dramatically increases the chances I’ll remember what I wrote over anything I type. 14 | 15 | > College students who took notes on a laptop did not learn as much as those who wrote their notes on paper, even though the laptop group took more notes. 16 | > 17 | > ~ Mueller & Oppenheimer, 2014 18 | 19 | In this article, I have detailed some of the philosophies and visual language queues that works for me. Bullet Journaling is what you make it, so make it your own! 20 | 21 | ## Instagram does not define bullet journaling 22 | 23 | [Bullet Journal - Learn the system](https://bulletjournal.com/pages/learn) 24 | 25 | Many people hate the idea of a bullet journal, but I believe that is because the first image that comes to mind is a gloriously decorated book filled with calligraphy, art, and a little bit of actual note-taking. 26 | 27 | 28 | | ![This beautifully painted galaxy-themed spread is bullet journaling.](https://user-images.githubusercontent.com/1584489/148611035-36b577db-e000-4e07-9c49-6423ed1f8e6f.png) | ![This no frills, no fuss spread is also bullet journaling.](https://user-images.githubusercontent.com/1584489/148611062-3a113f36-fbd4-4be4-89e0-9f268e2a8d3f.png) | 29 | |:--:|:--:| 30 | | This beautifully painted galaxy-themed spread is bullet journaling | This text-only layout is also bullet journaling | 31 | 32 | 33 | Though beautiful layouts are one way to use a bullet journal, so is the minimalistic approach. **Remember that the system is supposed to adapt to you, not you to the system.** 34 | 35 | I have gone through several types of spreads in the years I’ve been bullet journaling. Depending on my needs, I’ve used schedule-based, checklist-based, and journaling-based layouts. Some have been prettily decorated. Others have been chicken scratch and scribbles. Whatever I needed at the time is “the right way.” 36 | 37 | --- 38 | 39 | ## Why I don’t separate my work and home bullet journals 40 | I am a whole person. I have work. I have family. I have struggles, life events, and work stress. No matter how hard I try to divide my life into neat boxes, they still influence each other. Stress at home may result in distracted and low productivity at work. Getting praised at work may result in a fancier dinner. Sleep, mood, and how well I take care of myself and those that depend on me are influenced by my whole self, not just my work self or home self. 41 | 42 | By keeping all parts of my life in one book, I can better analyze why I had a rough work week, or why I’m feeling especially exhausted at the end of the day. It can also help me see the patterns behind high work productivity and positive family interactions. 43 | 44 | Separate books means more chances to lose both the books and the context. The more things I have to track, remember, and associate, the less likely it is that it will be tracked, remembered, or associated. One person, one life, one book. 45 | 46 | --- 47 | 48 | ## Ritual is a shortcut for getting into the zone 49 | 50 | > _Creative flow_ is the experience of being completely immersed, present, focused and _in the zone_. The inner critic and mental chatter are quieted, novel ideas are born, and random associations collide. 51 | > 52 | > When inspiration is elusive, _ritual_ appears to offer a shortcut to _creative flow_. 53 | > 54 | > ~ Rex Jung, neuropsychologist 55 | 56 | The act of preparing my bullet journal for the next block of information, whether it be a 1:1, checklist item, or notes, is a ritual that prepares my mind for what is to come. I consider it an act of respect to give my undivided attention to the person or task at hand. Though it may seem insignificant to jot down my thoughts for what I’m putting down, and write down the date for the upcoming task or event, it is ritual nonetheless. The space for creative flow to occur has been created. The focus has been defined. 57 | 58 | --- 59 | 60 | ## Focus and Invading Ideas 61 | 62 | | ![Carried away by all those thoughts and ideas you don’t want to forget](https://user-images.githubusercontent.com/1584489/148611142-26dd416d-9d18-4885-aa04-19101eb97a5b.png) | 63 | |:--:| 64 | | How many strings of thought can you hold onto before you are carried away?| 65 | 66 | 67 | 68 | It happens to all of us. A great idea pops into my head that I don’t want to forget. I may keep working, but I’m also now trying to constantly remind myself about this idea. I’m no longer focused on the task at hand. Less focus means more bugs, and fewer chances for my mind to come up with good ideas. It doesn’t take too many thoughts I want to hold onto before I’m no longer working on the task at all. In fact, I may be half way down a 12-hour rat hole before I even realize what has happened. Writing down those ideas in my bullet journal is a way I can let go of those balloon strings, and stay in the zone on my work. 69 | 70 | If I have decided that the idea is worth pursuing, I use either my phone timer or an egg timer to time-box my research for the day. “I’ll give myself an hour, then I’ll write down what I’ve discovered, and get back on task.” The timer enforces the time limit, because our brains are horrible at keeping track of frivolous things like time. 71 | 72 | --- 73 | 74 | ## Visual Language 75 | 76 | ### Date and @name entries, notes, 1:1s 77 | 78 | Write down the date, and person who inspired you to put this thing down on paper 79 | Dating and @naming my entries has been one of the most powerful uses of my bullet journal. I can go back to an entry to identify when something happened so that I can then go back to those dates in Slack to find the rest of the notes, context, or any other info I missed. 80 | 81 | ### Linked lists 82 | I use linked lists most often for 1:1s and even some checklist items. 83 | 84 | #### 1:1s example 85 | On my collections page, I will mark the first page I wrote down a 1:1 with Jen, then on each 1:1, I’ll include the linked list as part of the title. 86 | 87 | ``` 88 | 1:1 w/Jen - 1/7/2022. ← 73 86 → 89 | ``` 90 | 91 | In this title, I know I’m having a 1:1 with Jen, what day that 1:1 was held, and both the previous page (73) and next page (86) I can find 1:1s with Jen. If I start from the beginning of the book, I can follow those arrows all the way through to find every 1:1 I’ve had with Jen without having to search through every page. If I start from my last entry into my bullet journal, I can flip back to the most recent 1:1 with Jen and follow the path backwards to get context for our previous few conversations. 92 | 93 | #### Checklist item 94 | 95 | - [ ] Write confluence doc about bullet journaling ← 55 96 | 97 | In this item, I know I have previously written notes for it on page 55. I can go back to read those notes without having to write them over again every time. 98 | 99 | - [ ] Write confluence doc about bullet journaling ← 55, 57, 65 100 | 101 | Though I could use a linked list to keep track of all the notes, sometimes I just need a list of pages. This indicates that I’ve made notes on these pages, and I can copy that list of pages each time I move the checklist item forward to another page/day. It just keeps track of the notes, not the checklist items. 102 | 103 | If it is a long-running project, then I will add the page(s) to my Collections page at the beginning of the book. Collections are like Jira epic items for my bullet journal, while an index is like the roadmap. 104 | 105 | ### Color-coding 106 | Color-coding runs pretty deep through my bullet journals. 107 | 108 | #### Travel: 109 | Green Highlighting. I mimic this throughout my book for highlighting monthly calendars, day titles, and any notes I may keep about that travel. 110 | 111 | Speaking of travel, I make sure to write down the flight info, hotel and job site addresses and phone numbers, rental car company info, etc. so that if my phone dies, is lost, or stolen, I can still function. This may err on the side of paranoia, but I’d rather have the info and not need it than need it and have no way of getting it. This actually came in handy, recently, when I traveled overseas. Getting through the international security checkpoints was a breeze because all the info the security officer needed about my travel plans was all neatly written down ahead of time. He just had to copy it out of my book! 112 | 113 | | ![Example travel page for my trip to Finland](https://github.com/knitcodemonkey/processes/blob/master/media/IMG_7287.jpg) | 114 | |:--:| 115 | | This is what my travel page looked like for my trip to Finland. It included main contact person, travel schedule, flight, hotel, and conference venue info. Everything the security officer needed! | 116 | 117 | 118 | #### Blocks of text: 119 | 120 | Journaling Layout: Each day has its own color. It makes it easy for me to see the break in thoughts throughout the pages. 121 | 122 | Meetings and 1:1s: Each meeting has its own ink color. The process of selecting the pen, writing down the title, and including any info I know I need to cover helps me transition my thoughts into the 1:1. This is especially helpful when I’m having to stop working on a project to hold the meeting or 1:1. It gives me the initiative to write down any thoughts regarding the project so I can let them go and switch pen colors. To prepare for the upcoming meeting, I review the notes from the last meeting, and mark the linked-list numbers. Getting in the zone expands beyond code, and into any work you are doing. 123 | 124 | #### Q&A: 125 | 126 | Questions have different colors than the answers so I can break the info into their Q&A pairs. 127 | 128 | #### Borders and Horizontal Rules: 129 | 130 | If, for some reason I do have several topics in the same color, such as a meeting covering several items, drawing boxes or horizontal rules in a color helps be break up the info into their specific topics. The color pops out, so I can see the most important notes on the page. If a collection has a matching color, it can also help remind myself to add that block to a collection’s list of pages. 131 | 132 | #### The book itself: 133 | 134 | Most of my house is in a navy blue, black, or white. If my bullet journal is black, it will disappear into the recesses of my house. For this reason, my most important items tend to be bright red: my phone case, my bullet journal, the strap on my keys. For someone who can walk a straight line from point A with something in my hand, to point B without it, a brightly colored item is easier to find. 135 | 136 | --- 137 | 138 | ## Supplies suggestions 139 | 140 | These links are mostly to Amazon for convenience. Buying local is always best. 141 | 142 | ### Notebooks 143 | 144 | I use specific ones made for fountain pens, but if you’re not that particular, I love these in dotted format: 145 | 146 | #### A5 Notebooks (~5¾ inches by 8¼ inches) 147 | 148 | - [Leuchtturm1917 Dotted Notebook](https://www.amazon.com/Leuchtturm1917-Medium-Dotted-Hardcover-Notebook/dp/B002TSIMW4) 149 | - [Hustle Co - Classic Pro Dotted](https://www.amazon.com/Thick-Dotted-Journal-Hardcover-Ink-Proof/dp/B07F43QLG4/) 150 | - [Scribbles That Matter - Dotted](https://www.amazon.com/Dotted-Journal-Scribbles-That-Matter/dp/B01N63VX52/) 151 | - [Endless Works Recorder A5 Notebook -Dot Grid](https://www.gouletpens.com/products/endless-works-recorder-notebook-infinite-space-dot-grid) (Fountain Pen friendly) 152 | - [Breeze A5 Notebook with Tomoe River Paper /WHITE](https://www.etsy.com/listing/532344233/breeze-a5-notebook-with-tomoe-river) (Fountain Pen friendly) 153 | 154 | 155 | #### A6 Notebooks (~3.5 inches x 5.5 inches) 156 | 157 | - [Spiral-bound dotted notebook](https://www.amazon.com/Yansanido-Notebook-Notebooks-Journals-Planner/dp/B08SJH1FP9/) 158 | - [Moleskine Classic Notebook, Soft Cover, Pocket (3.5" x 5.5") Dotted](https://smile.amazon.com/Moleskine-Classic-Notebook-Softcover-8055002854627/dp/B01K03D8DM) 159 | - [Moleskine Cashier Journal, Soft Cover, Pocket (3.5" x 5.5") Dotted, Black, 64 Pages (Set of 3)](https://smile.amazon.com/Moleskine-Cahier-Journal-Dotted-Pocket/dp/B079ZSFH9T/) 160 | 161 | ### Notebook Covers 162 | 163 | Notebook covers can help keep your pens, notebooks, and stickers together. Also, functional, but not necessarily pretty, notebooks with a pretty cover will get used more than pretty notebooks that inspire one to pre-plan and write only pretty things down. 164 | 165 | #### A5 166 | 167 | - [Leather Zippered 10 Slots Pen Case with A5 Notebook Holder - Crazy Horse Brown](https://www.galenleather.com/collections/zippered-pen-pencil-cases/products/leather-zippered-10-slots-pen-case-with-a5-notebook-holder-crazy-horse-brown) 168 | - [This shop](https://www.etsy.com/shop/SovaArtisanGoods) has notebooks that place the pen holder on the outside, which I used until I ended up with too many pens. [SovaArtisanGoods | Etsy](https://www.etsy.com/shop/SovaArtisanGoods) 169 | 170 | #### A6 171 | 172 | - [Leather Zippered 5 Slots Pen Case - Crazy Horse Brown](https://www.galenleather.com/collections/leather-notebook-covers/products/leather-zippered-5-slots-pen-case-crazy-horse) 173 | 174 | ### Notebook features I look for: 175 | 176 | - A5 size, though if that is too big, look at A6 size 177 | - Dotted/Dot grid pages - I find grid lines and college rules are too visible and get in the way of the information and layout I need 178 | - Has page numbers 179 | - Binding preferences (spiral, lay-flat, hardbound, paperback) 180 | - Bonus: Has bookmarks 181 | - Bonus: Has index page 182 | - Bonus: Has pen holder 183 | 184 | ### Pens 185 | I use multiple pens with different ink colors to keep the information segregated and/or color-coded. 186 | - [Micron pens](https://www.amazon.com/Sakura-Pigma-30062-Micron-Blister/dp/B0008G8G8Y/) in different weights for design elements. 187 | - [Ultra-fine multicolored pens](https://www.amazon.com/gp/product/B00DV6EJ4I/) are a great option for color coding. 188 | - [Midliner brush & pen markers](https://www.amazon.com/Zebra-Pen-Mildliner-Assorted-10-Count/dp/B07NDZRXT8/) for highlighting or breaking up info. 189 | 190 | If multiple pens are too much, Multi-color or multi-function pens are a great option 191 | 192 | - [Pilot Dr. Grip 4+1, 4 Color 0.7 mm Ballpoint Multi Pen & 0.5 mm Mechanical Pencil](https://www.amazon.com/gp/product/B0788QVV5G/) 193 | - [Multicolor Ballpoint Pen 0.5, 4-in-1 Colored Pens Fine Point](https://www.amazon.com/gp/product/B08NHYS79B/) 194 | - [Good Ole Fashioned BIC 4-in-1 Pen](https://www.amazon.com/BIC-4-Color-Ballpoint-Assorted-2-Count/dp/B00K0TRXJC/r) 195 | 196 | ### Stickers and Printouts 197 | 198 | Stickers draw the eye, so they are great for helping identify important info or categories. 199 | - [Calendar tab stickers](https://www.amazon.com/Calendar-Stickers-Monthly-Planner-Adhesive/dp/B08FSV626X) 200 | - [Reusable/moveable tabs](https://www.amazon.com/Post-Writable-Repositionable-Dispenser-686-ALOPRYT/dp/B00NPCD8MW/) 201 | 202 | ### Misc Supplies 203 | 204 | - [Skeleton Binder Clips](https://www.amazon.com/Eforlike-Hollow-Binder-Invoice-Supplies/dp/B01KWMG4LY/) let me clip my pages to lay them flat, but also allow me to see behind them 205 | 206 | --- 207 | 208 | ## Examples from my bullet journal over the years 209 | ### 2023 210 | 211 | Pretty 1:1 and meeting notes heavy, with pasted in anecdotes or images as I felt drawn to them. 212 | 213 | | ![Printed and pasted images into my journal](https://github.com/knitcodemonkey/processes/blob/master/media/IMG_7288.jpg) | | 214 | |:--:|:--:| 215 | | I don't need to draw when I have a printer! | | 216 | 217 | 218 | 219 | ### 2022 220 | 221 | I'm continuing to use the Index and Collections spreads from 2019, while continuing my layouts from 2021. Bullet Journals don't need to be decorative to be functional. 222 | 223 | ### 2021 224 | 225 | As a Senior Staff Engineer, my work changes from day to day. Some days I have checklists. Others are full of 1:1s and mentorship. Sometimes I am in planning and leadership meetings where notes need to be kept online for a wider audience. The complicated spreads still don't fit what I need. I moved to using stickers or printouts for calendars and visual resources, and checklist/journaling layouts for the rest. 226 | 227 | | ![Checklists and Journaling](https://user-images.githubusercontent.com/1584489/148810394-053a9e19-28ff-4590-b3a7-edaf75abd7e1.jpg) | ![Little's Sketchbook](https://user-images.githubusercontent.com/1584489/148810380-ecf9ab87-fbde-4184-9ed3-81688c88adf8.jpg) | 228 | |:--:|:--:| 229 | | Example of a checklist and journaling spread | Sometimes you (or your little) need a sketchbook | 230 | 231 | ### 2020 232 | As my job shifted from management back into tech lead and IC, the elaborate spreads were no longer useful. They were left mostly blank. There are no images for this year because a lot of the book was journaling and checklists that included proprietary or personal info. This is the year where I got into fountain pens. 233 | 234 | ### 2019 235 | 236 | My job, at the time, included a lot of meetings and 1:1s. Drawing out the weekly spreads on Sundays was a sort of mental preparation for my week. 237 | 238 | | ![Index, Collections, and Knitting](https://user-images.githubusercontent.com/1584489/148616167-c99a5397-64df-47c3-9f80-2333e933362c.jpg) | ![Weekly Spreads](https://user-images.githubusercontent.com/1584489/148616164-bd0c6878-fd34-47c0-a7d9-48aa4a5299d9.jpg) | 239 | |:--:|:--:| 240 | | Index for single pages, Collections for multiple pages. Green highlighter indicates travel on all calendars, knitting patterns. | Example of weekly spreads | 241 | 242 | 243 | | ![Curved edges draw the eye](https://user-images.githubusercontent.com/1584489/148616162-5f2f51b9-913e-473e-82f3-1da94f8ee355.jpg) | ![Stickers add depth and draw the eye](https://user-images.githubusercontent.com/1584489/148616160-c84a8e74-6280-4414-9bc5-8914c881f165.jpg) | 244 | |:--:|:--:| 245 | | Curved edges draw the eye. Use stickers, or curvy shapes to define different blocks of info. | Stickers add depth, and because they look slightly out of place, they draw the eye. | 246 | 247 | 248 | | ![Color Contrast breaks up info](https://user-images.githubusercontent.com/1584489/148616159-5011107e-ea5f-4193-aabd-ef9deeb4395c.jpg) | ![Linked Lists used to associate collections](https://user-images.githubusercontent.com/1584489/148616158-bec423a1-57c0-426a-83c6-e005b5701159.jpg) | 249 | |:--:|:--:| 250 | | Highlighted sections and color contrast define separate blocks of information, and can associate together matching color blocks | Example of linked lists used to connect a person's 1:1s through the book | 251 | 252 | 253 | | ![Different color pen inks](https://user-images.githubusercontent.com/1584489/148616155-47a9d024-4614-459b-ad5b-b5180f5dbe3d.jpg) | 254 | |:--:| 255 | | Different colors of pen inks can separate questions from answers, different days, different people's 1:1s, different categories of checklist items, etc. Find your own color-coded visual language! | 256 | -------------------------------------------------------------------------------- /productivity/documentation_culture.md: -------------------------------------------------------------------------------- 1 | # How do you foster an internal culture of documentation? 2 | 3 | Fostering a culture of documentation is not as easy as just telling people to document things. It often takes an active approach of leading by example, and assigning documentation to others that includes deadlines and progress follow-ups. There are a few main factors when it comes to a culture of documentation. 4 | 5 | > The search bar is the most important feature of your documentation. 6 | 7 | If they can't find it, it doesn't matter how accurate it is. 8 | 9 | > The documents should be editable by everyone within the surrounding organizations. 10 | 11 | The wider blast radius does mean there is an increased chance the doc will change in a way you can't predict, but that is also the goal. The documentation is there to serve those who need them; not those who wrote them. If the docs no longer serve their purpose, they should be edited, updated, or deleted with new docs taking their place. This takes more than one village to be done right. 12 | 13 | 14 | ## The culture 15 | 16 | ### Phrases I live by, and repeat like a broken record: 17 | 18 | > Is there a doc for this? We should create one and work on it together if there isn't. 19 | 20 | At first, people won't write docs because it won't be part of their process. This reminder is often all it takes to start that process. 21 | 22 | > If someone asks a question, including yourself, answer the question with documentation. If the documentation doesn't exist, write the documentation, then answer the question with documentation. 23 | 24 | Saying this over and over and over and over does tend to get people to the point where they hear your voice in your head when someone asks a question. 25 | 26 | > Documentation is a love letter to your future self. And your past self in the form of new hires. 27 | 28 | You'll appreciate it in 3 weeks when you've forgotten everything about this. 29 | 30 | > Always be training your replacement. You can't get promoted, go on vacation, or expand your department if you don't leave documentation and training in your wake. 31 | 32 | Video tours. Create/Edit Document together. Delegate teaching to others so that they learn it well enough to give the tour or write the docs or teach someone else. 33 | 34 | 35 | ## The Documention 36 | 37 | ### How do I document things? 38 | 39 | #### The verbose things 40 | 41 | Something that has worked for prior engineering teams is to have a channel in Slack where you can request a tour of some technology, process, etc. We have #dev-tours. The video is recorded, and added to a confluence doc with as many forms of documentation as possible. Transcripts, code snippets, explanations, links to additional resources, examples, etc. 42 | 43 | > "Hey, so I need someone to show me __________." 44 | > "Sure! Lets hop on zoom for a walk-through, record it, and post it in confluence along with any notes you made!" 45 | 46 | #### The more prescriptive or less verbose things 47 | Another way is to add/edit documents together. When you find yourself either explaining, or asking someone to explain something, open up a doc where both of you can type out the notes. This allows the questioner to write out what they understand, and for the answerer to rephrase until clarity has been reached. This can include anything from vocabulary words and their descriptions, code snippets and examples, and explanations of how it works and why. 48 | 49 | ### Organization 50 | 51 | > So how do I organize all this stuff?! 52 | 53 | Truth is, that is a hard question. You can sort your docs by action or by subject. Regardless of how you organize it, your docs should be searchable. 54 | 55 | #### Action-based organization 56 | 57 | The [Teleport docs](https://goteleport.com/docs/documentation-overview/) are a great example of action-based organization. This works well if the user already knows what they are trying to accomplish, but not the more specific details of what they need to accomplish it. 58 | 59 | ![teleport docs - action-based organization](https://github.com/user-attachments/assets/afaa34a5-ff46-4067-9092-79f2c16fb50e) 60 | 61 | #### Subject-based organization 62 | 63 | A great majority of documentation is written and organized based on the subject. This works well if you know the overview of what you need to do to accomplish the task, and just need to know the details for a particular subject. For instance, the [Datadog documentation guides](https://docs.datadoghq.com/all_guides/). 64 | 65 | ![Screenshot 2024-07-17 at 9 58 53 AM](https://github.com/user-attachments/assets/4c9ec36b-92c0-4795-9f5d-3bb3e68bb956) 66 | 67 | 68 | #### Searchable 69 | 70 | Regardless of the option, it won't work for everyone. The most important key is that your docs are searchable. 71 | 72 | > What do you do if you search for a doc, can't find it, but someone else finds it and shares it? 73 | 74 | Edit it, of course! Add the phrase you used to search for it so that you, and others, can find it again later. 75 | 76 | > What if you find the doc, but it doesn't include enough information, is confusing, or is out of date? 77 | 78 | Find someone who knows the subject well, and edit the doc together. Documents should be a living organism that is always evolving to include new, updated, and clearer details. Work together to edit the doc until you have both reached an understanding of the subject, and it now serves the purpose for which you needed it in the first place. 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /software-design_cs_and_engineering/Release_Branching Strategy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/knitcodemonkey/processes/b1323c771c1f8e15cd4499dc99354cbc2d0285fa/software-design_cs_and_engineering/Release_Branching Strategy.png -------------------------------------------------------------------------------- /software-design_cs_and_engineering/code-reviews.md: -------------------------------------------------------------------------------- 1 | # Code Reviews 2 | 3 | [The Secret Society of Code Reviewers at Microsoft](https://www.youtube.com/watch?v=MLU8AwfIe8U) 4 | 5 | > Today, his focus is less on scrutinizing individual lines of code and more on assessing the performance, efficiency and identifying issues like cross-team and cross-group dependencies. 6 | 7 | ## Purpose of a code review 8 | 9 | - Track the application state through the app 10 | - Proper code review speed: ~200-400 lines of code per hour 11 | - Code reviewer: 12 | - Devil’s advocate, but not an adversary. 13 | - Deeper knowledge of code section than you so that you can learn. Security expert for security concerns, a11y advocate for accessibility concerns, etc. 14 | 15 | ## How to code review 16 | 17 | - Find defects - Find bugs in a quick inspection pass 18 | - Performance 19 | - Security 20 | - Backwards compatibility 21 | - Code Quality - Follow style guide. If not in style guide, follow precedent set in code. To change that, create ADR to get buy-in, fix all instances, then proceed. 22 | - Maintainability 23 | - Readability 24 | - Uniformity 25 | - Grokability 26 | - Knowledge Transfer 27 | - Enables new developers to learn the codebase 28 | - If a picture is worth a thousand words, then an example is worth a million. 29 | - Learn common solutions, like error handling, and style guide standards 30 | - Mutual Responsibility 31 | - When people feel they have ownership and authorship, they look after the codebase better. 32 | - Perfect opportunity for everyone to play “forest ranger” and limit what is allowed to come into your codebase, and what is allowed to stay. 33 | - As the code reviewer, you are the gatekeeper. You let it in. As the responsible party, if a bug is introduced, you are equally responsible for fixing it. 34 | - From Dave’s experience, he felt more comfortable with a code change based more on who reviewed it than who wrote it. 35 | - Misc 36 | - Generating new ideas for patents 37 | - generating ideas for new products or solutions that transcend the specific code being reviewed. 38 | - Collaborative and quality benefits of pair programming at the finalization where more minds are better than one. 39 | 40 | ## How NOT to code review 41 | 42 | - No nit-picking: Do not debate the style guide in a code review 43 | - Ping Pong 44 | - Iterative code review where it goes back and forth between the reviewer and author. 45 | - If it takes multiple passes to get it right, someone isn’t paying attention. 46 | - Pair on it, or table it until issues have been addressed. 47 | - Inconsistency 48 | - If one code reviewer covers performance, and the other covers robustness, neither one is giving you a comprehensive review 49 | - Design changes at review time: Just no. 50 | - Ghosting 51 | - Code reviews should be the highest priority; must be seen as time well spent and not as an interruption or an intrusion. 52 | - Completing a code review frees up multiple devs, not just the author 53 | - Keep MRs small, a few pages at most, to enable a thorough review and to avoid having other devs ghost your MR. 54 | - “Throwing a fat code manifesto over the wall and expecting a quick answer isn’t fair” 55 | 56 | ## Additional links and resources 57 | 58 | [5 Traits of a Bad Code Reviewer](https://medium.com/@ms_lizzie/5-traits-of-a-bad-code-reviewer-598da8e6dc19) 59 | 60 | When doing a code review, check both technical implementation and code’s compliance with requirements. Be attentive, as you are responsible for your review. Don’t waste time arguing about best practices — there are more opinions than one. Consider current project status and suggest massive changes only if there is time to make them. And of course, always be polite. 61 | 62 | [Code Review Guidelines | GitLab](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist) 63 | 64 | This guide contains advice and best practices for performing a code review, and having your code reviewed. 65 | -------------------------------------------------------------------------------- /software-design_cs_and_engineering/engineering_design_principles.md: -------------------------------------------------------------------------------- 1 |

Engineering Design Principles

2 | 3 | The 5-minute clip at the beginning of [Marble Machine X - A Lesson in Dumb Design](https://www.youtube.com/embed/WN90HYiFpAw?si=cptAYEkNgUHds0a7) is absolutely worth watching. Elon Musk explains the Engineering design Principles, and how they apply to building rockets. 4 | 5 |

Engineering Design Principles:

6 | 7 | 1. Make your requirements less dumb 8 | * Your requirements ARE dumb. In fact, it is even more dangerous if the requirements come from someone highly skilled. 9 | 2. Delete the part or process. 10 | * Don’t build things that aren’t problems in the first place 11 | 3. Simplify or Optimize 12 | * If you aren’t having to add requirements back in, you’re not deleting enough 13 | 4. Accelerate cycle time 14 | * Don’t dig your grave faster. Stop digging your grave! 15 | 5. Automate 16 | * The very LAST step when the ROI makes automation worthwhile. 17 | * Don’t automate things that shouldn’t exist. 18 | 19 | Nav has a set of https://navinc.atlassian.net/wiki/spaces/ENG/pages/785219629 that incorporate these concepts and layer on how we expect to do these things together. 20 | 21 |

How do these principles correlate to Software Engineering lifecycles?

22 | 23 | These questions are similar to Planning and Design documents such as the PSL, Solution Architecture Summaries (SAS), and ADR. 24 | 25 |

Questions to answer when considering designing a new project

26 | 27 | * What is the problem we are trying to solve? 28 | * Do we have data to support that this problem exists, needs solving, and needs solving now? 29 | * How does this idea solve this problem? 30 | * Do we have data to support that this idea is the right solution? 31 | * How long will it take to see the Return On Investment (ROI)? 32 | * Is it more cost-effective to patch the acute problem, or to solve the underlying issue? 33 | * What is the MVP (Minimum Viable Product)? What is the MDP(Minimum Delightful Product)? 34 | * Minimum Viable Product 35 | * The tiniest prototype possible. Ugly, barely functions. Proof of concept. 36 | * If you aren’t having to add requirements back in, you aren’t deleting enough. 37 | * Minimum Delightful Product 38 | * The smallest product where the customer finds it less frustrating to use than to not use it. 39 | * Releasable to customers (internal or external) 40 | 41 |

Stories/Examples

42 | -------------------------------------------------------------------------------- /software-design_cs_and_engineering/the_pyramid_of_basic_coding_principles.md: -------------------------------------------------------------------------------- 1 |

The Pyramid of Basic Coding Principles

2 | 3 | [The Pyramid of Basic Coding Principles by Muhammad Rahmatullah](https://muhammad-rahmatullah.medium.com/the-pyramid-of-basic-coding-principles-e33b7c3cb316) 4 | 5 | ![The Pyramid of Basic Coding Principles](https://miro.medium.com/v2/resize:fit:782/format:webp/1*tWU9bdxNAT5tMLWDFgbwaA.png) 6 | 7 |

Reverse Pyramid of basic coding principles

8 | 9 | - The green `Make it work` row is version 1.0 10 | - The blue section with the list of design principles is maintenance mode 11 | - The grey `Make it fast` section is version 2.0 12 | - The wider the row, the more time and energy you should invest. The order also matters. 13 | 14 |

Don’t simplify something that shouldn’t exist

15 | 16 | Don’t try to abstract before you know that your code works, doesn’t include extra complexity you don’t need, and has been broken down into its separation of concerns. Until then, you don’t know what abstractions you truly need. 17 | 18 | Though you can keep multiple design principles in mind as you code, don’t spend all your time refactoring the entire file when what you need to do is update one line of code. 19 | --------------------------------------------------------------------------------