Eng Org Optimizers
EOO, Inc.

"Good design is making something intelligible and memorable. Great design is making something memorable and meaningful."

Dieter Rams

Simplicity is prerequisite for reliability.

Edsger W. Dijkstra

Optimizing your engineering organization.

EngOrgOptimizers

That’s not my module, she touched it last.

“The Joel Test

1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions?
9. Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?”
― Joel Spolsky, Joel on Software

There are only two hard things in Computer Science: cache invalidation and naming things.
Phil Karlton

Simplicity is prerequisite for reliability.
Edsger W. Dijkstra

Premature optimization is the root of all evil
Donald Knuth

 Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
John Woods


Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
Brian Kernighan

Talk is cheap. Show me the code.
Linus Torvalds

“Code as if the next guy to maintain your code is a homicidal maniac who knows where you live.” by Kathy Sierra.

 Measuring programming progree by lines of code is like measuring aircraft building progree by weight. - Bill Gates

The trouble with programmers is that you can never tell what a programmer is doing until it's too late.
Seymour Cray

To understand recursion, one must first understand recursion.
Stephen Hawking

Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction.
E. F. Schumacher

“Adding manpower to a late software project makes it later.” by Fred Brook

“Walking on water and developing software from a specification are easy if both are frozen.” by Edward V. Berard.

“A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable.” by Leslie Lamport.

“Peel back the facade of rigorous methodology projects and ask why the project was successful, and the answer is people.” by Jim Highsmith.

Mitch Ratcliffe 

Oh, the hot potato of software development. Who ever was in that module last is forever more on the hook to fix it. And the great lengths that develoeprs will go through to not be that guy?
Surely there is no other way?

More Info
placeholder image

That’s not my module, she touched it last.

"A computer lets you make more mistakes faster than any other invention with the possible exceptions of handguns and Tequila."

Mitch Ratcliffe 

Oh, the hot potato of software development. Who ever was in that module last is forever more on the hook to fix it. And the great lengths that develoeprs will go through to not be that guy?
Surely there is no other way?

More Info
placeholder image

That’s not my module, she touched it last.

"A computer lets you make more mistakes faster than any other invention with the possible exceptions of handguns and Tequila."

Mitch Ratcliffe 

Oh, the hot potato of software development. Who ever was in that module last is forever more on the hook to fix it. And the great lengths that develoeprs will go through to not be that guy?
Surely there is no other way?

More Info
placeholder image

That’s not my module, she touched it last.

"A computer lets you make more mistakes faster than any other invention with the possible exceptions of handguns and Tequila."

Mitch Ratcliffe 

Oh, the hot potato of software development. Who ever was in that module last is forever more on the hook to fix it. And the great lengths that develoeprs will go through to not be that guy?
Surely there is no other way?

More Info
placeholder image

(null)

That’s not my module, she touched it last.

"The fundamental problem with program maintenance is that fixing a defect has a substantial (20-50 percent) chance of introducing another. So the whole process is two steps forward and one step back."

Fred Brooks

Oh, the hot potato of software development. Who ever was in that module last is forever more on the hook to fix it. And the great lengths that develoeprs will go through to not be that guy?
Surely there is no other way?

More Info
placeholder image

It’s faster to have tons of long lived branches, right?

A more descriptive sub heading.

There was a showdown looming inside Google, but this story is to be kept between you and I. 
ChromeOS was the new upstart OS inside of Google, built to be a very minimal and very secure OS. It’s only job was to run Chrome (the web broswer). This team built out a fleet of testing infrastructure that would test each change. From this tooling, branches lasted for the duration of development only. Once they passed the tests, they were merged into master.
Android was ‘a startup’ inside of Google, and had opted for speed. Developers would checkout local branch, and develop for months on it. This was so much faster!  The forward progress of each developer was never hindered by having to pull down new changes and merge those those changes into their local branch. The ChromeOS team was doing this daily. 
Surely, only one of these can be right? 

More Info