SlideShare a Scribd company logo
training@instil.co
February 2019
© Instil Software 2018
10 Big Ideas from Industry
Queens University
Develop	
Consult	
Train
With Special Thanks to Liberty IT
I’m here to Raise Awareness
How I Got Started…
Ten Big Ideas From Industry…
These ideas are not mine
•  They are wisdom from
experts in the industry
•  So I will be showing you a
lot of Tweets from gurus
As you know…
•  Copying from a single
source is plagiarism
•  Copying from many
sources is research J
None Of These Ideas Are New
© Instil Software 2018
Version Control Matters
(Unless you’re a masochist)
Why Version Control?
Learning About Version Control
Introducing Git
10	
1
2
3
4
6
5
8
9
7
10	
A Git repository is a complex tree and
can present branches with individual
history logs
A branch is simply a pointer to a node
Introducing Git
10	
1
2
3
4
6
5
8
9
7
10	
This is possible because structurally
every node refers to one or more parents
The arrows drawn so far need to flip
When we use
branches and make
changes, the pointer
moves automatically
Introducing Git
10	
1
2
3
4
6
5
8
9
7
10	
Arrows now represent a dependency
Our repository is actually a Merkle
Tree
Introducing Git
10	
1
2
3
4
6
5
8
9
7
10	
We can also mark or remember
individual nodes by adding tags
Unlike branches, tags do not move
R1.0.0	
R1.0.0	
R0.2.0	 R0.2.0	
R0.2.0	
R0.2.0
© Instil Software 2018
Create Feedback Cycles
(The smaller the better)
Find And Tighten Feedback Loops
BEST
TWEET
EVER
10 Big Ideas from Industry
Find And Tighten Feedback Loops
Find And Tighten Feedback Loops
Build faster feedback loops
•  Running unit tests every few minutes via TDD
•  Running integration tests every few hours via CI
•  QA teams completing non-functional tests weekly
•  Clients commenting on demos every 2-3 weeks
•  Releases measured in weeks or months
Agile = Feedback Loops
TDD	
BDD	
Integration	Tests	/	CI	
Non	Functional	Tests	/	QA	
Sprint	Demos	and	Retrospective	
Feedback Cycles in an Agile Project
The Test Driven Cycle In Outline
Celebrate the ‘but that’s stupid’ moments!
•  This is what keeps us going the right way
•  Limitations of the current code inspire the next test
Always watch the test fail first
•  The existing codebase may already do what you need
•  You may have accidently written a test that cannot fail
Don’t implement and refactor at the same time
•  They are two separate activities
•  Mixing them only causes confusion
•  Remember tests need refactoring as well
There’s a difference between simplest and stupid
•  Keep making progress towards your intended design
•  Never work yourself into a corner in the name of simplicity
Key Points About the TDD Cycle
Understanding the TDD Cycle
Some Great Reads
Some Great Reads
© Instil Software 2018
Its OK To Be Scared
(But never not to ask)
Programming Is Really Really Hard
No Fear
(Well Just A Little)
Pure Bowel
Knotting Terror
You’re Going To Experience Fear Every Day…
You	have	the	right:	
•  To	know	what	is	needed	(requirements)	with	clear	declarations	of	
priority	
•  To	produce	quality	work	at	all	times	
•  To	ask	for	and	receive	support	from	peers,	superiors,	and	
customers	
•  To	make	and	update	your	own	estimates	
•  To	accept	responsibilities	instead	of	having	them	assigned	to	you	
The	Developer	Bill	of	Rights
You	have	the	right:	
•  To	an	overall	plan,	to	know	what	can	be	accomplished	when	and	at	what	
cost	
•  To	get	the	greatest	possible	value	out	of	every	programming	week	
•  To	see	progress	in	a	running	system	proven	to	work	by	passing	repeatable	
tests	that	you	specify	
•  To	change	your	mind,	to	substitute	functionality,	and	to	change	priorities	
without	paying	exorbitant	costs	
•  To	be	informed	of	schedule	changes	in	time	to	choose	how	to	reduce	the	
scope	to	restore	the	original	date	
•  You	can	cancel	the	project	at	any	time	and	be	left	with	a	useful	working	
system	reflecting	the	investment	to	date	
The	Customer	Bill	of	Rights
Some Recommended Reading
© Instil Software 2018
Social Skills Matter
(It’s a team sport)
Social Skills Matter
Developers start out obsessing about code
•  But end up as psychologists and/or linguists
Coding in industry shouldn’t be completely novel
•  All the really technical problems have been solved already
People are a very different matter
•  The true challenges in software all revolve around people
•  Your colleagues, your management, your clients etc…
Not this…
Or even this…
But this…
Social Skills Matter
Some Helpful Advice…
© Instil Software 2018
Performance Matters
(Except when it doesn’t)
10 Big Ideas from Industry
What is Meant by ‘Performance’?
‘Performance’ can mean many things:
•  Latency – the time for an item to be processed
•  Throughput – no of items completed per ‘n’
•  Scalability – how throughput alters as usage increases
•  Degradation – what happens when we can’t scale further
•  Utilization – making full use of cores, RAM etc...
Each application will have its own priorities
•  E.g. an Android or iOS client will want low latency whereas a
batch processing system will want high throughput
Examples of Relative Costs of Operations
How do we Measure Performance?
We measure performance with:
•  Micro-benchmarks - fictional analysis of part of the system
•  Profiling - collecting runtime data from a ‘real’ system
•  Benchmarking - determining the limits of the ‘real’ system
•  Monitoring - collecting metrics from various environments
The best measurements are the most difficult to obtain
•  The closer you come to real world usage the greater the barriers
in your way to collecting measurements
•  In some environments there may be legal constraints that
prevent you ever interacting with the system in production
10 Big Ideas from Industry
Does Performance Matter?
In the early days of IT performance was everything
•  Because hardware was expensive compared to developers
Over time this began to change
•  Developer time became expensive compared to hardware
•  Software spent more and more time being maintained
Developers understanding of performance declined rapidly
•  As the underlying platform became more and more complex
Today the rule is:
•  Write the shortest simplest code you possibly can
•  Allow the compiler, VM and hardware to optimise it
•  Don’t constrain your code with assumptions about speed
•  Have performance tests to provide reliable feedback
© Instil Software 2018
Code With Two Hats
(Wear one at a time)
There Is Some Truly Horrible Code Out There…
Real Developers Write Code That’s Readable
Good Boy Scout Rule
Refactoring Is Part Of Normal Development
Quality	
Feedback	
Loops	
Clearly	Correct	
Code	
Ubiquitous	
Language	
Encapsulation	 Immutability	
Decomposition	
Verification	
Spec	By	
Example	
OO	 FP	 Single	Purpose	
	Methods	
