code review? - Implementation differences between iOS and Android have become technical debt. - Outage has increased. - Struggling with new member’s onboarding. - Knowledge is dependent on the individual. - Less documentation. Even if there are some documents, already outdated.
my day-to-day managerial work to do what I need to do from a medium- to long-term perspective. Outage Need to consider a fundamental solution… A member who don’t know some hidden spec Knowledge is dependent on the individual But too busy to do it later… New member join Less documentation
can do well. - Skill concerns. (Not only technical skill but also communication skill and so on.) - Language concerns. (Planners and QA members are mostly Japanese speakers, so worried about English-speaking members.) - Worried about whether members really want to do something in the first place. The reason why I couldn’t get motivated
can do well. - Skill concerns. (Not only technical skill but also communication skill and so on.) - Language concerns. (Planners and QA members are mostly Japanese speakers, so worried about English-speaking members.) - Worried about whether members really want to do something in the first place. The reason why I couldn’t get motivated It would be faster if I did it myself, and no one would complain that way.
Coworkers Review (C-Review) Supervisor, Co-workers and Subordinates evaluate work performance and attitude. Someone said… “You seem to be reluctant to let your members do their jobs. I wonder whether you trust them?”
code review? - Implementation differences between iOS and Android have become technical debt. - Outage has increased. - Struggling with new member’s onboarding. - Knowledge is dependent on the individual. - Less documentation. Even if there are some documents, already outdated. - Lost opportunities for members to grow. The base issue is “Manager as a bottleneck”
reviewer for the P-R of responsible component But if component lead itself created it, who will review it? Component A’s load -> Component B’s load -> Component C’s load -> l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
Stickers - Settings1 - Settings2 Actions to solving issues Component Lead System e.g. Sticker Component has 6 Sub-Components Component Lead Covered all Sub-Components l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
Component Lead Sub-Component Lead Other member Handle on my own? Development Assign Assign Code Review Code Review Code Review No Yes Development Development l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
0~n • Communication Point of a Component • Decide who to assign development tasks • Code review of all sub-components included by a Component • Manage documentation of all Sub-Components included by a Component Sub-Component Lead : 1~n • Code review • Manage documentation l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
Lead System to solve Manager as a bottleneck but I still have some concerns… - Worried about whether the members can do well. - Skill concerns. (Not only technical skill but also communication skill and so on.) - Language concerns. (Planner and QA members are mostly Japanese speakers, so the worrying is for English speaker members.) - Don't you want to play such a troublesome role in the first place?
a thorough presentation and explanation to all members. Actions to solving issues Component Lead System Got agreement from members and readily decided the person in charge.
solving issues Component Lead System I need to coordinate expectation levels between the manager and members. l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
Delegation Poker to clarify who’s responsible for what and to what level. This is a method where you can encourage employee engagement through controlled self-organization and clarified value and decision-making.” “Delegation Poker & Delegation Board” Retrieved from https://management30.com/practice/delegation-poker/ (Oct. 1, 2021)
issues Component Lead System - See more details on - https://speakerdeck.com/line_devday2019/project-management-and-agile- strategies-and-examples-of-enterprise-wide-organization - https://www.youtube.com/watch?v=yC2SBf5ITt0 - https://logmi.jp/tech/articles/322286
Lead System to solve Manager as a bottleneck but I still have some concerns… - Worried about whether the members can do well. - Skill concerns. (Not only technical skill but also communication skill and so on.) - Language concerns. (Planner and QA members are mostly Japanese speakers, so the worrying is for English speaker members.) - Don't you want to play such a troublesome role in the first place? l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
multiple teams such as Server, Client, Frontend, Data science, etc. - Assigning a project manager and proceeding a project few months. Actions to solving issues
multiple teams such as Server, Client, Frontend, Data science, etc. - Assigning a project manager and proceeding a project few months. Actions to solving issues Project Dev Lead l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
and schedule of iOS/ Android dev - Decision making of the client side Actions to solving issues Project Dev Lead QA iOS/Android members Planner Others Manager Observing PM l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
project. When? What? - Share the project overview and expected range of impact with all team members and ask some opinions. Actions to solving issues Project Dev Lead 1. Project Review Why? - To reduce oversights.
doc. - Share the detail of the project. - Discussion about the affecting range among all team members. Actions to solving issues Project Dev Lead All team members Project Doc Specs, Affected Range Discussion l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
- Share the architecture of the implementation and ask for review. Actions to solving issues Project Dev Lead 2. Tech Review Why? - To eliminate rework and ensure smooth progress in development.
leads (Project dev lead may also be the platform lead). - iOS/Android leads prepare a Design Doc. - iOS/Android leads asks team members to review architectures. Actions to solving issues Project Dev Lead iOS members Review Android members iOS Lead Android Lead Project Dev Lead Organize Design Doc Architectures Review l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
Lead organizes iOS/Android development leads (Project dev lead may also be the platform lead). - iOS/Android leads prepare a Design Doc. - iOS/Android leads asks team members to review architectures. - Check API usage to avoid diff between iOS/Android. Actions to solving issues Project Dev Lead iOS Lead Project Dev Lead Common Design Doc API usage Android Lead Server Lead l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
Share the final specification and merge the design doc to the existing spec document. Actions to solving issues Project Dev Lead 3. Closing Review Why? - Ensure the final specification and to keep the documentation clean.
leads (Project dev lead may also be the platform lead). - iOS/Android leads finalizes a Design Doc. Actions to solving issues Project Dev Lead iOS Lead Android Lead Project Dev Lead Organize Design Doc Architectures Finalize the Design Doc l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
leads (Project dev lead may also be the platform lead). - iOS/Android leads finalizes a Design Doc. - iOS/Android leads merges the Design Doc to the existing spec document. Actions to solving issues Project Dev Lead Project Dev Lead Merge Spec Doc iOS Lead Android Lead Project Dev Lead Organize Design Doc Architectures l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
leads (Project dev lead may also be the platform lead). - iOS/Android leads finalizes a Design Doc. - iOS/Android leads merges the Design Doc to the existing spec document. - iOS/Android leads archives the Design Doc. Actions to solving issues Project Dev Lead Project Dev Lead Merge Spec Doc iOS Lead Android Lead Project Dev Lead Organize Design Doc Architectures l"SDIJWFEzBEEFEPO UIFUPQPGUIFUJUMF 3FNPWFUIF FEJUJOHBVUIPSJUZ l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
leads (Project dev lead may also be the platform lead). - iOS/Android leads finalizes a Design Doc. - iOS/Android leads merges the Design Doc to the existing spec document. - iOS/Android leads archives the Design Doc. - Share the final spec to the all members. Actions to solving issues Project Dev Lead iOS Lead Android Lead Project Dev Lead Organize Design Doc Architectures Share the final spec iOS/Android members l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
code review? - Implementation differences between iOS and Android have become technical debt. - Outage has increased. - Struggling with new member’s onboarding. - Knowledge is dependent on the individual. - Less documentation. Even if there are some documents, already outdated. - Lost opportunities for members to grow. - Manager as a bottleneck.
place to read/create documentation? Question Issues - We use Confluence as a Wiki service and of course we can search with keywords but it’s often difficult to find what we’re looking for. - Related information is not organized in a systematic way, so we may have to search for documents again and again. Actions to solving issues About documentation - Searchability Searchability Action - Defined the structure of the documentation space for the team. And named it “Internal Docs”.
structure for each Component iOS page Android page Common page iOS page Android page Common page Common page Common page Android page Android page iOS page iOS page Main Docs iOS Main page Android Main page Common page Design Docs Misc Docs Sub-Component Docs iOS Sub-Component Main page iOS Sub-Component Main page Sub-Component Docs Sub-Component Docs Common page ɾ ɾ ɾ iOS page Android page Common page iOS page Android page Common page
structure for each Component iOS page Android page Common page iOS page Android page Common page Common page Common page Android page Android page iOS page iOS page Main Docs iOS Main page Android Main page Common page Design Docs Misc Docs Sub-Component Docs iOS Sub-Component Main page iOS Sub-Component Main page Sub-Component Docs Sub-Component Docs Common page ɾ ɾ ɾ iOS page Android page Common page iOS page Android page Common page Create the pages when integrate the Component Lead System. (But initially, these are almost empty) l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
structure for each Component iOS page Android page Common page iOS page Android page Common page Common page Common page Android page Android page iOS page iOS page Main Docs iOS Main page Android Main page Common page Design Docs Misc Docs Sub-Component Docs iOS Sub-Component Main page iOS Sub-Component Main page Sub-Component Docs Sub-Component Docs Common page ɾ ɾ ɾ iOS page Android page Common page iOS page Android page Common page Create a Design Doc before doing any relatively large scale development. And it will be used on a Tech Review. l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
structure for each Component iOS page Android page Common page iOS page Android page Common page Common page Common page Android page Android page iOS page iOS page Main Docs iOS Main page Android Main page Common page Design Docs Misc Docs Sub-Component Docs iOS Sub-Component Main page iOS Sub-Component Main page Sub-Component Docs Sub-Component Docs Common page ɾ ɾ ɾ iOS page Android page Common page iOS page Android page Common page When a Closing Review, it will be merged onto Main Docs and Sub-Component Docs then archived. Merge l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
structure for each Component iOS page Android page Common page iOS page Android page Common page Common page Common page Android page Android page iOS page iOS page Main Docs iOS Main page Android Main page Common page Design Docs Misc Docs Sub-Component Docs iOS Sub-Component Main page iOS Sub-Component Main page Sub-Component Docs Sub-Component Docs Common page ɾ ɾ ɾ iOS page Android page Common page iOS page Android page Common page Recommend to use “template" feature of Confluence for creating a new page. Especially, for creating a new set of multiple pages, “custom blue print” feature is useful. Please check it out.
are depends on an author. Actions to solving issues About documentation - Criteria Criteria Action - Create a template and run it. - The concept of a document is one that allows the reader to build a “mental model” of the functionality it covers.
links - Release history - Terminology - Resources (e.g. Json files, Config files) - Used APIs and its usages - Database design - Debugging tips Actions to solving issues About documentation - Criteria Items of document (Case of Component Main Docs)
Sequence diagram (Especially, for the complicated logic) - Class description Actions to solving issues About documentation - Criteria Items of document (Case of Sub-Component Docs)
Sub-component Lead Actions to solving issues About documentation - Maintenance Internal Docs structure for each Component iOS page Android page Common page iOS page Android page Common page iOS page iOS page Main Docs iOS Main page Android Main page Common page Design Docs Misc Docs Sub-Component Docs iOS Sub-Component Main page iOS Sub-Component Main page Sub-Component Docs Sub-Component Docs Common page ɾ ɾ ɾ iOS page Android page Common page iOS page Common page Component Lead Sub-component Lead Update the document if needed. Sub-component Lead l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
structure for each Component iOS page Android page Common page iOS page Android page Common page Common page Common page Android page Android page iOS page iOS page Main Docs iOS Main page Android Main page Common page Design Docs Misc Docs Sub-Component Docs iOS Sub-Component Main page iOS Sub-Component Main page Sub-Component Docs Sub-Component Docs Common page ɾ ɾ ɾ iOS page Android page Common page iOS page Android page Common page Sub-component Lead Component Lead Sub-component Lead Sub-component Lead If busy, create a ticket to register the task. l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
code review? - Implementation differences between iOS and Android have become technical debt. - Outage has increased. - Struggling with new member’s onboarding. - Knowledge is dependent on the individual. - Less documentation. Even if there are some documents, already outdated. - Lost opportunities for members to grow. - Manager as a bottleneck. l5XFNPKJz5XJUUFS *ODBOEPUIFSDPOUSJCVUPST -JDFOTFEVOEFS$$#: IUUQTUXFNPKJUXJUUFSDPN
review? - Implementation differences between iOS and Android have become technical debt. - Outage has increased. - Struggling with new member’s onboarding. - Knowledge is dependent on the individual. - Less documentation. Even if there are some documents, already outdated. - Lost opportunities for members to grow. - Manager as a bottleneck. Actions - Component Lead System - Empower members - Delegation Poker - Code Owner - Project Dev Lead - Project Review - Tech Review - Closing Review - Design Doc - Documentation - Searchability - Structured portal page - Criteria - Mental model - Maintenance - Maintenance Week
the Component. - May need a review process for writing the documentation. - Use DocC to manage the documentations (iOS). - Analyzing the situation of the Component Lead system. - Analyze the actual amount of tasks for each Component and Sub-Component, and consider changing assignments according to load conditions, such as increasing or decreasing the number of Sub-Component Leads. In the end, this load balancing will also be systemized.
think time, and hold that think time sacred. “My advice is that you schedule in some think time, and hold that think time sacred.” Kim Scott: Radical Candor 2017, 210 p.