Top Banner
Innovation in the Enterprise plying Innovation in Software Developme Amish Gandhi Keynote Talk
64

Applying Innovation in Software Development

Nov 01, 2014

Download

Technology

Amish Gandhi

Sometimes the only difference between the winners and the losers is that the winners figure out how to innovate. Innovation is a broad term and this presentation outlines what it means for enterprises and companies involved in developing software. This presentation highlights how innovation can be applied at various stages of software product development and in different ways by applying special techniques, tools and frameworks.

Note: This was also a QCon Shanghai Keynote Talk. Full talk up at http://www.infoq.com/cn/presentations/business-innovation
Perpetual website: http://www.perpetualny.com
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Applying Innovation in Software Development

Innovation in the Enterprise

Applying Innovation in Software DevelopmentAmish Gandhi

Keynote Talk

Page 2: Applying Innovation in Software Development

Amish GandhiFounder and Principal at Perpetual: Product Innovation and Development for Finance, Media and Telecom www.perpetualny.com

Innovation Background• Working on innovating financial information services• Working on wearable computing solutions for media • Experience developing emerging technology based products in telecom• Advanced Study Fellow in innovation at MIT

MS Computer Science from Univ. of Texas, Austin

BS Computer Science from Bombay University

Finance

Media

TelecomBackground

Page 3: Applying Innovation in Software Development

Contents

• Intro– What is Innovation– What it is not

• Business Innovation– What it is– Innovators Dilemma

• Innovation in Software Companies– How it is different– Innovation as a discipline

• 7 Steps for Software Innovation

Page 4: Applying Innovation in Software Development

Innovation: Inspiration or Perspiration?

Page 5: Applying Innovation in Software Development

What is Innovation?

Innovation is a process that combines

• discovering an opportunity• blueprinting an idea to seize that opportunity• and implementing that idea to achieve results

Page 6: Applying Innovation in Software Development

No impact, no innovation

Page 7: Applying Innovation in Software Development

What is Innovation (NOT)?

• Innovation is not improvement– Innovation != doing the same thing better– Innovation == doing something different

• Innovation does not go unnoticed– Innovation != something incremental– Innovation == something that results in big impact

• Innovation is not invention – Innovation != Invention = the creation of the idea or method

itself– Innovation == invention applied

Page 8: Applying Innovation in Software Development

Business Innovation

Page 9: Applying Innovation in Software Development

Innovation and Business Impact

• Growing the core • Extending the core• Expanding beyond the core

Innovation path

Business Innovation

1-click shopping Associates Cloud Services

Page 10: Applying Innovation in Software Development

Amazon Innovation Path

Market cap $167B

Continuous Innovation

1994 Company incorporated.1996 Launches Associates Prog1997 1-Click Shopping. 1998 Music and movies1999 Auctions2000 Super Saving Shipping2001 Look Inside The Book

2002 Launches AWS V12003 A9.com search engine2004 Exposes product data 2005 Amazon Prime2006 Amazon Unbox (movies)2007 Amazon MP32007 Amazon Kindle

2009 Free Android shopping app2010 Deals & LivingSocial2011 Prime instant video2011 Amazon local2012 Dynamo DB2013 New national fulfil. model2013 Kindle Fire HDX

Page 11: Applying Innovation in Software Development

MIT Innovation Radar

Business Innovation: Discovery

Platform/Solutions Quadrant

1. The unexpected2. The reality inequality3. Process need4. Market structure changes5. Demographics changes6. Cust. perception change7. New knowledge

Page 12: Applying Innovation in Software Development

Performance demanded at market high end

Progress due to sustaining technologies

Progress due to disruptive technologies

Prod

uct P

erfo

rman

ce

Time

Performance demanded at the low end of the market

Innovators Dilemma

Business Innovation: Opportunities

Disruptivetechnologies

Page 13: Applying Innovation in Software Development

Performance demanded at market high end

Progress due to sustaining technologies

Progress due to disruptive technologies

Prod

uct P

erfo

rman

ce

Time

Performance demanded at the low end of the market

Innovators Dilemma

Business Innovation: Opportunities

