INTRODUCING THE PAMSTACK
A NEW FRAMEWORK FOR CREATING
SUSTAINABLE DEVELOPMENT TEAMS
INCLUSIVE ARCHITECTURE
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WHAT DOES
INCLUSIVE
ARCHITECTURE
ENABLE?
● Less project maintenance
● Less overall stress
● More cooperation
● Lower cost of developers
● Lower cost of project
● Greater diversity
ROB OCEL
@robocell
Senior Software Engineer at This Dot
Host, Modern Web Podcast
Host, This Dot Labs Podcast
TRACY LEE
@ladyleet
Lead, This Dot Labs, JS consulting (Angular, React, Vue, Node, Polymer)
Google Developer Expert, Angular
Microsoft MVP
RxJS Core Team
Juniors take too much time
WHY AREN’T JUNIORS
SUCCESSFUL ON OUR
TEAMS?
People believe that the reason
juniors don’t succeed in their teams
is due to a deficiency of the juniors.
They don’t realize it’s actually a fault
of their own.
How non-inclusive projects hurt juniors:
● Poor onboarding documentation
● Rely on individual excellence
● The superiority complex
● No review or mentorship
How non-inclusivity actually hurts everyone
● Harder to onboard and hire
● “Hit by a bus” fears
● Lack of inclusion
● Lack of advancement & stagnant careers
WHAT YOUR
PROJECT COULD BE
WITH AN
INCLUSIVE VISION
Success is person-independent, but team-dependent
Constant stream of developers across the spectrum of experience
Less burnout, less panic hiring
More innovation, more excitement, more learning
THE INCLUSIVE VISION
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
“Processes are usually ad hoc and chaotic.
The organization usually does not provide a
stable environment to support processes...”
“... Success in these organizations depends
on the competence and heroics of the
people in the organization and not on the
use of proven processes...”
“...In spite of this chaos, these organizations
often produce products and services that
work, but they frequently exceed the
budget and schedule documented in their
plans...”
“...These organizations are characterized by
a tendency to overcommit, abandon their
processes in a time of crisis, and be unable
to repeat their successes.”
Process doesn’t have to be...
Process doesn’t have to be...
��
STORYTIME
����♀����
● Clear expectations
● Greater team engagement and cooperation
● No single-points-of-failure
● Less stress during the crazy
● Reduced conflicts and fewer power struggles
THE BENEFITS OF
PROCESS DONE RIGHT
TRAINPLAN
EXECUTEREVIEW
MEASURE
PROCESS
TRAINPLAN
EXECUTEREVIEW
MEASURE
PROCESS
● What needs to be done?
● Who will do those things?
● How should it be done?
● When should it be done?
HOW TO CREATE PLANS
The person who makes the initial changes to the code, makes the review in
CodeCollaborator and revises the Verification Items based on the results of the peer
review.
Responsible for reviewing Verification Items. Can be any developer except the
author. At least one Peer Reviewer is required.
Responsible for reviewing code. Can be any Project 4 team member. Unlike Peer
Reviewers, they are not required to approve a review before it concludes. Having an
observer is not required either.
They take the role of Authors, Peer Reviewers or Observers.
AUTHOR
PEER REVIEWERS
OBSERVERS
DEVELOPERS
ROLES AND RESPONSIBILITIES
The purpose of code peer review is to ensure
that changes to source code Verification Items
are correct, appropriate and follow style
guidelines.
The goal of the code peer review process is to
discover and correct defects in code before they
can be observed by testers or customers.
CODE PEER REVIEW
Once all Peer Reviewers have
completed the review, the author
responds to comments and
corrects defects.
If there is a disagreement about how
to resolve an issue, the parties
involved should work together to
reach compromise. If an agreement
is not reached, the Development
Manager will arbitrate the dispute.
If a review defect cannot be resolved in the
scope of the peer review, it will be marked
as Track Externally and a defect will be
created in the Quality Center for the issue
and the defect number is added on the
peer review for traceability.
TRAINPLAN
EXECUTEREVIEW
MEASURE
PROCESS
● Minimize errors
● Teach new team members
● Reduce cognitive load
CREATE CHECKLISTS
● (Author) All relevant requirements are met
● (Author) Relevant documentation is updated
● (Author) All unit tests pass
● (Author) Code has been developer-tested
● (Author) Completed a self-review of the code,
● (Author) The code compiles without error
CODE REVIEW CHECKLIST
● Algorithms used in the code are correct
● Code is commented usefully
● All relevant documentation is updated
● New code conforms to the Coding Standards
● No files are missing from the review
● The code addresses all use cases and edge cases
● The code compiles and all unit tests pass
● The code validates input parameters
CODE REVIEW CHECKLIST
TRAINPLAN
EXECUTEREVIEW
MEASURE
PROCESS
ALWAYS GOT YOUR BACK
EFFECTS OF REVIEWS
● Improved Quality
● Cross-Pollination of Ideas
● Redundant Learning
● Reduced Stress
● Eliminating the Fear of Making Mistakes
TYPES OF REVIEWS
● Meeting Notes
● Designs
● Requirements
● Tests
● Code
● Plans
● Email to Clients
TRAINPLAN
EXECUTEREVIEW
MEASURE
PROCESS
RECORD RESULTS
TRAINPLAN
EXECUTEREVIEW
MEASURE
PROCESS
1. How did we do?
2. Can we improve our execution?
3. Can we improve our processes?
4. Is the data we captured useful?
Should it change?
REVIEW, REVISE, ITERATE
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WEB DEVELOPMENT IS HARD
Performance
Security
Accessibility
Responsive Design
Progressive Enhancement
Browser Compatibility
Progressive Web Apps
WEB DEVELOPMENT IS HARD
Performance
Security
Accessibility
Responsive Design
Progressive Enhancement
Browser Compatibility
Progressive Web Apps
COMPLEXITY IS A BARRIER
TO ENTRY IN OUR INDUSTRY
FRAMEWORKS CAN HELP!
THEY MAKE IT EASY TO DO THE RIGHT THING
LET A FRAMEWORK
DEAL WITH BASIC
PERFORMANCE & SCALABILITY
AMP provides all this for <amp-img>
● Image resize based on the size of the user’s viewport
● Images efficiently loaded or pre-loaded
● Automatically calculate reasonable values for the sizes attribute
● Content can be displayed as a placeholder while the image loads
● Content can be shown as a fallback if the image fails to load
● Images can be automatically converted to more efficient image formats
like WebP in the AMP cache
● Images in the cache might also be resized and automatically built into a
srcset in your document
QUICK START DEVELOPMENT -
CLIS FTW!
● Scaffolding a new project
● Zero-config environment
● Smart defaults
● Out of the box performance using
automatic differential serving,
lazy loading, tree shaking, AoT
compilation
● Actively maintained and kept
up-to-date with core libraries
CLIS FTW!
● Reduce the risk of defects due to
out-of-date or misconfigured
technologies
● Easy migration between major
versions of libraries
● Documentation readily available
● Low risk - ejecting always a
possibility
FRAMEWORK GUIS
● Goal is to isolate the construction of the interface from the
business logic and the complicated tech integrations
● This could be done by separating the application into layers
● The senior engineers can implement the most critical sections
and provide hooks for juniors to wire the interface together
ARCHITECTURE
STATE MANAGEMENT
STATE MANAGEMENT
STATE MACHINES
DESIGN AND USER EXPERIENCE
● Shared visual language for your team
● Focus and constrain the set of options when building interfaces
● Contain:
○ Design purpose and guidelines
○ Designer resources (ex: Sketch files)
○ Content guidelines
○ Patterns
○ CSS Classes
DESIGN SYSTEMS
● Set of basic reusable components
● Implement the requirements of a design system
● Help tackle accessibility, responsiveness, etc.
● API is usually more complete and thoughtful
COMPONENT LIBRARIES
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
If developers aren’t growing, they’re much more likely
to look for a new job.
35% of employees who are not regularly mentored
look for a new job within 12 months.
- Spherion Emerging Workforce Study -
● Costs up to double a developer’s salary to recruit / train someone
○ Applicant screeners and interviewers
○ Recruiters
○ Trainers and lost productivity
● Hiring can take 6-8 weeks; ramp-up can take 2-6 months
● In contrast, even spending a lot to mentor employees can pay off
● Mentorship dollars now can pay off in improved productivity later
COSTS OF HIRING
2x 0x 0x 5x 0x
1x 2x 3x 1x 5x
1x 2x 3x 1x 5x
MENTORSHIP OUTPACES INDIVIDUAL EXCELLENCE -
THE MYTH OF THE 10X DEVELOPER -
4x 4x 6x 7x 10x
INDIVIDUAL MENTOR MENTOR INDIVIDUAL MENTOR
● Accelerates learning & growth
● Increases confidence
● Decreases fear of contribution/collaboration/idea sharing
● Increases communication skills
● Mentees feel more invested-in and valued
● Improves upward mobility (5x more likely to be promoted)
● Mentees become mentors and pass all these benefits on
Eric Elliott https://medium.com/javascript-scene/struggling-to-find-great-senior-javascript-developers-mentorship-is-the-answer-d352ea3574eb
WHAT’S IN IT FOR MENTEES
● Great perk for recruiting
● Increases developer productivity & retention (~70% more likely)
● Reduces knowledge silos
● Improves the bus factor — reduces succession risks
● Creates a more positive, helpful, collaborative team culture
● Increases loyalty
● Increases employee engagement and motivation
● Improves leader identification and promotion pipeline — mentors
are 6 times more likely to be promoted (Sun Microsystems)
WHAT’S IN IT FOR OTHERS
Eric Elliott https://medium.com/javascript-scene/struggling-to-find-great-senior-javascript-developers-mentorship-is-the-answer-d352ea3574eb
● Fostering a culture of teaching and sharing
● Formal 1:1 Sessions
● Code Reviews
● Pair Programming
● “Tech Talks”
● Chat Channels
SHIFTING THE ROLE
OF THE SENIOR DEV
MENTORSHIP INCLUDES
Technical
Challenges
Professional
Instruction
Non
Technical
Skills
Career
Development
Radical
Candor
Feedback
WHAT IS THE PAMSTACK?
PROCESS MENTORSHIPABSTRACTIONS
HOW JUNIORS CAN HELP THEIR
TEAM USE THE PAMSTACK
● Bootstrap process by writing things down, sharing with the team
● Mentor and help your peers who are being onboarded
● Ask questions about the project, code, or process. Document the
answers and share with others.
● Do and ask for code reviews proactively as a way to understand,
get feedback, and create a culture of mentorship.
● If team loves your process or ideas, ask for it to be formally
incorporated into process
hi@thisdot.co
THANK YOU!

