Development In Practice by Doug Porter, Bryant James Allen & Bryant Allen