SlideShare a Scribd company logo
GAME DEVELOPMENT,
START-UPS, AND
TECHNICAL DEBT
Eriks Klotins
PhD student in software engineering, BTH
“How to improve software engineering practices in start-ups?”
9+ years of experience in different roles in software engineering
ABOUT ME
ERIKS KLOTINS
eriks.klotins@bth.se
https://www.linkedin.com/in/eriksklotins/
THE FIRST CONCEPT
GAME DEVELOPMENT
Video games is A MIX OF ART AND ENGINEERING, a balance of what an artist
can imagine and what is technically possible
In contrast to other types of software,
MOST OF THE GAME MECHANICS MUST BE INVENTED. Customers do not care
whether to shoot at zombies, mend a farm, or drive a car, as long as it is fun
For game to be fun and engaging, there must be
A STRONG EMPHASIS ON NON-FUNCTIONAL REQUIREMENTS
VIDEO GAMES EVOLVE OVER TIME, more content is added, games are ported to
different platforms etc.
THE SECOND CONCEPT
START-UP COMPANIES
New companies created for a purpose to develop and bring a new,
innovative product to market.
Often lack resources and experience. Teams are minimal and build
software ad-hoc way.
There is a false belief that start-ups can write off any amount of
technical debt if the product turns out unsuccessful
THE THIRD CONCEPT
TECHNICAL DEBT
Technical debt is DISCREPANCIES FROM GOOD ENGINEERING
PRACTICES causing extra work later
Technical debt can be planned and CAN HELP TO ACHIEVE GOALS
FASTER at the expense of more work later
Technical debt CAN BE A RESULT OF NEGLIGENCE, LACK OF SKILL,
POOR DECISIONS and lead to bankruptcy.
A STORY
DEVELOPMENT OF A GAME PLATFORM
Build a website with 20 mini-games. Put together something
quick-and-dirty to test if there is a market potential
Games are mostly puzzle, attention games
Use HTML5, because it is new and cool
A STORY
DEVELOPMENT OF A GAME PLATFORM
Build a website with 20 mini-games. Put together something
quick-and-dirty to test if there is a market potential.
Use HTML5, because it is new and cool!
Just add 20 more games!
40
A STORY
DEVELOPMENT OF A GAME PLATFORM
Build a website with 20 mini-games. Put together something
quick-and-dirty to test if there is a market potential.
Use HTML5 because it is new and cool!
Just add 20 more games!
Can we have scoreboards, multiplayer features, and
more stuff?
40
Web ,iPhone, iPad,
Android tablets + phones (including
cheap ones),
Kindle Fire
A STORY
DEVELOPMENT OF A GAME PLATFORM
Build a website with 20 mini-games. Put together something
quick-and-dirty to test if there is a market potential.
Use HTML5 because it is new and cool!
Just add 20 more games!
Can we have scoreboards, multiplayer features, and more stuff
We want a mobile version for the entire thing
40
A STORY
DEVELOPMENT OF A GAME PLATFORM
Web ,iPhone, iPad,
Android tablets + phones (including
cheap ones),
Kindle Fire
Build a website with 20 mini-games. Put together something
quick-and-dirty to test if there is a market potential.
Use HTML5 because it is new and cool!
Just add 20 more games!
Can we have scoreboards, multiplayer features, and more..
We want mobile version for the entire thing (and 20 more games)
40
60
Web ,iPhone, iPad,
Android tablets + phones (including
cheap ones),
Kindle Fire
60
40
A STORY
DEVELOPMENT OF A GAME PLATFORM
Build a website with 20 mini-games. Put together something
quick-and-dirty to test if there is a market potential.
Use HTML5 because it is new and cool!
Just add 20 more games!
Can we have scoreboards, multiplayer features, and more..
We want mobile version for the entire thing (and 20 more games)
We want the product to be better than a competitor
A STORY
DEVELOPMENT OF A GAME PLATFORM
Build a website with 20 mini-games. Put together something
quick-and-dirty to test if there is a market potential.
Use HTML5 because it is new and cool!
Just add 20 more games!
Can we have scoreboards, multiplayer features, and more..
We want mobile version for the entire thing (and 20 more games)
We want the product to be better than a competitor
..add better sound effects in all 55+ games
Web ,iPhone, iPad,
Android tablets + phones (including
cheap ones),
Kindle Fire
60
40
A STORY
DEVELOPMENT OF A GAME PLATFORM
Web ,iPhone, iPad,
Android tablets + phones (including
cheap ones),
Kindle Fire
60
40
Build a website with 20 mini-games. Put together something
quick-and-dirty to test if there is a market potential
Use HTML5 because it is new and cool!
Just add 20 more games!
Can we have scoreboards, multiplayer features, and more..
We want mobile version for the entire thing (and 20 more games)
We want the product to be better than a competitor
..add better sound effects in all 55+ games
Why are these small changes taking forever?
DISAPPOINTMENT!
Stalling development of new features to deal with ”small” changes in all the
games
Unmanageable code, written by different developers in a hurry using an ad-
hoc framework
Architecture, built for few simple web games, ended up supporting 9+
platforms and 60 games
Documentation were in a form of emails and checklists. Knowledge about
the framework and platform was implicit
Testing the absolute minimum with manual, ad-hoc smoke, regression, and
scenario tests
A STORY
THE OUTCOME
There always be more ideas than there is time and money
Use of immature technologies with unknown limitations
Lack of skills to make the right decisions
Poorly managed change in quality goals from quick-and-dirty to portable and
competitive
Communication issues - too much pressure to deliver, too little
understanding and trust
REFLECTION
WHAT WENT WRONG?
Analysis of 200+ companies suggest that my story is very common among
new companies
Unwanted technical debt is introduced by smart people in difficult
circumstances
Testing is the least fun activity in software engineering just after maintaining
documentation
Larger teams need more coordination
Scaling up team and product exposes the technical debt
REFLECTION
WHAT HAPPENS IN OTHER START-UPS?
On a team level
• Architecture, quality goals
• Technology decisions
• Quality assurance practices
On an individual level
• Skills, experience
• Attitude
COUNTERMEASURES
TO UNWANTED TECHNICAL DEBT
Architecture
• Monolithic vs modular application
• Architecture should mimic your organizational structure
COUNTERMEASURES TO UNWANTED TECHNICAL DEBT
ON A TEAM LEVEL
Manage the shift in quality goals
COUNTERMEASURES TO UNWANTED TECHNICAL DEBT
ON A TEAM LEVEL
time
Technology decisions:
• JAVA vs PHP
• Ad hoc in-house framework vs a well known framework
• Just released, hyped libraries/tools/frameworks?
COUNTERMEASURES TO UNWANTED TECHNICAL DEBT
ON A TEAM LEVEL
Quality assurance practices:
• Automated metrics to identify code smells
• Linters
• Code reviews
• Pair-programming
• Collective code ownership
• Shared understanding what are good and bad practices
• Refactoring
COUNTERMEASURES TO UNWANTED TECHNICAL DEBT
ON A TEAM LEVEL
• Educate yourself
• Read good code, write good code
• Contribute to an open-source project
• Have a mentor
• Mind the Dunning-Kruger effect
COUNTERMEASURES TO UNWANTED TECHNICAL DEBT
ON AN INDIVIDUAL LEVEL
“If you are incompetent, you can’t know you
are incompetent… The skills you need to
produce a right answer are exactly the skills
you need to recognize what the right answer
is.”
- David Dunning
COUNTERMEASURES TO UNWANTED TECHNICAL DEBT
ON AN INDIVIDUAL LEVEL
COUNTERMEASURES TO UNWANTED TECHNICAL DEBT
ON AN INDIVIDUAL LEVEL
Three things you remember from my presentation?
DISCUSSION
Three things you remember from my presentation?
One thing that you really liked?
One thing where you disagree?
One thing that you don’t understood completely?
DISCUSSION
Game development, Start-ups, and Technical debt

