---
title: "Awesome developing"
source: Awesome Developing (JPH)
source_url: https://github.com/joelparkerhenderson/awesome-developing
licence: CC0-1.0
domain: leadership-and-culture
subdomain: jph-awesome-developing
date_added: 2026-04-25
---

# Awesome developing

Ideas for developing software and systems. Work in progress.


## Introduction

Developing software and systems can be complex. There are many ideas and resources that can help practitioners, and one of the best ideas we use is to share information.

This document is our notes and work in progress about ideas and resources that are helping us build better software, and better teams, and better results.


## Preferences

Preferences for working:

* action > indecision
* written > verbal
* experiment > intuition
* testing > guessing
* empowering > commanding
* commitment > consensus

Preferences for implementation:

* code > documentation
* asynchronous > blocking
* functional > stateful
* composition > inheritance
* distributed > centralized
* messaging > procedural


## Developing the right things the right ways

How can we know if we're developing the right things? We ask questions and we communiate with everyone involved.

Developing with purpose:

* [Strategic Balanced Scorecard (SBS)](https://github.com/joelparkerhenderson/strategic_balanced_scorecard)
* [Objectives and key results (OKR)](https://github.com/joelparkerhenderson/objectives_and_key_results)
* [Key performance indicator (KPI)](https://github.com/joelparkerhenderson/key_performance_indicator)
* [Value Stream Mapping (VSM)](https://github.com/joelparkerhenderson/value_stream_mapping)

Developing with teams:

* [Ground rules](https://github.com/joelparkerhenderson/ground_rules)
* [Crucial conversations](https://github.com/joelparkerhenderson/crucial_conversations)
* [TEAM FOCUS](https://github.com/joelparkerhenderson/team_focus)
* [Milestones ideas &amp; examples](https://github.com/joelparkerhenderson/milestones)
* [Feedback request template](https://github.com/joelparkerhenderson/feedback_request_template)
* [Social Value Orientation (SVO)](https://github.com/joelparkerhenderson/social_value_orientation)
* [Wordbooks &amp; glossaries](https://github.com/joelparkerhenderson/wordbooks)

Developing with planners:

* [Stakeholder analysis](https://github.com/joelparkerhenderson/stakeholder_analysis)
* [Responsibility assignment matrix (RAM)](https://github.com/joelparkerhenderson/responsibility_assignment_matrix)
* [SMART criteria for goals](https://github.com/joelparkerhenderson/smart_criteria)
* [ADKAR change manangement model](https://github.com/joelparkerhenderson/adkar_change_management_model)

Developing with project managers:

* [Project management checklist](https://github.com/sixarm/sixarm_project_management_checklist)
* [Project management priority score](https://github.com/sixarm/sixarm_project_management_priority_score)
* [Project management ROPE estimate](https://github.com/sixarm/sixarm_project_management_rope_estimate)

Developing with specifications:

* [Statement of Work (SOW)](https://github.com/joelparkerhenderson/statement_of_work)
* [Functional specs template](https://github.com/joelparkerhenderson/functional_specifications_template)
* [Functional specs tutorial](https://github.com/joelparkerhenderson/functional_specifications_tutorial)

Developing with assessments:

* [Agile assessment](https://github.com/joelparkerhenderson/agile_assessment)
* [Discovery assessment](https://github.com/joelparkerhenderson/discovery_assessment)
* [Maturity Models (MM)](https://github.com/joelparkerhenderson/maturity_models)

Developing with startups:

* [Pitch deck](https://github.com/joelparkerhenderson/pitch_deck)
* [Company culture](https://github.com/joelparkerhenderson/company_culture)
* [Vision statements](https://github.com/joelparkerhenderson/vision_statements)
* [Oblique strategies](https://github.com/joelparkerhenderson/oblique_strategies)

Developing with legal agreements:

* [Consulting agreement](https://github.com/sixarm/sixarm_company_consulting_agreement)
* [Confidentiality agreement](https://github.com/sixarm/sixarm_company_confidentiality_agreement)

Developing with engineers:

* [Architecture Decision Record (ADR)](https://github.com/joelparkerhenderson/architecture_decision_record)
* [System quality attributes (SQA)](https://github.com/joelparkerhenderson/system_quality_attributes)
* [Coordinated disclosure](https://github.com/joelparkerhenderson/coordinated_disclosure)
* [Versioning](https://github.com/joelparkerhenderson/versioning)

Devloping with git:

* [Git commit message](https://github.com/joelparkerhenderson/git_commit_message)
* [Git commit template](https://github.com/joelparkerhenderson/git_commit_template)
* [Git flow help](https://github.com/joelparkerhenderson/git_flow_help)
* [GitHub special files and paths](https://github.com/joelparkerhenderson/github_special_files_and_paths)


## Computer science concepts

* [algorithms](doc/algorithms.md)
* [data structures](doc/data_structures.md)
* [software concepts](doc/software_concepts.md)
* [software design patterns](doc/software_design_patterns.md)
* [software testing](software_testing.md)
* [technical debt causes](technical_debt_causes.md)


## Awesome lists

* [Awesome lists, curated](https://github.com/sindresorhus/awesome)
* [Awesome programming](https://github.com/hardikvasa/awesome-programming)


## To do - Ways of Working

* [Amazon Leadership Principles](https://www.amazon.jobs/principles) e.g. always day 1, bias for action, customer first, disagree and commit.
* [Agile manifesto](http://agilemanifesto.org/)
* Google idea: "All hands welcome on all code"
* 5 Whys
* no broken windows.
* Lean
* BDD + TDD
* CI + CD
* DevOps
* IaC

Thought leaders:

* [ThoughtWorks.com](https://thoughtworks.com/)
* [SVGP](https://svpg.com/)


## Books by Pragmatic Programming

These books are for general developing. For specific languages, tools, etc. see https://pragprog.com/

* [101 Design Ingredients to Solve Big Tech Problems](https://pragprog.com/book/ec101di/101-design-ingredients-to-solve-big-tech-problems)
* [A Common-Sense Guide to Data Structures and Algorithms](https://pragprog.com/book/jwdsal/a-common-sense-guide-to-data-structures-and-algorithms)
* [Agile and Lean Program Management](https://pragprog.com/book/d-jrlean/agile-and-lean-program-management)
* [Agile Retrospectives: Making Good Teams Great](https://pragprog.com/book/dlret/agile-retrospectives)
* [Design It! From Programmer to Software Architect](https://pragprog.com/book/mkdsa/design-it)
* [Debug It! Find, Repair, and Prevent Bugs in Your Code](https://pragprog.com/book/pbdp/debug-it)
* [Domain Modeling Made Functional](https://pragprog.com/book/swdddf/domain-modeling-made-functional)
* [Behind Closed Doors: Secrets of Great Management](https://pragprog.com/book/rdbcd/behind-closed-doors)
* [Create Your Successful Agile Project: Collaborate, Measure, Estimate, Deliver](https://pragprog.com/book/jragm/create-your-successful-agile-project)
* [Creating Great Teams: How Self-Selection Lets People Excel](https://pragprog.com/book/mmteams/creating-great-teams)
* [Designed for Use: Create Usable Interfaces for Applications and the Web](https://pragprog.com/book/lmuse2/designed-for-use-second-edition)
* [DevOps in Practice](https://pragprog.com/book/d-devops/devops-in-practice)
* [Driving Technical Change: Why People on Your Team Don't Act on Good Ideas, and How to Convince Them They Should](https://pragprog.com/book/trevan/driving-technical-change)
* [Explore It! Reduce Risk and Increase Confidence with Exploratory Testing](https://pragprog.com/book/ehxta/explore-it)
* [Liftoff: Start and Sustain Successful Agile Teams](https://pragprog.com/book/liftoff/liftoff-second-edition)
* [Manage It! Your Guide to Modern Pragmatic Project Management](https://pragprog.com/book/jrpm/manage-it)
* [New Programmer's Survival Manual: Navigate Your Workplace, Cube Farm, or Startup](https://pragprog.com/book/jcdeg/new-programmer-s-survival-manual)
* [Outsource It! A No-Holds-Barred Look at the Good, the Bad, and the Ugly of Offshoring Tech Projects](https://pragprog.com/book/nkout/outsource-it)
* [Practices of an Agile Developer](https://pragprog.com/book/pad/practices-of-an-agile-developer)
* [Predicting the Unpredictable: Pragmatic Approaches to Estimating Project Schedule or Cost](https://pragprog.com/book/d-jrpredict/predicting-the-unpredictable)
* [Real-World Kanban: Do Less, Accomplish More with Lean Thinking](https://pragprog.com/book/mskanban/real-world-kanban)
* [Release It! Design and Deploy Production-Ready Software](https://pragprog.com/book/mnee2/release-it-second-edition)
* [Remote Pairing: Collaborative Tools for Distributed Development](https://pragprog.com/book/jkrp/remote-pairing)
* [Ship It! Practical Guide to Successful Software Projects](https://pragprog.com/book/prj/ship-it)
* [Small, Sharp, Software Tools: Harness the Combinatoric Power of Command-Line Tools and Utilities](https://pragprog.com/book/bhcldev/small-sharp-software-tools)
* [Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis](https://pragprog.com/book/atevol/software-design-x-rays)
* [The Agile Samurai: How Agile Masters Deliver Great Software](https://pragprog.com/book/jtrap/the-agile-samurai)
* [The Developer's Code: What Real Programmers Do](https://pragprog.com/book/kcdc/the-developer-s-code)
* [The Nature of Software Development: Keep It Simple, Make It Valuable, Build It Piece by Piece](https://pragprog.com/book/rjnsd/the-nature-of-software-development)
* [Your Code as a Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design](https://pragprog.com/book/atcrime/your-code-as-a-crime-scene)