MotorizedEngine

Page 14: Applying Innovation in Software Development

Performance demanded at market high end

Progress due to sustaining technologies

Progress due to disruptive technologies

Prod

uct P

erfo

rman

ce

Time

Performance demanded at the low end of the market

Innovators Dilemma

NoSQL

Business Innovation: Opportunities

Page 15: Applying Innovation in Software Development

Innovation in Software Companies

Page 16: Applying Innovation in Software Development

Innovation in Software Companies

Attribute Effect

1. Disruptive technologies New opportunities for disruption

2. Market trends Exponential customer adoption: Realtime, hyperlocal, super-connected, always-on

3. Lower Barrier to Entry Ability to create something from nothing much more easily

4. Competition High number of entrants, big and small

5. Higher level value creation

S/W dev process evolved – 1-2 week delivery cycle is typical vs. 3 month cycle

6. Complex Different software solutions for the same problem

7. Can have huge impact with limited resources

Can unlock new business models. Enterprises should allocate resources to new innovation

Innovation in Software Companies

Page 17: Applying Innovation in Software Development

Performance demanded at market high end

Progress due to sustaining technologies

Progress due to disruptive technologies

Prod

uct P

erfo

rman

ce

Time

Performance demanded at the low end of the market

Innovation in Software Cos: 1. Disruptive Technologies

AWS Android Mapreduce Bigtable Hadoop Hbase NodeJS Scala Cloud Computing Big Data D3.js Coffee Script/Backbone Data Visualization Elastic search Nginx Hudson GO R require.js less/sass/compass, HTML5…

Page 18: Applying Innovation in Software Development

Innovation in Software Cos: 2. Market Trends

Page 19: Applying Innovation in Software Development

Innovation in Software Cos. 3. Lower Barrier to Entry

Everything starts as nothing

Page 20: Applying Innovation in Software Development

Innovation in Software Cos. 4. Competition

Competition

Page 21: Applying Innovation in Software Development

Innovation in Software Companies5. Higher Level Value Creation

Value

Value Value Value Value

Wat

erfa

llAg

ile

Page 22: Applying Innovation in Software Development

Innovation in Software Cos. 6. Complexity

Page 23: Applying Innovation in Software Development

Instagram scaled to 30 million active users with a team of two infrastructure engineers

Innovation in Software Cos.7. Limited resources, huge impact

30,000,000

Page 24: Applying Innovation in Software Development

Innovation in Software Companies

Attribute Effect

1. Disruptive technologies New opportunities for disruption

2. Market trends Exponential customer adoption: Realtime, hyperlocal, super-connected, always-on

3. Lower Barrier to Entry Ability to create something from nothing much more easily

4. Competition High number of entrants, big and small

5. Higher level value creation

S/W dev process evolved – 1-2 week delivery cycle is typical vs. 3 month cycle

6. Complex Different software solutions for the same problem

7. Can have huge impact with limited resources

Can unlock new business models. Enterprises should allocate resources to new innovation

Innovation in Software Companies

Page 25: Applying Innovation in Software Development

Applying Innovation in a Software Company

7 Steps

Page 26: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scouting

Page 27: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scouting

Page 28: Applying Innovation in Software Development

Step 1: Make it the norm

• Make it part of the day-to-day• Manage it like any other corporate function• Give it time and resources• Create a sense of urgency –Not just for PR purposes

• Create the right innovation culture

Entrepreneurial/Intrapreneurial innovation model

Step 1: Make it the norm

Page 29: Applying Innovation in Software Development

Step 1: Make it the norm. How?

Step 1: Make it the norm

-Make it one of your business initiatives-Make it one of your employee objectives-Manage it like any other corporate function

Projectize

Focus on your long term goals Go long

Evaluate your innovation culture and make adjustmentsCulture

Page 30: Applying Innovation in Software Development

Step 1: Make it the norm. How?

Step 1: Make it the norm

Engage legal about protecting Intellectual Property - Plug in to the IP ecosystem. Creating IP is a bonus.

IP

Spread and sell your ideasUse visuals at every step and promote on the intranet and in public boards in the office