More Related Content

Similar to Game development, Start-ups, and Technical debt

Publishing HTML5 Games: It’s ShowTime! | Laurens Rutten
Publishing HTML5 Games: It’s ShowTime! | Laurens RuttenPublishing HTML5 Games: It’s ShowTime! | Laurens Rutten
Publishing HTML5 Games: It’s ShowTime! | Laurens Rutten
Jessica Tams
 
The Modern Tech Stack: Microservices - The Dark Side
The Modern Tech Stack: Microservices - The Dark SideThe Modern Tech Stack: Microservices - The Dark Side
The Modern Tech Stack: Microservices - The Dark Side
Aggregage
 
Leiyoo company introduction
Leiyoo company introductionLeiyoo company introduction
Leiyoo company introduction
RunApple
 
The Future of Video 2013
The Future of Video 2013The Future of Video 2013
The Future of Video 2013
The Story Lab
 
Pitch Deck Teardown: Encore's $3M Pre-seed / Seed deck
Pitch Deck Teardown: Encore's $3M Pre-seed / Seed deckPitch Deck Teardown: Encore's $3M Pre-seed / Seed deck
Pitch Deck Teardown: Encore's $3M Pre-seed / Seed deck
HajeJanKamps
 
LAFS Marketing and Monetization Lecture 7: Sales and Distribution
LAFS Marketing and Monetization Lecture 7: Sales and DistributionLAFS Marketing and Monetization Lecture 7: Sales and Distribution
LAFS Marketing and Monetization Lecture 7: Sales and Distribution
David Mullich
 
