Lean Software Development


“But you are planning for failure!”

The planner on my project team was aghast. I had asked for components to cover a 3% predicted waste rate for a multi-year program making assemblies destined for orbit. As the manufacturing engineer for the program I knew from previous experience that 3% was an average, and not unreasonable, estimate of possible loss. This blog post attempts to answer whether her reaction was justified, but in the context of software development. Was she right to criticize my analysis of previous wastage of these components?

Git Merge Workflow on Github


How to Merge Code

Below is a guide that I wrote for a recent project explaining a git merge workflow on Github. Often times, when you develop a new feature, you will create a new branch off of master called a feature branch. On the feature branch, you might have many commits to save your progress, or when you complete certain milestones of that feature. Once you finish the feature, you will want to merge this branch back to the master branch. However, you might not want all your commits to show up in the git log history because they were only for development purposes. We can overcome this issue by using a feature of git called interactive rebasing which allows you to squash certain commits and customize the commits that will eventually show up once the branch is merged to master. I have described the steps to achieve this outcome below.

Table of Contents


This guide explains how to develop and commit your code using git and GitHub. A developer should create a feature branch when developing new code. In the feature branch, a developer may commit multiple times during development including making changes based on comments from a code review. When development is completed and the feature branch is ready to be merged in to the master branch, the developer should squash the commits in to one, so that the git log history is kept clean.

Using Photoshop CC to Automatically Generate Web Graphics


Adobe Generator App Icon

Let’s face it, creating web graphics takes time and is often tedious, especially if you have to slice images from detailed web page layouts. Sometimes it’s even necessary to copy and paste graphics from a Photoshop layout into a new Photoshop document just so you can isolate graphics and save for web. Recently I began experimenting with creating web graphics automatically from Photoshop layers using the new Adobe Generator feature, which was released in Photoshop CC version 14.1 (to check your version launch Photoshop and go to the menu and select Photoshop/About Photoshop and this will open a panel that includes the version number). When Generator is turned on it will monitor the file you’re working on and generate web graphics based on how you name layers. The cool thing is that as you continue to work in Photoshop and make changes Generator will automatically update assets.