TDD	
BDD	
Profiling	
DDD	
RX	
Iterations	
CI	
TDD	
The	limits	of	my	
language	mean	the	
limits	of	my	world	
If	you	always	do	what	
you’ve	always	done	
you'll	always	get	
what	you’ve	always	
got	
“Obviously	No	Defects”	Vs.	
“No	Obvious	Defects”	
Reviews	
Retrospectives	
DI	
Modules	
MVC	
Monads	
Structs	
Contracts
Read These Books
Never Implement and Refactor at the Same Time!!!
We write code with ‘two hats’
•  The ‘I have to get this ******** thing working’ hat
•  The ‘someday someone will maintain this’ hat
The second hat is the Refactoring one
•  Refactoring is a vital skill in its own right
Never implement and refactor together
•  Your thinking will get derailed and you will create a mess
Unit Tests And Refactoring Go Hand In Hand
© Instil Software 2018
Apply the S in SOLID
(In a hierarchical manner)
10 Big Ideas from Industry
The Single Responsibility Principle
Every function / type / class you write should
•  Perform a single function in the app
•  Have only ever one reason to change
•  Be describable without conjunctions
This is indicated by brevity
•  Aim for method lengths of 10 lines or less
•  Or even 6 lines or less in Ruby / Scala / Kotlin
SRP Works at Different Levels of Abstraction…
Unit Tests Are Tests Of Abstractions
© Instil Software 2018
Naming Is Everything
(…and incredibly hard)
When It All Goes Wrong...
Does Language Matter?
Get Into The Habit Of Worrying About Names
Introducing Domain Driven Design
10 Big Ideas from Industry
Bounded Contexts and Language Games
But how many kinds of sentence are there?
Say assertion, question, and command?---
There are countless kinds: countless
different kinds of use of what we call
"symbols", "words", "sentences". And this
multiplicity is not something fixed, given
once for all; but new types of language, new
language-games, as we may say, come into
existence, and others become obsolete and
get forgotten. (We can get a rough picture of
this from the changes in mathematics.)

