phase 3: better ideas (presentation at salesforce 1-28-2015)
TRANSCRIPT
Phase 3: Better IdeasBruce Eckel
www.MindviewInc.comwww.AtomicScala.com
Jan 28, 2015, San Francisco@Salesforce Slides available onwww.slideshare.net
Overview• Who Am I
– A Languages Guy– Trying to move tech
forward• Do Languages Matter?
– Not so much anymore• Phase 2: Better Communication & Process
– Agile: Build Things Better• Phase 3: Build Better Things
– Challenge: Getting (and Nurturing) Better Ideas
Eight Years on the C++ Standards Committee
• No more closed-source languages!
www.AtomicScala.com
• Free First 25% Kindle, ePub, PDF, HTML
Magazines
• These things before there was blogging
• Published over 150 articles
Reinventing-Business.comMy "Why": Work is Joy
Do Languages
Matter ?
Do Languages (still)
Matter ?
Do Languages (still)
Matter (as much)?
Does Arguing About Languages Still Matter?
• Assembly -> C• C -> C++• C++ -> Java
– Virtual Machines– Garbage Collection
• Statically typed vs. Dynamic• Checked Exceptions• Concurrency and Parallelism• OO vs Functional• Java Posse Roundup stopped talking
about Java
• Stroustrup's Goal for C++: Make Library Use Easier
• Java Validated Virtual Machines & Garbage Collection– Lots of libraries– Also mainstreamed the big
framework– Invalidated checked
exceptions• Ruby On Rails Validated
Dynamic Languages for serious projects– Mitigated some of the damage
from Perl & PHP (read "PHP: A fractal of bad design")
– Helped legitimize Python, Groovy, etc.
Functional language features are the new-old thing
• Heavily motivated by multiple cores and parallelism
• Safety via immutability• Python started adding
functional features a few years ago
• Functional purists are trying to steer the conversation ("objects are bad/failures")
• Object-functional hybrids are moving to center stage IMO– How will parallelism look in
such languages?– Pure functional vs CSP (as
in Go). STM has failed.
No Longer a Big Deal To ...
• Change Languages– My Favorite Client:
Java -> Python -> Go• Combine Languages
– e.g. Erlang controlling other languages
– REST/JSON APIs– HTML5/CSS/Javascript
UIs
Thus• Arguing to consider
new languages no longer fits my mission -- we're not stuck there anymore.
• Why bother arguing when you can just experiment?
• So...• They kind of don't
matter
The Next Bottleneck
Process and human interaction
Agile: Prefer
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
What Happened to Agile
• The ideas are still good• The delivery mechanism
got infected withindustrial-age thinking
• AND: "Preferences" aren'timplementation tools– A philosophy, not how to do it
What Happens to IT Innovations
• Early sucess generates delivery companies
• Their success produces "optimized" clones with a process for delivery
• Minimal thinking required• Few mistakes, efficient• Innovators leave• We're left with fly-by, carpet-
bombing "consultants"
Phase 3:Let's Get
Better Ideas!
Fundamental Changes vs. Techniques
• Ultimately I want to re-architect the organization from the ground up to -- among other things --produce better ideas (See Reinventing-Business.com & "Teal-Evolutionary" organizations)
• Here, I will look at techniques to help existing organizations
How Not to Get Ideas
• Industrial-Age Hierarchies Hate Change– Designed for consistency and control– "Wanting to be in power" does not produce
good ideas• Consensus does not produce good ideas
– Subpar and unchangeable results– Decision ownership is diluted
Ideas are Experiments
• Need a 'space' (even if only temporary) that supports many rapid experiments
• Techniques to trick yourself out of your normal modes of thinking (i.e. your blocks)
Two Basic Approaches
1.Varying or combining old ideas
2.Completely different new ideas
Brainstorming?• Loudest or most
persuasive do not produce the best ideas
• Tends to fixate on one idea, blocks out others
• Inhibits creative thinking
• Judging helps• Working on your own
produces many more ideas
Brain Writing• Brings ideas from
everyone, not just the assertives
• Very small cards• Idea per card; 1-2
sentences• 10 Min capturing
ideas• “No guessing or
confessing”
Free Up With Improv
• Workshops and groups are usually findable
• The "Yes And..." Exercise
Use Random Input
• Words from a dictionary
• Pictures• Items/toys• Mind mapping
Shift• Get another's perspective• Play "If I Were"• Change Environment• Try something really different (paint!) • Meditate• Daydream• Loaf/nap• Move
Think in Reverse
• Create the problem• Worsen operations• Downgrade the
product• Take resulting ideas
and reverse them
Decision Making: Google's Note & Vote• For speed & to avoid groupthink• Everyone quietly writes down as
many ideas as they can for 5-10 min• 2 min: everyone quietly reviews their
own ideas and chooses one or two • Individually share your chosen ideas,
no selling. Written on a board.• 5 min: each person quietly writes
down their favorite idea from board• Each person states their vote,
potentially with a brief pitch. Captured on board with dots.
• The decider (can be anyone) independently decides on the best idea, respecting the votes or not.
Going Way Out• Reinventing Organizations: The
Advice Process• Anyone can make a decision,
even one that costs the company money, as long as they:1. Consult with someone who knows
more about the topic2. Consult with the people affected by
the decision• You can still make the decision if
both advise against it, so experimentation is not stifled, but you carry the social responsibility
Open Spaces• A self-organizing
conference system• WinterTechForum.com• Crested Butte, Colorado
February 23-27 2015
JC Leacock Photo
Please send idea-generator suggestions to:[email protected]