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