Posts categorized as: atomic-essay

4 Things You Should Put in Your Daily Dev Log

Published by Matt Stine

To harvest meaningful patterns from your dev log, you’ll need to capture the same things daily. I’ve been engineering software for 21 years, and I’ll share what I’ve routinely kept in mine. Your context is different, so your list will be also. Just make sure you capture the same things daily. Use this list as a skeleton to start from. It’s easier when you aren’t starting from a blank page!

Egoless Programming #3: No Matter How Much Karate You Know, Someone Else Will Always Know More

Published by Matt Stine

In 2001, Lamont Adams of TechRepublic chiseled what would become ten commandments of Gerald M. Weinberg’s timeless wisdom: Egoless Programming. Today we’re going to learn its third commandment: No matter how much “karate” you know, someone else will always know more. First of all, this is a good thing. My friend Neal Ford has said that as soon as you are the smartest person in the room, it’s time to look for another room.

Egoless Programming #2: You Are Not Your Code

Published by Matt Stine

In 2001, Lamont Adams of TechRepublic chiseled what would become ten commandments of Gerald M. Weinberg’s timeless wisdom: Egoless Programming. Today we’re going to learn its second commandment: You are not your code. This is without a doubt one of the hardest lessons for any early-career engineer to learn. As humans, we take pride in our creations. Unfortunately, software is soft because it’s meant to be changed, rewritten, and very often discarded completely.

Egoless Programming #1: Understand and Accept That You Will Make Mistakes

Published by Matt Stine

In 2001, Lamont Adams of TechRepublic chiseled what would become ten commandments of Gerald M. Weinberg’s timeless wisdom: Egoless Programming. Today we’re going to learn it’s first commandment: Understand and accept that you will make mistakes. This one should be obvious. But we engineers often behave as if our fallible human nature does not extend to our chosen craft. And as much as I’d love for that to be true, it simply isn’t.

The Ten Timeless Commandments of Egoless Programming

Published by Matt Stine

In 1971, Gerald M. Weinberg wrote1 these Ten Commandments upon the stone tablets of The Psychology of Computer Programming. Well, they weren’t really written in stone. But they have stood the test of time. Wise is the software engineer who learns them and puts them into practice. 1. Understand and accept that you will make mistakes. Assume that you will write bad code. Find it and fix it before it affects users.

What Is a Paved Path?

Published by Matt Stine

I’m going to explain to you the concept of a paved path to software delivery. A paved path will make your engineering job as easy as possible. It will complete every task that wastes your time and effort. It will keep you focused on delivering business value through technology solutions. Sound good? Excellent. Let’s dive in. It enables getting started with a clean architecture: It’s a lot easier to get started well than to get started poorly and fix it later.

Want to Ship Code Faster? Find Defects Faster

Published by Matt Stine

Defects are the last of the Seven Wastes of Software Development. The Seven Wastes were identified by Mary and Tom Poppendieck, the foreparents of Lean Software Development. It grew out of their efforts to understand and apply the principles of Lean Manufacturing to software engineering. Waste elimination is the essence of Lean’s archetype, the Toyota Production System: All we are doing is looking at the timeline from the moment a customer gives us an order to the point when we collect the cash.

Want to Ship Code Faster? Stop Task Switching

Published by Matt Stine

Task Switching is the sixth of the Seven Wastes of Software Development. The Seven Wastes were identified by Mary and Tom Poppendieck, the foreparents of Lean Software Development. It grew out of their efforts to understand and apply the principles of Lean Manufacturing to software engineering. Waste elimination is the essence of Lean’s archetype, the Toyota Production System: All we are doing is looking at the timeline from the moment a customer gives us an order to the point when we collect the cash.

Want to Ship Code Faster? Don't Delay Eliminating Delays

Published by Matt Stine

Delays are the fifth of the Seven Wastes of Software Development. The Seven Wastes were identified by Mary and Tom Poppendieck, the foreparents of Lean Software Development. It grew out of their efforts to understand and apply the principles of Lean Manufacturing to software engineering. Waste elimination is the essence of Lean’s archetype, the Toyota Production System: All we are doing is looking at the timeline from the moment a customer gives us an order to the point when we collect the cash.

Want to Ship Code Faster? Stop Playing the Telephone Game

Published by Matt Stine

Handoffs are the fourth of the Seven Wastes of Software Development. The Seven Wastes were identified by Mary and Tom Poppendieck, the foreparents of Lean Software Development. It grew out of their efforts to understand and apply the principles of Lean Manufacturing to software engineering. Waste elimination is the essence of Lean’s archetype, the Toyota Production System: All we are doing is looking at the timeline from the moment a customer gives us an order to the point when we collect the cash.