Toggle Menu

JavaScript Best Practices Workshopper

A self-paced command-line workshopper to learn the best practices of writing clean JavaScript code, featured on

In 2016, Excella’s JavaScript Capability Area created a self-paced CLI tool, so developers can learn some of the Agile Engineering best practices, critical for delivering a high-quality codebase, like SOLID principals using JavaScript.

Excellians Kevin Groat, Doguhan Uluca, Sam Blissard, Brendan Sawyer, Alex Hoffman, and Cameron Ivey, among others, created the initial English version. Since that time, community members have submitted bug fixes to improve it and added translations for Portuguese and Russian.


The goal of this workshopper is to help developers learn how to create a resilient codebase using best practices. The workshopper guides developers through exercises that make incremental improvements to a “bad” codebase. The exercises help developers learn how to keep code maintainable and avoid poor coding practices.


Developers begin by making changes to a vending machine app, primarily using a file called vendingMachine.js. In the next few exercises, developers break down the vending machine into a program that functions the same but is easier to maintain, test, and update.

Developers learn:

  • Separation of Concerns
  • Avoiding Switch Statements
  • Test-Driven Development
  • Fixing teammates’ mistakes


We welcome your issues, questions, ideas, and contributions on GitHub. We’d love for you to check out, star, or fork the project at:



Share This

Share on Twitter Share on Facebook Share on LinkedIn Share via email

You Might Also Like


Agile eXamined: Alternatives to User Stories

A To-Do List is the backbone of each program/effort/project. It doesn’t matter if you use...

Software Development

I Wrote a 900-page Book to Help You Conquer Web Development

I’d like to welcome you to the wonderful world of web development! Whether you’re new...

Change Management

Agile Change Management During Agile Transformation

Change Management encompasses the processes, tools, and techniques to manage the people side of change...