Phase 3: Better ideas (Presentation at SalesForce 1-28-2015)

Post on 15-Apr-2017

636 views 1 download

Transcript of Phase 3: Better ideas (Presentation at SalesForce 1-28-2015)

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:mindviewinc@gmail.com