Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Best Practices For Engineer Growth & Evaluation

Best Practices For Engineer Growth & Evaluation

Africa is home to a very young population now actively pursuing careers in tech.

While online content and developer communities abound, there’s been little success around catalysing the growth of our mostly junior engineer population, and enabling robust self, peer, and formal evaluation for engineers as they acquire new skills and build proficiency.

This talk focuses on lessons, best practices, and a methodology on how to drive high speed growth for African engineers across competence levels.

Charles Opute Odili

February 21, 2020
Tweet

More Decks by Charles Opute Odili

Other Decks in Programming

Transcript

  1. Meet Charles - Started building for the web before there

    was jQuery - Love to play the bass - Will struggle to smile even if my life depended on it! - Led Andela’s Bootcamp. Leading ALC programs design - I am on Github, and I write here, here, here, and here Snr. Technical Program Manager @chaluwa
  2. Open Source Festival 2020 constantly crossing the chasm in a

    journey of life-long learning in tech
  3. Experience Population - Learn & Build Random Things - Create

    A Portfolio - Complete Courses & Earn Certifications - Community Participation. Stardom - Building For Reliability & Reuse - Solving Meaningful Problems - Communication - Consistent & Sustainable Delivery Of Product Quality. - Process & Systematization - Communication Junior Engineers Mid Level Engineers Snr Engineers
  4. Experience Population Growth Mindset | Experiment | Connect - Learn

    & Build Random Things - Create A Portfolio - Complete Courses & Earn Certifications - Community Participation. Stardom Focus | Rigor | Empathy | Holistic - Building For Reliability & Reuse - Solving Meaningful Problems - Communication People | Goals | Structures | Leadership | Humanity - Consistent & Sustainable Delivery Of Product Quality. - Process & Systematization - Communication Junior Engineers Mid Level Engineers Snr Engineers
  5. Experience Population Acquire Information & Skills Build Competence via Experience

    Lead & Empower Junior Engineers Mid Level Engineers Snr Engineers
  6. Full-Stack Engineers Their role is also one of the most

    professionally demanding. 60% were required to learn a completely new framework or platform in 2019 2020’s Most In-Demand Talent
  7. Learn New Tech Skills On The Job Compensation and flexible

    work hours are great, but engineers are prioritising their professional growth over everything else! The Most Important Growth Consideration
  8. Open Source Festival 2020 Growth Path Acquire Information & Skills

    Build Competence Via Experience Lead & Empower Time
  9. Open Source Festival 2020 Growth Path Time Acquire Information &

    Skills Build Competence Via Experience Lead & Empower
  10. Open Source Festival 2020 Growth Path Acquire Information & Skills

    Build Competence Via Experience Lead & Empower
  11. Software Craftsmanship Is Not Always About Code Communication The #1

    Problem Area Developers Need To Grow & Demonstrate Competence In:
  12. Developer Prioritise Communication As You Hire, Empower Or Evaluate Engineers

    If You Care About Quality Of Delivery Industry Prioritise Communication As You Acquire Skills, Build Competence & Lead The 7 C’s of effective communication might help
  13. Framework: Quality, Velocity & Communication (QVC) Quality Velocity (i.e Quantity)

    Communication 1. Did the code produce desired outcome 2. Did it meet style & formatting reqs 3. Did the tests & audits pass 1. Number of raised / merged PRs within set time 2. Right amount of tests & test coverage 1. Clarity of commit messages, PRs, issues e.t.c 2. Comprehensive README files 3. Is code readable. Is API / interfaces consistent
  14. Experience Population 1. Open Mindset 2. Learning Velocity 3. Ownership

    & Ability To Follow Process 4. Communication 1. Depth, Rigor & Delivery Velocity 2. Holistic Thinking, Problem Solving 3. Communication 1. Leadership 2. Delivery, Structure, Culture 3. Communication Junior Engineers Mid Level Engineers Snr Engineers
  15. 1. The World Is Looking For Generalists With The Muscle

    For High Growth 2. Linear Is Not How Your Growth Path Looks Like 3. Communication Is The #1 Skill To Master & Evaluate For Build The Muscle For Quality, Velocity & Effective Communication Via Open Source Take Away
  16. Sample Scenario: Build a add function In your calculator app,

    create a function named add or similar. Given a collection of numbers, it should compute and return their sum.
  17. After leading Andela’s Bootcamp & ALC evaluation structures for years,

    trust me when I say >= 85% of entries for the “add function challenge” will look like the above code snippet which I actually pulled off GitHub Sample Scenario: Build a add function In your calculator app, create a function named add or similar. Given a collection of numbers, it should compute and return their sum.
  18. How can junior engineers begin to etch towards the mid

    level tier through this problem statement & codebase ? Rigor, Reliability, Depth 1. Should the collection of inputs be of infinite size 2. What if you don’t get an array or it’s an empty array 3. What if the array has some strings of numbers, e.g “2” instead 2, null, undefined, objects, other arrays e.t.c 4. How to handle a collection of only 1 number Mid Tier Core Competence: Rigor, Reliability, Reuse, Depth, Empathy, Holistic Holistic, Empathy, Reuse 1. Should the user have to pass an array even if adding only 2 numbers 2. Should this add function be used only as part of the calculator app? 3. What level of documentation will facilitate adoption and correct use of the function
  19. How can junior engineers begin to etch towards the mid

    level tier through this problem statement & codebase ? Mid Tier Core Competence: Rigor, Reliability, Reuse, Depth, Empathy, Holistic Communication 1. Did you seek clarification on gray areas before / while coding the solution 2. Code documentation, highlighting input, output, conditions, errors, behaviour, usage samples 3. Is the code readable and are there comments for WHY’s of critical areas 4. Could you have employed badges to communicate key status, e.g test coverage 1. Quality: a. Are there lint, formatting, or unit test errors b. What’s the maintainability score for the code 2. Velocity / Quantity: a. What % of the codebase is tested b. How long did it take to build