Here the term "language-game" is meant to
bring into prominence the fact that the
speaking of language is part of an activity, or
of a form of life.
© Instil Software 2018
Objects Are Awesome
(But FP is the future)
C	
C++	
Java	
C#	
Pascal	
Delphi	
Basic	
Visual	Basic	
VB	.NET	
Perl	
F#	
Java	
Script	
CoffeeScript	
1990
2000
2010
TypeScript	
Jython	
JRuby	
PowerShell	
Dart	
Scala	
Clojure	
Kotlin	
Groovy	
Go	
Objective	C	
Shell	
Scripting	
Swift	
Python	
Ruby
Object Orientation Has Proven Its Worth…
Objects Threads
Functional Coding Is Becoming More Prevalent
Comparing the OO and Functional Styles
But all a purely functional program
can do is heat up the CPU - and
that's still a side effect!!!
Languages on the JVM
Java Virtual Machine
Bytecode
Interpreters
JRuby Groovy Jython
Scala Clojure KotlinJava
Gradle
Making Waves at the Moment
You Might Want To Learn Haskell…
© Instil Software 2018
The Jungle Is Neutral
(So it’s all up to you…)
Routes Into IT & Career Progression
•  System	Administrator	
•  DB	Admin	
•  Network	Admin	
•  Remote	Support	
•  On-site	Support	
•  Professional	Services	
•  Junior	à	Senior	Tester	
•  Test	Team	Lead	
•  Junior	à	Senior	
Developer	
•  Technical	Lead	
•  Architect	
•  Evangelist	
Dev	 QA	
Sys	
Admin	
CD	
Management	
Sales	&	Marketing
You need to keep updating your skill set
•  Frameworks go out of date every 2-6 years
•  Programming languages every 6-12 years
You Need to Keep Your Skills Updated
You Need To Manage Your Own Career
Ultimately The Jungle Is Neutral…
© Instil Software 2018
In Summary…
Here are our 10 Big Ideas once again:
•  Version Control Matters
•  Create Feedback Cycles
•  It’s OK To Be Scared
•  Social Skills Always Matter
•  Performance Can Matter
•  Code With Two Hats
•  Apply The S In SOLID
•  Naming Is Everything
•  You Need OO And FP
•  The Jungle Is Neutral
In Summary
Any Questions?

More Related Content

PDF
BBOM-AgilePT-2010
Joseph Yoder
 
PDF
Big Ball of Mud: Software Maintenance Nightmares
Gonzalo Rodríguez
 
PPS
Smart+Shanghai+2008 09 05
guestaa42e9
 
PPS
Smart+Shanghai+2008 09 05
Guang Ying Yuan
 
PPTX
Common Objections to TDD (and their refutations)
Seb Rose
 
KEY
The Technical Debt Trap - Michael "Doc" Norton
LeanDog
 
PDF
Escaping Test Hell - ACCU 2014
Wojciech Seliga
 
PDF
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Joseph Yoder
 
BBOM-AgilePT-2010
Joseph Yoder
 
Big Ball of Mud: Software Maintenance Nightmares
Gonzalo Rodríguez
 
Smart+Shanghai+2008 09 05
guestaa42e9
 
Smart+Shanghai+2008 09 05
Guang Ying Yuan
 
Common Objections to TDD (and their refutations)
Seb Rose
 
The Technical Debt Trap - Michael "Doc" Norton
LeanDog
 
Escaping Test Hell - ACCU 2014
Wojciech Seliga
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Joseph Yoder
 

What's hot (20)

PPTX
Designing with tests
Dror Helper
 
PDF
Friday final test
bcoder
 
PDF
Agile archiecture iltam 2014
Dani Mannes
 
PDF
Efficient Code Organisation
Squeed
 