The App Revolution - Is your Business Ready for Mobile?
The App Revolution - Is your Business Ready for Mobile?The App Revolution - Is your Business Ready for Mobile?
The App Revolution - Is your Business Ready for Mobile?
Matthew David
 
EIA 2015 Validating Revenue Model Assumptions
EIA 2015 Validating Revenue Model AssumptionsEIA 2015 Validating Revenue Model Assumptions
EIA 2015 Validating Revenue Model Assumptions
European Innovation Academy
 
Ideaworks Game Studio Profile
Ideaworks Game Studio ProfileIdeaworks Game Studio Profile
Ideaworks Game Studio Profile
robhendry
 
Ink AI Review.pdf
Ink AI Review.pdfInk AI Review.pdf
Ink AI Review.pdf
Emmanuel Fikru
 
Flash vs. HTML5 - by Omer Gartzman
Flash vs. HTML5 - by Omer GartzmanFlash vs. HTML5 - by Omer Gartzman
Flash vs. HTML5 - by Omer Gartzman
Omer Gartzman
 
Advancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps NextAdvancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps Next
Perfecto by Perforce
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
Globant
 
Is Content Marketing too Good to be True?
Is Content Marketing too Good to be True? Is Content Marketing too Good to be True?
Is Content Marketing too Good to be True?
NapierPR
 