Don't talk about “changes” Change makes people nervous. Talk about pursuing new opportunities

Perception

Page 31: Applying Innovation in Software Development

• Software developers are proud of their work

• Eg many open source projects where developers participate to contribute to a common goal

• Tech is cool again• Showcase the latest developments

and activities

Nourish and harness intrinsic motivation

Raise profile ofengineering in the company

Step 1: Make it the norm

Step 1: Make it the norm. How?

Page 32: Applying Innovation in Software Development

• Innovation Friendly Process– Agile– Lean– UCD– Kanban– Continuous integration and delivery– Rapid prototyping– Experimentation time on sprints• Eg Hacker Friday

Step 1: Make it the norm: Innovation friendly processes

Step 1: Make it the norm. How?

Start with this, structure your teams accordingly

Page 33: Applying Innovation in Software Development

Spotify: Scaling Agile

Step 1: Make it the norm

Page 34: Applying Innovation in Software Development

Step 1: Make it the norm

Page 35: Applying Innovation in Software Development

• Tools to manage innovation– Brightidea– IdeaScale– InnoCentive– Innovation Factory– Imaginatik– Sopheon– Spigit– ……….

Step 1: Make it the norm: Tools

Step 1: Make it the norm. How?

Page 36: Applying Innovation in Software Development
Page 37: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scouting

Page 38: Applying Innovation in Software Development

Step 2: Company Mission

• Should be part of your company mission statement

• An executive champion who believes the new idea is critical and is persistent about it

• A senior sponsor to marshal resources (people, money, time) with a focus on innovation

Top down innovation model

Step 2: Make it a Company Mission

Page 39: Applying Innovation in Software Development

Step 2: Company Mission

• A small number of ambitious projects vetted by organizational top layers

• There should be a mix of – bright, creative minds (to get ideas) and – experienced operators (to keep things practical)

• A process that moves ideas through the system quickly– End to end validation

Top down innovation model

Step 2: Make it part of your Company Mission

Page 40: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scouting

Page 41: Applying Innovation in Software Development

Step 3: Create an Innovation Culture

1. Challenge or involvement2. Freedom3. Trust or openness 4. Idea time5. Idea support 6. Playfulness or humor 7. Risk-taking 8. Debate 9. Conflict’10. Experimentation

1-9 Ekvall G (1996) Organizational climate for creativity and innovation

• Rate from 1 to 10• Take the sum = your company’s innovation culture score

Score Rating

>90% Super innovator

80-90% Highly creative

70-80% Stable growth

60-70% Warning zone

<60% Danger zone

Step 3: Create an Innovation Culture: Evaluate

Evaluating Innovation Culture

Page 42: Applying Innovation in Software Development

• Flatter org structures

• Open and powerful development environments

• Services and tools to help launch products

• An attitude of experimentation & openness to experiment failure

• Services and tools to test and get user feedback as early as possible

• Generous rewards and recognition for successful innovation

Attributes of innovative software culture

Step 3: Culture

Step 3: Culture

Page 43: Applying Innovation in Software Development

Creativity Enhancing Techniques

• Brainstorming : usually misunderstood– Separate idea generation from idea valuation– Duration? Quantity = quality. • First ideas are usually old• As ideation continues, new ones emerge

– 6-12 people to bring different points of view • Let participants build on each others ideas

Step 3: Create an Innovation Culture

Page 44: Applying Innovation in Software Development

Six Thinking Hats

Information (White)Emotions (Red)Discernment (Black) Optimistic response (Yellow) Creativity (Green)Facilitator (Blue)

Step 3: Create an Innovation Culture

Page 45: Applying Innovation in Software Development

• Identify customer requirements for an ideal product through Product Box• Improve retrospectives with Speed Boat• Prioritize your backlog through the online game Buy a

Feature Online• Plan a successful project through the game Remember the

Future• Develop better release plans with Prune the Product Tree• Understand product usage with Me and My Shadow and

Start Your Day

http://innovationgames.com/agile-teams

Step 3: Create an Innovation Culture

Use Games to encourage creative development

Innovation games in a software group