PDF
Rethinking Enterprise Software - Brandolini
Codemotion
 
PPTX
Don't get blamed for your choices - Techorama 2019
Hannes Lowette
 
PDF
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Joseph Yoder
 
PPTX
Extreme Programming (XP): Revisted
Mike Harris
 
PDF
Smart
agustinsalv
 
PDF
"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013
ChileAgil
 
PDF
Agile testing myths v5 final-
lisacrispin
 
PDF
Atd agile automation
lisacrispin
 
PDF
The View - 30 proven Lotuscript tips
Bill Buchan
 
PPT
Contemporary Software Engineering Practices Together With Enterprise
Kenan Sevindik
 
PPTX
Gateway to Agile: XP and BDD
Gervais Johnson, Advisor
 
PDF
Belgium Testing Days - Making Test Automation Work in Agile Projects
lisacrispin
 
PDF
Mary Poppendieck: Agile under contract
Agile Lietuva
 
PPTX
Whittle Modeling Wizards 2012
jonathw
 
PDF
Refactoring AOMs For AgilePT2010
Joseph Yoder
 
PDF
Software Architecture Anti-Patterns
Eduards Sizovs
 
Designing with tests
Dror Helper
 
Friday final test
bcoder
 
Agile archiecture iltam 2014
Dani Mannes
 
Efficient Code Organisation
Squeed
 
Rethinking Enterprise Software - Brandolini
Codemotion
 
Don't get blamed for your choices - Techorama 2019
Hannes Lowette
 
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Joseph Yoder
 
Extreme Programming (XP): Revisted
Mike Harris
 
"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013
ChileAgil
 
Agile testing myths v5 final-
lisacrispin
 
Atd agile automation
lisacrispin
 
The View - 30 proven Lotuscript tips
Bill Buchan
 
Contemporary Software Engineering Practices Together With Enterprise
Kenan Sevindik
 
Gateway to Agile: XP and BDD
Gervais Johnson, Advisor
 
Belgium Testing Days - Making Test Automation Work in Agile Projects
lisacrispin
 
Mary Poppendieck: Agile under contract
Agile Lietuva
 
Whittle Modeling Wizards 2012
jonathw
 
Refactoring AOMs For AgilePT2010
Joseph Yoder
 
Software Architecture Anti-Patterns
Eduards Sizovs
 

Similar to 10 Big Ideas from Industry (20)

PDF
WordCamp Nashville: Clean Code for WordPress
mtoppa
 
PPTX
DevSecOps with Microsoft Tech
Darin Morris
 
KEY
Agile Development Overview (with a bit about builds)
David Benjamin
 
PDF
WordCamp US: Clean Code
mtoppa
 
PPTX
Paul Ellarby - Why do scrum?
Paul Ellarby
 
PPT
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
PPTX
How I Learned to Stop Worrying and Love Legacy Code.....
Mike Harris
 
PDF
Traits of a Good Engineer
Rajagopal Nagarajan
 
PDF
It is a sunny day
bcoder
 
KEY
Driving application development through behavior driven development
Einar Ingebrigtsen
 
PDF
Raising the Bar
Alexandru Bolboaca
 
PDF
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Perfecto Mobile
 
PPTX
DevOps and the Future of Information Security
Darin Morris
 
PPT
Arch factory - Agile Design: Best Practices
Igor Moochnick
 
PDF
Devconf 2011 - PHP - How Yii framework is developed
Alexander Makarov
 
PDF
It's XP, Stupid
Mike Harris
 
PDF
Agile Software Development
Ahmet Bulut
 
PDF
I Don't Code, Am I No Longer Useful
Maaret Pyhäjärvi
 
PPT
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
PDF
How to write maintainable code - Peter Hilton - Codemotion Amsterdam 2017
Codemotion
 
WordCamp Nashville: Clean Code for WordPress
mtoppa
 
DevSecOps with Microsoft Tech
Darin Morris
 
Agile Development Overview (with a bit about builds)
David Benjamin
 
WordCamp US: Clean Code
mtoppa
 
Paul Ellarby - Why do scrum?
Paul Ellarby
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
How I Learned to Stop Worrying and Love Legacy Code.....
Mike Harris
 
Traits of a Good Engineer
Rajagopal Nagarajan
 
