Scott Chacon

Ask Your Code

What if git blame is lying to you? Learn to ask your code the questions that reveal its true history, not just the easy ones.

Ask Your Code
#1about 6 minutes

Using first principles thinking for better product design

Learn how to use the "why" technique to break down assumptions and uncover fundamental truths about the problems you are solving.

#2about 4 minutes

Applying first principles to modern version control systems

By repeatedly asking why we use tools like Git, we can uncover its core purposes and compare its model to alternatives like Google Docs.

#3about 1 minute

Using version control for code archeology and context

Version control serves as an archeological tool that helps developers ask questions about code history to gain context for making better decisions.

#4about 3 minutes

The limitations of common git log and blame commands

Standard commands like `git log` and `git blame` often provide superficial answers because they are easy to ask, not because they are the most useful.

#5about 2 minutes

Asking better questions with advanced git log commands

Discover more powerful `git log` variations for comparing branches and using the pickaxe search (`-S`) to find exactly when a specific string was introduced.

#6about 2 minutes

Tracing code history beyond simple git blame results

Use advanced `git blame` flags (`-C -C -C`) to track code that has been moved across files, identifying the original author instead of just the refactorer.

#7about 1 minute

Discovering related files using commit history analysis

A custom script can analyze commit history to find which other files are most frequently modified alongside a specific file, revealing hidden dependencies.

#8about 3 minutes

The impossible questions that version control cannot answer

Explore valuable questions that current version control systems can't answer, such as linking code changes to pull requests, chat conversations, or design specs.

#9about 7 minutes

Q&A on merge vs rebase and writing commit messages

The speaker shares his preference for `merge` over `rebase` to preserve history and suggests using AI tools to help generate better commit messages.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Rust and GoLang

Rust and GoLang

NHe4a GmbH
Karlsruhe, Germany

Remote
55-65K
Intermediate
Senior
Go
Rust

Lead Data Engineer

Scott Logic
Leeds, United Kingdom

Remote
53K
Senior
Azure
Spark
Python
+6

Scrum Master

HeadFirst
Hoofddorp, Netherlands

Scrum
Agile Methodologies