Arch Lunch: 2019-06-20

Arch Lunch: 2019-06-20

Developer Experience Roadmap thoughts

 

  • Current things

 

  •  

    •  

      • Jenkins optimizations

      • Automated Python and JS dependency upgrades

      • Feature toggle reporting

 

  • Ideas

 

  •  

    • Further automation of dependency upgrades

      • Some possible solutions

        • Auto-merge and auto-deploy

        • Bulk-upgrade tool

        • Automated async-upgrade tool

      • Auto-releasing of libraries

        • Automate mechanics of releases

      • Find changelogs on external dependencies

      • Further investment in renovate - get feedback from current users

    • Developer experience observations and “design sprint”

    • Docs (?)

    • Tests

      • Slow in multiple repos (e-commerce and edx-platform) for different reasons

      • Analyze our tests

        • Coverage.py 5.0

          • Who tests what map

        • Can then remove tests

          • To minimize updating tests

          • To minimize running tests

      • Optimizing which tests run for a PR

    • Data

      • Test Data OEP

        • Standardizes on schema

        • Reference example

    • Micro-frontends on Devstack

    • Configuration

      • Simplify config pipeline

        • Devops has done some foundational work

        • Needs follow-up to simplify for developer experience

    • A/B testing enablement

      • bi-toolkit-repo has some tooling

      • Don’t have

        • Automatically running reports

      • Optimizely/segment training for developers

    • Ownership enablement

      • Observability tooling, for example

      • “Alerts are much more useful than dashboards”

        • Devops alerts auto-create tickets

    • PR status

      • “Why is my commit not on Prod yet?”

      • Possibly: improve GoCD pipeline status reporting/monitoring

      • Possibly: also gather data and metrics on PR lifecycles

Startup time on edx-platform

  • Legacy Shopping cart - 20% of startup

  • Scanning for entry points - also significant time

    • Specifically, stevedore-based plugins (xblocks, course-tabs, django-app-plugins)

    • Seems we might be scanning twice

    • Can we move to more configurable Django-style list?

  • Studio outages - when rebooting for remote config changes

Hackathon Brainstorming

  • Deprecated frameworks

    • Python 2

    • Node 8

  • Performance of student dashboard