The onboarding process described here is specific to a software engineer joining a tech company. While some/most of the items may still apply to any job where you mainly work from a computer, the assumption will be that you develop software as an individual contributor.
- Setup laptop
- Access to slack
- Access to zoom
- Setup calendar reminders
- Initial meeting with buddy
- Access to git central repository
- Installation of development tools/languages
- Request software licenses
- Access to CI/CD
- Find where task management is done
- Find the documentation to build projects
- Connect 1 on 1 with each member of the team
- Meet with manager 1 on 1
- Define a 30-60-90 days plan with manager
- Verify access to various systems (SSO, code repository, insurance company, payroll company, etc.)
- End of week meeting with buddy
- Setup and run the one step build process
- Determine how are features/tasks prioritized, who prioritizes features/tasks
- Review the team documentation
- Review team practices/processes documentation (code style, code review, standups, planning, retrospective, demos)
- Review common vocabulary, terminology, glossary documents
- First PR + code review
- Review the career ladder of the position
- Review user definition, use cases, requirements
- Read prior team meetings notes
- Identify how deployments are done
- Review the team roadmap
- Determine where I can have the biggest impact
- Determine a timeline where I'll have reached my 80/20 at the company
- Determine the maturity of existing projects
- Determine how fast can we iterate on certain aspects given the team/company composition
- Identify the core/principal/staff contributors and their contributions
- Review the architecture of the system
- Review the database architecture
- Learn about "how we got to this point"
- Determine whether the product is a monolith or micro-services
- Identify which (3rd party) tools are used by the team/company
- Determine the portfolio of STARS situations of the team/company
- Determine a rough estimate of the number of people in the different organizations
- Connect 1 on 1 with important collaborator in other teams
- End of first month meeting with buddy
- First month performance review with manager
- Informal 360-degree review with manager and peers on adaptation
- Month 1 job satisfaction review
- Team interaction diagram
- Month 2 job satisfaction review
- Month 3 job satisfaction review
06
Nov
2020
Planning large software projects
History / Edit / PDF / EPUB / BIB / 1 min read (~139 words)- List all the features you would like to develop
- Define an appetite for the task (day, week, month, quarter)
- Identify the features where the appetite differs between individuals and discuss them to reach consensus
- Define the roles necessary to complete the task
- Identify dependencies between features
- Categorize the dependencies
- Soft: somewhat depends on this other feature but isn't blocked by its absence from the codebase
- Hard: depends on this other feature and is blocked by its absence from the codebase
- Prioritize the features
- Use the RICE framework
- Priority can also be skipped if using ROI as prioritization metric
- Estimate the value of a features in dollars
- Calculate a ROI (return on investment) as the estimated value of the feature divided by the defined appetite
- Order tasks according to dependencies and ROI