It is a sunny day
bcoder
 
Driving application development through behavior driven development
Einar Ingebrigtsen
 
Raising the Bar
Alexandru Bolboaca
 
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Perfecto Mobile
 
DevOps and the Future of Information Security
Darin Morris
 
Arch factory - Agile Design: Best Practices
Igor Moochnick
 
Devconf 2011 - PHP - How Yii framework is developed
Alexander Makarov
 
It's XP, Stupid
Mike Harris
 
Agile Software Development
Ahmet Bulut
 
I Don't Code, Am I No Longer Useful
Maaret Pyhäjärvi
 
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
How to write maintainable code - Peter Hilton - Codemotion Amsterdam 2017
Codemotion
 

More from Garth Gilmour (20)

PPTX
Compose in Theory
Garth Gilmour
 
PPTX
Kotlin / Android Update
Garth Gilmour
 
PPTX
TypeScript Vs. KotlinJS
Garth Gilmour
 
PPTX
Shut Up And Eat Your Veg
Garth Gilmour
 
PPTX
Lies Told By The Kotlin Compiler
Garth Gilmour
 
PPTX
A TypeScript Fans KotlinJS Adventures
Garth Gilmour
 
PPTX
The Heat Death Of Enterprise IT
Garth Gilmour
 
PPTX
Lies Told By The Kotlin Compiler
Garth Gilmour
 
PPTX
Type Driven Development with TypeScript
Garth Gilmour
 
PPTX
Generics On The JVM (What you don't know will hurt you)
Garth Gilmour
 
PPTX
Using Kotlin, to Create Kotlin, to Teach Kotlin, in Space
Garth Gilmour
 
PPTX
Is Software Engineering A Profession?
Garth Gilmour
 
PPTX
Social Distancing is not Behaving Distantly
Garth Gilmour
 
PDF
The Great Scala Makeover
Garth Gilmour
 
PDF
Transitioning Android Teams Into Kotlin
Garth Gilmour
 
PDF
Simpler and Safer Java Types (via the Vavr and Lambda Libraries)
Garth Gilmour
 
PDF
The Three Horse Race
Garth Gilmour
 
PDF
The Bestiary of Pure Functional Programming
Garth Gilmour
 
PDF
BelTech 2019 Presenters Workshop
Garth Gilmour
 
PDF
Kotlin The Whole Damn Family
Garth Gilmour
 
Compose in Theory
Garth Gilmour
 
Kotlin / Android Update
Garth Gilmour
 
TypeScript Vs. KotlinJS
Garth Gilmour
 
Shut Up And Eat Your Veg
Garth Gilmour
 
Lies Told By The Kotlin Compiler
Garth Gilmour
 
A TypeScript Fans KotlinJS Adventures
Garth Gilmour
 
The Heat Death Of Enterprise IT
Garth Gilmour
 
Lies Told By The Kotlin Compiler
Garth Gilmour
 
Type Driven Development with TypeScript
Garth Gilmour
 
Generics On The JVM (What you don't know will hurt you)
Garth Gilmour
 
Using Kotlin, to Create Kotlin, to Teach Kotlin, in Space
Garth Gilmour
 
Is Software Engineering A Profession?
Garth Gilmour
 
Social Distancing is not Behaving Distantly
Garth Gilmour
 
The Great Scala Makeover
Garth Gilmour
 
Transitioning Android Teams Into Kotlin
Garth Gilmour
 
Simpler and Safer Java Types (via the Vavr and Lambda Libraries)
Garth Gilmour
 
The Three Horse Race
Garth Gilmour
 
The Bestiary of Pure Functional Programming
Garth Gilmour
 
BelTech 2019 Presenters Workshop
Garth Gilmour
 
Kotlin The Whole Damn Family
Garth Gilmour
 

Recently uploaded (20)

PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PDF
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
PPTX
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
PDF
What to consider before purchasing Microsoft 365 Business Premium_PDF.pdf
Q-Advise
 
PPTX
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
PPTX
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
DOCX
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
PPTX
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
PDF
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
What to consider before purchasing Microsoft 365 Business Premium_PDF.pdf
Q-Advise
 
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 

10 Big Ideas from Industry