1 of 54

INTRODUCING THE PAMSTACK

A NEW FRAMEWORK FOR CREATING SUSTAINABLE DEVELOPMENT TEAMS

INCLUSIVE ARCHITECTURE

2 of 54

WHAT IS THE PAMSTACK?

PROCESS

MENTORSHIP

ABSTRACTIONS

3 of 54

WHY DO WE WANT TO BE INCLUSIVE OF JUNIORS?

  • Less project maintenance
  • Less overall stress
  • Lower cost of developers
  • Lower cost of project
  • Greater diversity

4 of 54

ROB OCEL

@robocell

Senior Software Engineer at This Dot Labs

Host, Modern Web Podcast

Host, This Dot Labs Podcast

Speaker, PAMstack, Frameworks, Mentorship

5 of 54

TRACY LEE

@ladyleet

Lead, This Dot Labs, JS consulting (Angular, React, Vue, Node, Polymer)

RxJS Core Team

Google Developer Expert, Angular

Microsoft MVP

Community Rel, Node.js @ OpenJS Foundation

Women Techmakers, GDG Silicon Valley & Triangle

Modern Web Podcast

6 of 54

WHY AREN’T JUNIORS SUCCESSFUL ON OUR TEAMS?

7 of 54

People believe that the reason juniors don’t succeed is due to a deficiency of the juniors.

They don’t realize it may be a fault of the team.

8 of 54

How non-inclusive projects hurt juniors:

  • Poor onboarding documentation

  • Rely on individual excellence

  • Unnecessarily complex codebase

  • No review or mentorship

9 of 54

How non-inclusivity actually hurts everyone

  • Harder to onboard and hire

  • “Hit by a bus” fears

  • Productivity delays

  • Lack of advancement & stagnant careers

10 of 54

Individuals succeed and are enabled by teamwork and collaboration

Decrease unnecessary complexity and focus on important features

More innovation, more excitement, more learning

A wider and more diverse set of engineers and skills on your team

THE INCLUSIVE VISION

11 of 54

WHAT IS THE PAMSTACK?

PROCESS

MENTORSHIP

ABSTRACTIONS

12 of 54

WHAT IS THE PAMSTACK?

PROCESS

MENTORSHIP

ABSTRACTIONS

13 of 54

“Processes are usually ad hoc and chaotic. The organization usually does not provide a stable environment to support processes...”

14 of 54

“... Success in these organizations depends on the competence and heroics of the people in the organization and not on the use of proven processes...”

15 of 54

“...These organizations are characterized by a tendency to overcommit, abandon their processes in a time of crisis, and be unable to repeat their successes.”

16 of 54

Process doesn’t have to be...

17 of 54

Process doesn’t have to be...

18 of 54

  • 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

19 of 54

TRAIN

PLAN

EXECUTE

REVIEW

MEASURE

PROCESS

20 of 54

  • What needs to be done?
  • Who will do those things?
  • How should it be done?
  • When should it be done?

HOW TO CREATE PLANS

21 of 54

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.

Once all Peer Reviewers have completed the review, the author responds to comments and corrects defects.

CODE PEER REVIEW

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.

22 of 54

AUTHOR

PEER REVIEWERS

OBSERVERS

DEVELOPERS

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 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.

ROLES AND RESPONSIBILITIES

23 of 54

  • Minimize errors
  • Teach new team members
  • Reduce cognitive load

CREATE CHECKLISTS

24 of 54

EFFECTS OF REVIEWS

  • Improved Quality
  • Cross-Pollination of Ideas
  • Redundant Learning
  • Reduced Stress
  • Eliminating the Fear of Making Mistakes

25 of 54

TYPES OF REVIEWS

  • Meeting Notes
  • Designs
  • Requirements
  • Tests
  • Code
  • Plans
  • Email to Clients

26 of 54

  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

27 of 54

WHAT IS THE PAMSTACK?

PROCESS

MENTORSHIP

ABSTRACTIONS

28 of 54

WHAT IS THE PAMSTACK?

PROCESS

MENTORSHIP

ABSTRACTIONS

29 of 54

WEB DEVELOPMENT IS HARD

Performance

Security

Accessibility

Responsive Design

Progressive Enhancement

Browser Compatibility

Progressive Web Apps

30 of 54

WEB DEVELOPMENT IS HARD

Performance

Security

Accessibility

Responsive Design

Progressive Enhancement

Browser Compatibility

Progressive Web Apps

31 of 54

COMPLEXITY IS A BARRIER TO ENTRY IN OUR INDUSTRY

32 of 54

33 of 54

FRAMEWORKS CAN HELP!

THEY MAKE IT EASY TO DO THE RIGHT THING

34 of 54

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

35 of 54

  • 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

ANGULAR CLI

  • 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

36 of 54

STATE MANAGEMENT

37 of 54

  • Strongly typed methods, variables, services
  • Easier to understand functionality
  • Stricter rules come with less bugs and growing need to understand the purpose of each method
  • Know what to expect and plan accordingly
  • Better error handling, spotting the root of the problem

TYPESCRIPT

38 of 54

DESIGN AND USER EXPERIENCE

39 of 54

40 of 54

  • 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

41 of 54

  • 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

42 of 54

STATE MACHINES

43 of 54

44 of 54

45 of 54

WHAT IS THE PAMSTACK?

PROCESS

MENTORSHIP

ABSTRACTIONS

46 of 54

WHAT IS THE PAMSTACK?

PROCESS

MENTORSHIP

ABSTRACTIONS

47 of 54

48 of 54

  • 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

WHAT’S IN IT FOR MENTEES

49 of 54

  • 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

50 of 54

MENTORSHIP INCLUDES

Technical Challenges

Professional Instruction

Non Technical Skills

Career Development

Radical Candor Feedback

51 of 54

  • 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

52 of 54

WHAT IS THE PAMSTACK?

PROCESS

MENTORSHIP

ABSTRACTIONS

53 of 54

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

54 of 54

hi@thisdot.co

THANK YOU!