IoT, AI, ML Mix or How to Deal with New Technologies (Borys Pratsiuk Technolo...
IoT, AI, ML Mix or How to Deal with New Technologies (Borys Pratsiuk Technolo...IoT, AI, ML Mix or How to Deal with New Technologies (Borys Pratsiuk Technolo...
IoT, AI, ML Mix or How to Deal with New Technologies (Borys Pratsiuk Technolo...
IT Arena
 
Globant Mobile Future - Android UADE FIT 2013
Globant Mobile Future - Android UADE FIT 2013Globant Mobile Future - Android UADE FIT 2013
Globant Mobile Future - Android UADE FIT 2013
Pablo Vittori
 
Pieter Brinkman - My first mobile experience From mobile no no, to mobile go ...
Pieter Brinkman - My first mobile experienceFrom mobile no no, to mobile go ...Pieter Brinkman - My first mobile experienceFrom mobile no no, to mobile go ...
Pieter Brinkman - My first mobile experience From mobile no no, to mobile go ...
SUGCON
 
AWS Partner Presentation - KANO/APPS - Large Scale HTML5 Games on Desktop, M...
AWS Partner Presentation -  KANO/APPS - Large Scale HTML5 Games on Desktop, M...AWS Partner Presentation -  KANO/APPS - Large Scale HTML5 Games on Desktop, M...
AWS Partner Presentation - KANO/APPS - Large Scale HTML5 Games on Desktop, M...
Amazon Web Services
 
2014: The Breakthrough Year for HTML5 games?
2014: The Breakthrough Year for HTML5 games?2014: The Breakthrough Year for HTML5 games?
2014: The Breakthrough Year for HTML5 games?
BoosterMedia
 
EuroIA 2016 Designing Connected Products
EuroIA 2016 Designing Connected ProductsEuroIA 2016 Designing Connected Products
EuroIA 2016 Designing Connected Products
Koen Van Niekerk
 

Similar to Game development, Start-ups, and Technical debt (20)

Publishing HTML5 Games: It’s ShowTime! | Laurens Rutten
Publishing HTML5 Games: It’s ShowTime! | Laurens RuttenPublishing HTML5 Games: It’s ShowTime! | Laurens Rutten
Publishing HTML5 Games: It’s ShowTime! | Laurens Rutten
 
The Modern Tech Stack: Microservices - The Dark Side
The Modern Tech Stack: Microservices - The Dark SideThe Modern Tech Stack: Microservices - The Dark Side
The Modern Tech Stack: Microservices - The Dark Side
 
Leiyoo company introduction
Leiyoo company introductionLeiyoo company introduction
Leiyoo company introduction
 
The Future of Video 2013
The Future of Video 2013The Future of Video 2013
The Future of Video 2013
 
Pitch Deck Teardown: Encore's $3M Pre-seed / Seed deck
Pitch Deck Teardown: Encore's $3M Pre-seed / Seed deckPitch Deck Teardown: Encore's $3M Pre-seed / Seed deck
Pitch Deck Teardown: Encore's $3M Pre-seed / Seed deck
 
LAFS Marketing and Monetization Lecture 7: Sales and Distribution
LAFS Marketing and Monetization Lecture 7: Sales and DistributionLAFS Marketing and Monetization Lecture 7: Sales and Distribution
LAFS Marketing and Monetization Lecture 7: Sales and Distribution
 
The App Revolution - Is your Business Ready for Mobile?
The App Revolution - Is your Business Ready for Mobile?The App Revolution - Is your Business Ready for Mobile?
The App Revolution - Is your Business Ready for Mobile?
 
EIA 2015 Validating Revenue Model Assumptions
EIA 2015 Validating Revenue Model AssumptionsEIA 2015 Validating Revenue Model Assumptions
EIA 2015 Validating Revenue Model Assumptions
 
Ideaworks Game Studio Profile
Ideaworks Game Studio ProfileIdeaworks Game Studio Profile
Ideaworks Game Studio Profile
 
Ink AI Review.pdf
Ink AI Review.pdfInk AI Review.pdf
Ink AI Review.pdf
 
Flash vs. HTML5 - by Omer Gartzman
Flash vs. HTML5 - by Omer GartzmanFlash vs. HTML5 - by Omer Gartzman
Flash vs. HTML5 - by Omer Gartzman
 
Advancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps NextAdvancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps Next
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
 
Is Content Marketing too Good to be True?
Is Content Marketing too Good to be True? Is Content Marketing too Good to be True?
Is Content Marketing too Good to be True?
 
IoT, AI, ML Mix or How to Deal with New Technologies (Borys Pratsiuk Technolo...
IoT, AI, ML Mix or How to Deal with New Technologies (Borys Pratsiuk Technolo...IoT, AI, ML Mix or How to Deal with New Technologies (Borys Pratsiuk Technolo...
IoT, AI, ML Mix or How to Deal with New Technologies (Borys Pratsiuk Technolo...
 
Globant Mobile Future - Android UADE FIT 2013
Globant Mobile Future - Android UADE FIT 2013Globant Mobile Future - Android UADE FIT 2013
Globant Mobile Future - Android UADE FIT 2013
 
Pieter Brinkman - My first mobile experience From mobile no no, to mobile go ...
Pieter Brinkman - My first mobile experienceFrom mobile no no, to mobile go ...Pieter Brinkman - My first mobile experienceFrom mobile no no, to mobile go ...
Pieter Brinkman - My first mobile experience From mobile no no, to mobile go ...
 
AWS Partner Presentation - KANO/APPS - Large Scale HTML5 Games on Desktop, M...
AWS Partner Presentation -  KANO/APPS - Large Scale HTML5 Games on Desktop, M...AWS Partner Presentation -  KANO/APPS - Large Scale HTML5 Games on Desktop, M...
AWS Partner Presentation - KANO/APPS - Large Scale HTML5 Games on Desktop, M...
 
2014: The Breakthrough Year for HTML5 games?
2014: The Breakthrough Year for HTML5 games?2014: The Breakthrough Year for HTML5 games?
2014: The Breakthrough Year for HTML5 games?
 
EuroIA 2016 Designing Connected Products
EuroIA 2016 Designing Connected ProductsEuroIA 2016 Designing Connected Products
EuroIA 2016 Designing Connected Products
 

Recently uploaded

ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
VANDANAMOHANGOUDA
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
Paris Salesforce Developer Group
 
openshift technical overview - Flow of openshift containerisatoin
openshift technical overview - Flow of openshift containerisatoinopenshift technical overview - Flow of openshift containerisatoin
openshift technical overview - Flow of openshift containerisatoin
snaprevwdev
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf
AlvianRamadhani5
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
MadhavJungKarki
 
FULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back EndFULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back End
PreethaV16
 
Accident detection system project report.pdf
Accident detection system project report.pdfAccident detection system project report.pdf
Accident detection system project report.pdf
Kamal Acharya
 
Ericsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.pptEricsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.ppt
wafawafa52
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
uqyfuc
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
21UME003TUSHARDEB
 
Assistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdfAssistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdf
Seetal Daas
 
smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...
um7474492
 
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
OKORIE1
 
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Levelised Cost of Hydrogen  (LCOH) Calculator ManualLevelised Cost of Hydrogen  (LCOH) Calculator Manual
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Massimo Talia
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
PreethaV16
 

Recently uploaded (20)

ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
 
openshift technical overview - Flow of openshift containerisatoin
openshift technical overview - Flow of openshift containerisatoinopenshift technical overview - Flow of openshift containerisatoin
openshift technical overview - Flow of openshift containerisatoin
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
 
FULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back EndFULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back End
 
Accident detection system project report.pdf
Accident detection system project report.pdfAccident detection system project report.pdf
Accident detection system project report.pdf
 
Ericsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.pptEricsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.ppt
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
 
Assistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdfAssistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdf
 
smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...
 
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
 
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Levelised Cost of Hydrogen  (LCOH) Calculator ManualLevelised Cost of Hydrogen  (LCOH) Calculator Manual
Levelised Cost of Hydrogen (LCOH) Calculator Manual
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
 

Game development, Start-ups, and Technical debt

  • 2. PhD student in software engineering, BTH “How to improve software engineering practices in start-ups?” 9+ years of experience in different roles in software engineering ABOUT ME ERIKS KLOTINS eriks.klotins@bth.se https://www.linkedin.com/in/eriksklotins/
  • 3. THE FIRST CONCEPT GAME DEVELOPMENT Video games is A MIX OF ART AND ENGINEERING, a balance of what an artist can imagine and what is technically possible In contrast to other types of software, MOST OF THE GAME MECHANICS MUST BE INVENTED. Customers do not care whether to shoot at zombies, mend a farm, or drive a car, as long as it is fun For game to be fun and engaging, there must be A STRONG EMPHASIS ON NON-FUNCTIONAL REQUIREMENTS VIDEO GAMES EVOLVE OVER TIME, more content is added, games are ported to different platforms etc.
  • 4. THE SECOND CONCEPT START-UP COMPANIES New companies created for a purpose to develop and bring a new, innovative product to market. Often lack resources and experience. Teams are minimal and build software ad-hoc way. There is a false belief that start-ups can write off any amount of technical debt if the product turns out unsuccessful
  • 5. THE THIRD CONCEPT TECHNICAL DEBT Technical debt is DISCREPANCIES FROM GOOD ENGINEERING PRACTICES causing extra work later Technical debt can be planned and CAN HELP TO ACHIEVE GOALS FASTER at the expense of more work later Technical debt CAN BE A RESULT OF NEGLIGENCE, LACK OF SKILL, POOR DECISIONS and lead to bankruptcy.
  • 6. A STORY DEVELOPMENT OF A GAME PLATFORM Build a website with 20 mini-games. Put together something quick-and-dirty to test if there is a market potential Games are mostly puzzle, attention games Use HTML5, because it is new and cool
  • 7. A STORY DEVELOPMENT OF A GAME PLATFORM Build a website with 20 mini-games. Put together something quick-and-dirty to test if there is a market potential. Use HTML5, because it is new and cool! Just add 20 more games! 40
  • 8. A STORY DEVELOPMENT OF A GAME PLATFORM Build a website with 20 mini-games. Put together something quick-and-dirty to test if there is a market potential. Use HTML5 because it is new and cool! Just add 20 more games! Can we have scoreboards, multiplayer features, and more stuff? 40
  • 9. Web ,iPhone, iPad, Android tablets + phones (including cheap ones), Kindle Fire A STORY DEVELOPMENT OF A GAME PLATFORM Build a website with 20 mini-games. Put together something quick-and-dirty to test if there is a market potential. Use HTML5 because it is new and cool! Just add 20 more games! Can we have scoreboards, multiplayer features, and more stuff We want a mobile version for the entire thing 40
  • 10. A STORY DEVELOPMENT OF A GAME PLATFORM Web ,iPhone, iPad, Android tablets + phones (including cheap ones), Kindle Fire Build a website with 20 mini-games. Put together something quick-and-dirty to test if there is a market potential. Use HTML5 because it is new and cool! Just add 20 more games! Can we have scoreboards, multiplayer features, and more.. We want mobile version for the entire thing (and 20 more games) 40 60
  • 11. Web ,iPhone, iPad, Android tablets + phones (including cheap ones), Kindle Fire 60 40 A STORY DEVELOPMENT OF A GAME PLATFORM Build a website with 20 mini-games. Put together something quick-and-dirty to test if there is a market potential. Use HTML5 because it is new and cool! Just add 20 more games! Can we have scoreboards, multiplayer features, and more.. We want mobile version for the entire thing (and 20 more games) We want the product to be better than a competitor
  • 12. A STORY DEVELOPMENT OF A GAME PLATFORM Build a website with 20 mini-games. Put together something quick-and-dirty to test if there is a market potential. Use HTML5 because it is new and cool! Just add 20 more games! Can we have scoreboards, multiplayer features, and more.. We want mobile version for the entire thing (and 20 more games) We want the product to be better than a competitor ..add better sound effects in all 55+ games Web ,iPhone, iPad, Android tablets + phones (including cheap ones), Kindle Fire 60 40
  • 13. A STORY DEVELOPMENT OF A GAME PLATFORM Web ,iPhone, iPad, Android tablets + phones (including cheap ones), Kindle Fire 60 40 Build a website with 20 mini-games. Put together something quick-and-dirty to test if there is a market potential Use HTML5 because it is new and cool! Just add 20 more games! Can we have scoreboards, multiplayer features, and more.. We want mobile version for the entire thing (and 20 more games) We want the product to be better than a competitor ..add better sound effects in all 55+ games Why are these small changes taking forever?
  • 14. DISAPPOINTMENT! Stalling development of new features to deal with ”small” changes in all the games Unmanageable code, written by different developers in a hurry using an ad- hoc framework Architecture, built for few simple web games, ended up supporting 9+ platforms and 60 games Documentation were in a form of emails and checklists. Knowledge about the framework and platform was implicit Testing the absolute minimum with manual, ad-hoc smoke, regression, and scenario tests A STORY THE OUTCOME
  • 15. There always be more ideas than there is time and money Use of immature technologies with unknown limitations Lack of skills to make the right decisions Poorly managed change in quality goals from quick-and-dirty to portable and competitive Communication issues - too much pressure to deliver, too little understanding and trust REFLECTION WHAT WENT WRONG?
  • 16. Analysis of 200+ companies suggest that my story is very common among new companies Unwanted technical debt is introduced by smart people in difficult circumstances Testing is the least fun activity in software engineering just after maintaining documentation Larger teams need more coordination Scaling up team and product exposes the technical debt REFLECTION WHAT HAPPENS IN OTHER START-UPS?
  • 17. On a team level • Architecture, quality goals • Technology decisions • Quality assurance practices On an individual level • Skills, experience • Attitude COUNTERMEASURES TO UNWANTED TECHNICAL DEBT
  • 18. Architecture • Monolithic vs modular application • Architecture should mimic your organizational structure COUNTERMEASURES TO UNWANTED TECHNICAL DEBT ON A TEAM LEVEL
  • 19. Manage the shift in quality goals COUNTERMEASURES TO UNWANTED TECHNICAL DEBT ON A TEAM LEVEL time
  • 20. Technology decisions: • JAVA vs PHP • Ad hoc in-house framework vs a well known framework • Just released, hyped libraries/tools/frameworks? COUNTERMEASURES TO UNWANTED TECHNICAL DEBT ON A TEAM LEVEL
  • 21. Quality assurance practices: • Automated metrics to identify code smells • Linters • Code reviews • Pair-programming • Collective code ownership • Shared understanding what are good and bad practices • Refactoring COUNTERMEASURES TO UNWANTED TECHNICAL DEBT ON A TEAM LEVEL
  • 22. • Educate yourself • Read good code, write good code • Contribute to an open-source project • Have a mentor • Mind the Dunning-Kruger effect COUNTERMEASURES TO UNWANTED TECHNICAL DEBT ON AN INDIVIDUAL LEVEL “If you are incompetent, you can’t know you are incompetent… The skills you need to produce a right answer are exactly the skills you need to recognize what the right answer is.” - David Dunning
  • 23. COUNTERMEASURES TO UNWANTED TECHNICAL DEBT ON AN INDIVIDUAL LEVEL
  • 24. COUNTERMEASURES TO UNWANTED TECHNICAL DEBT ON AN INDIVIDUAL LEVEL
  • 25. Three things you remember from my presentation? DISCUSSION
  • 26. Three things you remember from my presentation? One thing that you really liked? One thing where you disagree? One thing that you don’t understood completely? DISCUSSION

Editor's Notes

  1. To maintain the balance there must be a close cooperation between artists and engineers
  2. To maintain the balance there must be a close cooperation between artists and engineers
  3. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  4. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  5. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  6. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  7. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  8. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  9. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  10. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  11. To maintain the balance there must be a close cooperation between artists and engineers Technical debt is discrepancies from good engineering practices now that will cause extra work later
  12. If you notice, I did not mention if games were good or bad, whether the customers liked them or not.. Whether the company had a meaningful business model.. Yet we spent hours arguing about game designs and other nitty-gritty details. We never got to the point where this is relevant.. Mostly due to bad decisions and technical debt! 1. The ideas are exclusively about customer value, visible features. However these features need Internal support in architecture. Sadly, as a developer you are paid for external features only. Internals is your business. 2. Bad decisions were made by good people Under pressure With incomplete information
  13. Many young companies never launch their product Many never get to the point where the features matter Many never get to the point where the business model matters Knowledge = domain, SE, marketing, sales + means of benefiting from group knowledge Have a nice narrative.. Talk about contributing factors to TD
  14. Modular – easier to split work, less dependencies. Easier to test. Easier to add/remove features Monolithic lump = grows too big too fast. Interdependencies makes changes difficult.
  15. Modular – easier to split work, less dependencies. Easier to test. Easier to add/remove features Monolithic lump = grows too big too fast. Interdependencies makes changes difficult.
  16. “If you are incompetent, you can’t know you are incompetent… The skills you need to produce a right answer are exactly the skills you need to recognize what the right answer is.” - David Dunning
  17. Things go as low as people are ready to tolerate Software engineering is a team activity and each person in the team is responsible for the end result.