Skip to content

Instantly share code, notes, and snippets.

@MelbourneDeveloper
Last active October 3, 2023 18:25
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MelbourneDeveloper/9171c58b39b47bbf8463e1534126f445 to your computer and use it in GitHub Desktop.
Save MelbourneDeveloper/9171c58b39b47bbf8463e1534126f445 to your computer and use it in GitHub Desktop.
Good Dev Team Test

Good Dev Team Test

A checklist for modern development practices that improve the lives of people in a software development team

  1. Code Coverage is Commensurate with Market Demands
  2. Automated Tests Protect the Main Branch
  3. Team Uses a Task and Bug Tracking System That Everyone Can Edit
  4. People Can Work From Home As Needed
  5. Team Continuously Prioritizes Work
  6. Testers and Developers Share Testing Assets
  7. Code Is Easy to Locate
  8. Compiler Enforces Code Rules
  9. Can Build and Deploy in One Step
  10. Everyone Has Adequate Tooling
  11. Management Trusts Developers
  12. Team Favors Ad Hoc Communication Over Meetings
  13. There Is a Shared Wiki
  14. Developers Contribute To Open Source
  15. Hirers Avoid Bias
  16. Teams Plan Changes and Take Their Time
  17. Teams Minimize Code Duplication
  18. There is Dedicated Admin Person/People
  19. Everybody Has Access To Anonimized Test Data

Code Coverage is Commensurate with Market Demands

Automated tests cover your code to the degree that allows you to refactor and release your software quickly with confidence and without a lengthy QA process.

Automated Tests Protect the Main Branch

It is impossible to push code to the main branch without the code going through the automated tests.

Team Uses a Task and Bug Tracking System That Everyone Can Edit

The team logs tasks and bugs in a centralized system. The system is easy to use, and anyone (including testers, support, and developers) can edit the items with an audit trail. The team assigns tickets to the developers and the assignment is clear.

People Can Work From Home As Needed

There is no requirement to come to the office unless there are exceptional circumstances.

Team Continuously Prioritizes Work

One or more people continuously prioritize tickets through a consensus approach. Feedback from stakeholders (including testers, support, and developers), usage stats, test results, and deadlines strongly influence prioritization.

Testers and Developers Share Testing Assets

Testers and developers share responsibility for the custodianship of testing assets. Test scripts and automated tests reside in the same place for testers and developers. Anyone can run the tests, and fast tests run in the pipeline.

Code Is Easy to Locate

The codebase exists in one location in groups by meaningful folder names. Where code exists in multiple repositories, an index points to its relations.

Compiler Enforces Code Rules

The codebase uses static code analysis to enforce a level of code quality and standardized formatting to which the team agrees. The pipeline enforces these rules, so there is no need to mention them on a pull request.

Can Build and Deploy in One Step

The team can create an increment of the software and deploy it in a single step.

Everyone Has Adequate Tooling

Testers, designers, coders, and everyone else in the team has a set of tools that enables them to do their job effectively.

Management Trusts Developers

Developers work autonomously and don't need to justify their decisions repeatedly, but the two-way contract means developers always work toward the team's goals.

Team Favors ad hoc Communication Over Meetings

Team members communicate via the bug tracking system, chat or call, and rarely schedule meetings. Meetings of three or more people occur when it is more efficient.

There Is a Shared Wiki

Everyone can access and edit the Wiki. It contains simple documentation for things like building and running the automated tests locally. The bug tracking system links to the documentation here when lengthy documentation is necessary.

Developers Contribute To Open Source

Developers log issues and fix bugs in open source repositories on which the team depends, and management does not create unnecessary obstacles for putting code in the public domain.

Hirers Avoid Bias

People who have the power to hire people actively seek out diverse skills and talent that the organization lacks. They actively attempt to remove biases that would otherwise lead to hiring people who look and act and approach software development in the same way as the company founders.

Teams Plan Changes and Take Their Time

Consensus drives the approach and developers don't smash out work that will likely need rework soon.

Teams Minimize Code Duplication

Devs are careful to reuse existing code, and move code to easily accessible shared locations. Devs regularly automate the process of locating duplicate code across repos

There is Dedicated Admin Person/People

At least one person is responsbile for adding or removing access to cloud resources, source control, software accounts and so on. This is the only role that is not a team responsibility seeing that they need to follow the Principle of least privilege

Everybody Has Access To Anonimized Test Data

Developers can easily run the code against a data source which does not contain any private details of actual people, but is realistic.

This is an evolving text. Suggestions welcome. Star to give your support

@eatskolnikov
Copy link

I would also include "Is there an easy to access wiki that is actively being maintained", some big projects have a lot of parts and you may need a wiki to be in the loop for specific aspects that might not be day to day related but a one-off chance and then keep working kind of basis.

@MelbourneDeveloper
Copy link
Author

@eatskolnikov

I would also include "Is there an easy to access wiki that is actively being maintained", some big projects have a lot of parts and you may need a wiki to be in the loop for specific aspects that might not be day to day related but a one-off chance and then keep working kind of basis.

Yes! I meant to add that one. I added it.

@AlexRom12
Copy link

Hi colleagues, an incredible thing happened - our project, seemingly hopelessly stuck, came to life thanks to a dedicated development team. I was honestly shocked by hire dedicated developers to the goal. Not that I doubted, but it's just like in the movies - they really turned our perspective on the task around. Their detailed analysis, creative solutions and constant interaction with us made it seem as if they had been on the same team with us for a long time. We just melted into the work and the results are amazing: deadlines - shortened, functionality - expanded, and the process - turned into a real pleasure. The guys from this team are not just performers, they are true partners. I recommend their services https://codeit.us/services/dedicated-teams as an indispensable source of fresh perspectives on your project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment