Going Evergreen, RubyConf 2014
-
Upload
baccigalupi -
Category
Technology
-
view
243 -
download
1
Transcript of Going Evergreen, RubyConf 2014
Evergreen
• Know more about domain
• Abstractions for common features
• Product re-imagination
relatively cheap
An unchanged team will
rebuild themselves into the
same legacy problems
Law of the Optimistic Rebuild
An unchanged team will
rebuild themselves into the
same legacy problems
Law of the Optimistic Rebuild
It will take 3-10 times longer
than expected
because … waterfall
Law of the Optimistic Rebuild
Corollary:
Technical Drift
http://blog.codeclimate.com/blog/2013/12/19/are-you-experiencing-technical-drift/
“It’s a phenomenon that occurs when a
development team continuously fails to recognize
and adapt to change, causing the concepts in the
software’s domain and the concepts in code to start
to slowly ‘drift’ apart from one another”
The best practices for
maintaining software are
different from best practices to
launch a software project
Law of Software Stages
Treating maintenance
the same as launch
will lead to
diminishing velocity
because … technical debt
Law of Software Stages
Corollary:
SOLID
• Each class has one
responsibility
• It should only change
for one reason
Single
Responsibility
SOLID
Liskov substitution
Let q(x) be a property provable
about objects x of type T. Then q(y)
should be provable for objects y of
type S, where S is a subtype of T.
SOLIDDependency
Inversion
• High-level things should not
depend on low-level things
• Abstractions should not depend
on details
You need more specific
actionable things for your
learners until they
get to SOLID expertise
Law of SOLID Advice
Corollary:
If you don’t have a team of all SOLID
practitioners, how do you get to
evergreen?
Actionable
for everyone
The 5 Rules
•Classes100 lines or less
Methods 5 lines or less
Arguments of 4 or less, including
each hash key/value pairs
… and 2 rails specific things … look it up
After a year, we were
evergreen
• Knew more about domain
• Abstractions for common features
• Product re-imagination
relatively cheap
Sandi came for another
consulting gig with us …
and I realized we weren't
doing what Sandi Metz would
do :(
Conway’s Law (I didn’t invent this one)
“organizations which design systems
... are constrained to produce designs
which are copies of the
communication structures of these
organizations”
Weird Affective Metrics
(that work)
• Self-Aware
• Imposter <=> Arrogance
• Learning style
• Impact control