Software Engineering


Some of my guiding principles:

Treat the users as if they were family, friends, neighbors, technology itself is not an end, only in the sense that it builds human communities. Solve real problems, preferably those faced first hand or through deep engagement with the the intended audience’s domain, vocabulary, body of knowledge, group dynamics, and existing technology. 

Complexity and extraneous features are the enemy of usefulness. We should value simplicity of function and of build.    'Perfection can be the enemy of the good', but sometimes perfection is called for, especially where our data comprises something sensitive about the people who use it.  Simplicity is the ally of perfection. 

We should learn from existing solutions; that which has been done well, that which we have affinity for, and that which we don’t. “Intuitive is familiar”, and we should pay attention to the muscle memory we have, even for bad systems.   

We aren’t building a Hollywood set of fake building facades, everything we do should serve a purpose or engender delight.  Trust the ideas that come at morning's first light, mistrust the instinct to build for the sake of new tech (for technology misapplied can corrupt our humanism beyond our or our organization's limitations), listen deeply to our colleagues, but navigate under our own set of values.

February 2017 - Long Beach Island, Jersey Coast