Page 46: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scouting

Page 47: Applying Innovation in Software Development

Step 4: Experiment

• Run experiments instead of going on hunches• Experiment lean and quick– Validate your assumptions quickly– Discard ideas, move one, fail fast

• Build early (a working prototype or code)– Many advantages: users, stakeholders

• No penalty for failed experiments• Focus on building real stuff vs. plans/designs• Hack days

Step 4: Experiment

Page 48: Applying Innovation in Software Development

Prototyping Tools

• Flinto• Hop App• Sketch Mirror• Axure• FluidUI• Balsamiq• Wirefy• Keynotopia• DivShot• Invision

Step 4: Experiment: Prototyping Tools

• Twitter Bootstrap• Justinmind• Pidoco• Fieldtest• Sketchflow• FluidUI• iRise• UXPin• Ease.io

Page 49: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scouting

Page 50: Applying Innovation in Software Development

Internal Collaboration• Plan joint working activities across business units – Eg Editorial and Tech hackathon– BizDev and Tech roadmap brainstorm

• Embed of teams/rotation• Exchange programs within groups• Common codebase (highly indexed/searchable)• Cross-team skill breakdown and knowledge sharing

Step 5: Collaborate

Step 5: Collaborate: Internal

Page 51: Applying Innovation in Software Development

Example of Internal Collaboration

DSL + Phone booths = Manhattan taken

Page 52: Applying Innovation in Software Development

• University collaboration– Always exploring something new,

fresh and new ideas– Work together on a project

• Open up your API and conduct contests

• Engage external dev community– Attract talent– Get community to give back

• Invite external company partners– Talks, brown bag lunches

Step 5: Collaborate

Step 5: Collaborate: External

Involve partners at anearly stage

A critical expert resource in software innovation can have 10X the impact of an average software engineer

External Collaboration

Page 53: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scouting

Page 54: Applying Innovation in Software Development

Step 6: Innovate at Every Stage

What you are not doing

Innovation

Company Vision

Software Product Development

User Experience

Front End

Middle Layer

Back End

Hardware

Support

Stac

k

Step 6: Innovate at every stage

Page 55: Applying Innovation in Software Development

Software Delivery Process Introspection

What you are not doing

Innovation

Software Product Development

Idea generation

Planning

Software development

Verification

Launch

Feedback

Proc

ess

Step 6: Innovate at every stage

Company Vision

Page 56: Applying Innovation in Software Development

Idea

Gen

Plan

ning

Dev

Verifi

catio

nFe

edba

ckLa

unch

Introspective

Step 6: Innovate at every stage

Page 57: Applying Innovation in Software Development
Page 58: Applying Innovation in Software Development
Page 59: Applying Innovation in Software Development
Page 60: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scouting

Page 61: Applying Innovation in Software Development

7. Technology & Software Scouting

• Actively seek out new technologies starting to have impact– Competition– Successful startups– Research centers– Conferences (QCon!)

• Trending github projects• Experiment with new technology• Trend to tech ecosystem linking Example

• Wearables growing very fast• What are the components in the ecosystem• What new technologies will be adopted• What new technologies meet our current needs• How can we adopt them

Step 7: Technology/Software Scouting

Page 62: Applying Innovation in Software Development

Technologies/Software Scouting

• NodeJS• Scala• Cloud computing• Big Data• D3.js• Coffee script/backbone• Data visualization…• Elastic search• Nginx• Nolio• Google GO• R (V2)• require.js (javascript dependency

management)• less/sass/compass : css pre-

processorsStep 7: Technology/Software Scouting

• 3D Printing• Bitcoin mining• Machine learning• Ephemeral data• Smartwatch• Grid computing• HTML 5 • CSS3• Game theory• MongoDB• Django• NoSQL• Jquery• Ember• Angular• …….

Sample technologies

having impact in last 2 years

Page 63: Applying Innovation in Software Development

7 Steps

1. Make it the norm2. Make it a company mission3. Create an innovation culture4. Experiment5. Collaborate6. Every stage counts7. Scout

Page 64: Applying Innovation in Software Development

Ideas are no one’s monopoly