Inclusive Architecture - Introducing the PAMstack - [Refactr.tech]

  • 1.
    INTRODUCING THE PAMSTACK ANEW FRAMEWORK FOR CREATING SUSTAINABLE DEVELOPMENT TEAMS INCLUSIVE ARCHITECTURE
  • 2.
    WHAT IS THEPAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 3.
    WHAT DOES INCLUSIVE ARCHITECTURE ENABLE? ● Lessproject maintenance ● Less overall stress ● More cooperation ● Lower cost of developers ● Lower cost of project ● Greater diversity
  • 4.
    ROB OCEL @robocell Senior SoftwareEngineer at This Dot Host, Modern Web Podcast Host, This Dot Labs Podcast
  • 5.
    TRACY LEE @ladyleet Lead, ThisDot Labs, JS consulting (Angular, React, Vue, Node, Polymer) Google Developer Expert, Angular Microsoft MVP RxJS Core Team
  • 6.
  • 7.
  • 8.
    People believe thatthe reason juniors don’t succeed in their teams is due to a deficiency of the juniors. They don’t realize it’s actually a fault of their own.
  • 9.
    How non-inclusive projectshurt juniors: ● Poor onboarding documentation ● Rely on individual excellence ● The superiority complex ● No review or mentorship
  • 10.
    How non-inclusivity actuallyhurts everyone ● Harder to onboard and hire ● “Hit by a bus” fears ● Lack of inclusion ● Lack of advancement & stagnant careers
  • 11.
    WHAT YOUR PROJECT COULDBE WITH AN INCLUSIVE VISION
  • 12.
    Success is person-independent,but team-dependent Constant stream of developers across the spectrum of experience Less burnout, less panic hiring More innovation, more excitement, more learning THE INCLUSIVE VISION
  • 13.
    WHAT IS THEPAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 14.
    WHAT IS THEPAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 15.
    “Processes are usuallyad hoc and chaotic. The organization usually does not provide a stable environment to support processes...”
  • 16.
    “... Success inthese organizations depends on the competence and heroics of the people in the organization and not on the use of proven processes...”
  • 17.
    “...In spite ofthis chaos, these organizations often produce products and services that work, but they frequently exceed the budget and schedule documented in their plans...”
  • 18.
    “...These organizations arecharacterized by a tendency to overcommit, abandon their processes in a time of crisis, and be unable to repeat their successes.”
  • 19.
  • 20.
  • 21.
  • 22.
    ● Clear expectations ●Greater team engagement and cooperation ● No single-points-of-failure ● Less stress during the crazy ● Reduced conflicts and fewer power struggles THE BENEFITS OF PROCESS DONE RIGHT
  • 23.
  • 24.
  • 25.
    ● What needsto be done? ● Who will do those things? ● How should it be done? ● When should it be done? HOW TO CREATE PLANS
  • 29.
    The person whomakes the initial changes to the code, makes the review in CodeCollaborator and revises the Verification Items based on the results of the peer review. Responsible for reviewing Verification Items. Can be any developer except the author. At least one Peer Reviewer is required. Responsible for reviewing code. Can be any Project 4 team member. Unlike Peer Reviewers, they are not required to approve a review before it concludes. Having an observer is not required either. They take the role of Authors, Peer Reviewers or Observers. AUTHOR PEER REVIEWERS OBSERVERS DEVELOPERS ROLES AND RESPONSIBILITIES
  • 30.
    The purpose ofcode peer review is to ensure that changes to source code Verification Items are correct, appropriate and follow style guidelines. The goal of the code peer review process is to discover and correct defects in code before they can be observed by testers or customers. CODE PEER REVIEW Once all Peer Reviewers have completed the review, the author responds to comments and corrects defects. If there is a disagreement about how to resolve an issue, the parties involved should work together to reach compromise. If an agreement is not reached, the Development Manager will arbitrate the dispute. If a review defect cannot be resolved in the scope of the peer review, it will be marked as Track Externally and a defect will be created in the Quality Center for the issue and the defect number is added on the peer review for traceability.
  • 31.
  • 32.
    ● Minimize errors ●Teach new team members ● Reduce cognitive load CREATE CHECKLISTS
  • 33.
    ● (Author) Allrelevant requirements are met ● (Author) Relevant documentation is updated ● (Author) All unit tests pass ● (Author) Code has been developer-tested ● (Author) Completed a self-review of the code, ● (Author) The code compiles without error CODE REVIEW CHECKLIST
  • 34.
    ● Algorithms usedin the code are correct ● Code is commented usefully ● All relevant documentation is updated ● New code conforms to the Coding Standards ● No files are missing from the review ● The code addresses all use cases and edge cases ● The code compiles and all unit tests pass ● The code validates input parameters CODE REVIEW CHECKLIST
  • 35.
  • 36.
  • 37.
    EFFECTS OF REVIEWS ●Improved Quality ● Cross-Pollination of Ideas ● Redundant Learning ● Reduced Stress ● Eliminating the Fear of Making Mistakes
  • 38.
    TYPES OF REVIEWS ●Meeting Notes ● Designs ● Requirements ● Tests ● Code ● Plans ● Email to Clients
  • 39.
  • 40.
  • 41.
  • 42.
    1. How didwe do? 2. Can we improve our execution? 3. Can we improve our processes? 4. Is the data we captured useful? Should it change? REVIEW, REVISE, ITERATE
  • 43.
    WHAT IS THEPAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 44.
    WHAT IS THEPAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 45.
    WEB DEVELOPMENT ISHARD Performance Security Accessibility Responsive Design Progressive Enhancement Browser Compatibility Progressive Web Apps
  • 46.
    WEB DEVELOPMENT ISHARD Performance Security Accessibility Responsive Design Progressive Enhancement Browser Compatibility Progressive Web Apps
  • 47.
    COMPLEXITY IS ABARRIER TO ENTRY IN OUR INDUSTRY
  • 49.
    FRAMEWORKS CAN HELP! THEYMAKE IT EASY TO DO THE RIGHT THING
  • 50.
    LET A FRAMEWORK DEALWITH BASIC PERFORMANCE & SCALABILITY
  • 51.
    AMP provides allthis for <amp-img> ● Image resize based on the size of the user’s viewport ● Images efficiently loaded or pre-loaded ● Automatically calculate reasonable values for the sizes attribute ● Content can be displayed as a placeholder while the image loads ● Content can be shown as a fallback if the image fails to load ● Images can be automatically converted to more efficient image formats like WebP in the AMP cache ● Images in the cache might also be resized and automatically built into a srcset in your document
  • 52.
  • 53.
    ● Scaffolding anew project ● Zero-config environment ● Smart defaults ● Out of the box performance using automatic differential serving, lazy loading, tree shaking, AoT compilation ● Actively maintained and kept up-to-date with core libraries CLIS FTW! ● Reduce the risk of defects due to out-of-date or misconfigured technologies ● Easy migration between major versions of libraries ● Documentation readily available ● Low risk - ejecting always a possibility
  • 54.
  • 55.
    ● Goal isto isolate the construction of the interface from the business logic and the complicated tech integrations ● This could be done by separating the application into layers ● The senior engineers can implement the most critical sections and provide hooks for juniors to wire the interface together ARCHITECTURE
  • 56.
  • 57.
  • 58.
  • 61.
    DESIGN AND USEREXPERIENCE
  • 63.
    ● Shared visuallanguage for your team ● Focus and constrain the set of options when building interfaces ● Contain: ○ Design purpose and guidelines ○ Designer resources (ex: Sketch files) ○ Content guidelines ○ Patterns ○ CSS Classes DESIGN SYSTEMS
  • 64.
    ● Set ofbasic reusable components ● Implement the requirements of a design system ● Help tackle accessibility, responsiveness, etc. ● API is usually more complete and thoughtful COMPONENT LIBRARIES
  • 65.
    WHAT IS THEPAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 66.
    WHAT IS THEPAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 67.
    If developers aren’tgrowing, they’re much more likely to look for a new job. 35% of employees who are not regularly mentored look for a new job within 12 months. - Spherion Emerging Workforce Study -
  • 68.
    ● Costs upto double a developer’s salary to recruit / train someone ○ Applicant screeners and interviewers ○ Recruiters ○ Trainers and lost productivity ● Hiring can take 6-8 weeks; ramp-up can take 2-6 months ● In contrast, even spending a lot to mentor employees can pay off ● Mentorship dollars now can pay off in improved productivity later COSTS OF HIRING
  • 70.
    2x 0x 0x5x 0x 1x 2x 3x 1x 5x 1x 2x 3x 1x 5x MENTORSHIP OUTPACES INDIVIDUAL EXCELLENCE - THE MYTH OF THE 10X DEVELOPER - 4x 4x 6x 7x 10x INDIVIDUAL MENTOR MENTOR INDIVIDUAL MENTOR
  • 71.
    ● Accelerates learning& growth ● Increases confidence ● Decreases fear of contribution/collaboration/idea sharing ● Increases communication skills ● Mentees feel more invested-in and valued ● Improves upward mobility (5x more likely to be promoted) ● Mentees become mentors and pass all these benefits on Eric Elliott https://medium.com/javascript-scene/struggling-to-find-great-senior-javascript-developers-mentorship-is-the-answer-d352ea3574eb WHAT’S IN IT FOR MENTEES
  • 72.
    ● Great perkfor recruiting ● Increases developer productivity & retention (~70% more likely) ● Reduces knowledge silos ● Improves the bus factor — reduces succession risks ● Creates a more positive, helpful, collaborative team culture ● Increases loyalty ● Increases employee engagement and motivation ● Improves leader identification and promotion pipeline — mentors are 6 times more likely to be promoted (Sun Microsystems) WHAT’S IN IT FOR OTHERS Eric Elliott https://medium.com/javascript-scene/struggling-to-find-great-senior-javascript-developers-mentorship-is-the-answer-d352ea3574eb
  • 73.
    ● Fostering aculture of teaching and sharing ● Formal 1:1 Sessions ● Code Reviews ● Pair Programming ● “Tech Talks” ● Chat Channels SHIFTING THE ROLE OF THE SENIOR DEV
  • 74.
  • 75.
    WHAT IS THEPAMSTACK? PROCESS MENTORSHIPABSTRACTIONS
  • 76.
    HOW JUNIORS CANHELP THEIR TEAM USE THE PAMSTACK ● Bootstrap process by writing things down, sharing with the team ● Mentor and help your peers who are being onboarded ● Ask questions about the project, code, or process. Document the answers and share with others. ● Do and ask for code reviews proactively as a way to understand, get feedback, and create a culture of mentorship. ● If team loves your process or ideas, ask for it to be formally incorporated into process
  • 77.