SlideShare a Scribd company logo
1 of 95
Product architecture
by Royi Benyossef
Failures and lessons learnt
Android developer since 2009
Tech community activist, speaker and founder
Mentor at * accelerator
Google expert since 2013
Developer relations manager SamsungNext Tel-Aviv
Introduction
Royi Benyossef
Introduction
Samsung Next Tel-aviv
Community (free-for-all, no strings attached)
Investment:
Early stage SW & SaaS startups
Seasoned entrepreneurs
Deep tech
- IoT, AR/VR, cyber, DL, ML, CV, bots, cloud etc.
Community (free-for-all, no strings attached)
Investment (SW & SaaS startups & entrepreneurs)
For more information:
- samsungnexttlv.com
- royi@samsungnext.com
Introduction
Samsung Next Tel-aviv
Prolog
Prolog
Vidmind:
Introduction
Prolog
Vidmind:
- End-to-end OTT TV platform
Introduction
Prolog
Vidmind:
End-to-end OTT TV platform
- Standard backend & clients
Introduction
Prolog
Vidmind:
End-to-end OTT TV platform
- Standard backend & clients
+ AOSP STB
Introduction
Prolog
Vidmind:
End-to-end OTT TV platform
- Standard backend & clients
+ Android “based” set-top box
Introduction
Prolog
AOSP STB
Me @ Vidmind:
Introduction
Prolog
AOSP STB
Me @ Vidmind:
- From Android tech. leader
Introduction
Prolog
AOSP STB
Me @ Vidmind:
From Android tech. leader
- To Android clients group manager
Introduction
Prolog
AOSP STB
Me @ Vidmind:
From Android tech. leader
- To Android clients group manager
(In charge W/ design, dev, arch. & prod.)
Introduction
Prolog
See what we did
Agenda
Prolog
See what we did
Talk about what went wrong and why
Agenda
Prolog
See what we did
Talk about what went wrong
Say what we learned from our issues
Agenda
Prolog
See what we did
Talk about what went wrong
Say what we learned from our issues
Show how we attempted to “fix it”
Agenda
Prolog
See what we did
Talk about what went wrong
Say what we learned from our issues
Show how we attempted to “fix it”
Disclose how that panned out
Agenda
Prolog
See what we did
Talk about what went wrong
Say what we learned from our issues
Show how we attempted to “fix it”
Disclose how that panned out
Repeat
Agenda
Chapter 1
To be young and hopeful
Chapter 1
One app (launcher)
What we did
Chapter 1
One app (launcher)
Each “screen” was in a transparent activity
What we did
Chapter 1
One app (launcher)
Each “screen” was in a transparent activity
Root app handled video and OpenGL gallery
What we did
Chapter 1
One app (launcher)
Each “screen” was in a transparent activity
Root app handled video and OpenGL gallery
On-prem and manual build machine
What we did
Chapter 1
One app (launcher)
Each “screen” was in a transparent activity
Root app handled video and OpenGL gallery
On-prem and manual build machine
Using proprietary APIs for “special” features
What we did
Chapter 1
Apk size was enormous
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
UX did not work as the designers asked
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
UX did not work as the designers asked
Codebase became an unmanageable mess
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
UX did not work as the designers asked
Codebase became an unmanageable mess:
> Builds took time and manpower
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
UX did not work as the designers asked
Codebase became an unmanageable mess:
Builds took time and manpower
> No QA automation
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
UX did not work as the designers asked
Codebase became an unmanageable mess:
Builds took time and manpower
No QA automation
> Stability was terrible
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
UX did not work as the designers asked
Codebase became an unmanageable mess:
Builds took time and manpower
No QA automation
Stability was terrible
> Runtime memory was too much
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
UX did not work as the designers asked
Codebase became an unmanageable mess:
Builds took time and manpower
No QA automation
Stability was terrible
> Runtime memory was too much
What we later found
Chapter 1
Apk size was enormous (mostly bad for dev)
UX did not work as the designers asked
Codebase became an unmanageable mess
QA was impossible
What we later found
Chapter 1
We can’t look at this as a normal application
What we learned from it
Chapter 1
We can’t look at this as a normal application
We need to seek other implementations
What we learned from it
Chapter 2
Throwing a tantrum
Chapter 2
One app
What we (almost) did
Chapter 2
One app
Implemented entirely in OpenGL
What we (almost) did
Chapter 2
OpenGL development is long and hard
What we later found
Chapter 2
OpenGL development is long and hard
OpenGL wrappers are meant for games
What we later found
Chapter 2
We have to go back!!!
What we learned from it
Chapter 3
Minimum changes
Chapter 3
Activities became apps
What we did
Chapter 3
Activities became apps (1 per screen + launcher)
What we did
Chapter 3
Activities became apps (1 per screen + launcher)
Added a “sticky” service
What we did
Chapter 3
Activities became apps (1 per screen + launcher)
Added a “sticky” service
Communication (w/ interfaces):
- App to service
What we did
Chapter 3
Activities became apps (1 per screen + launcher)
Added a “sticky” service
Communication (w/ interfaces):
App to service
- Service to app
What we did
Chapter 3
Activities became apps (1 per screen + launcher)
Added a “sticky” service
Communication (w/ interfaces)
Pseudo MVC
What we did
Chapter 3
Activities became apps (1 per screen + launcher)
Added a “sticky” service
Communication (w/ interfaces)
Pseudo MVC
* Still using OpenGL gallery
What we did
Chapter 3
What we did
Activities became apps (1 per screen + launcher)
Added a “sticky” service
Communication (w/ interfaces)
Pseudo MVC
* Still using OpenGL gallery
STB HW and FW updated to improve UX
Chapter 3
What we did
Activities became apps (1 per screen + launcher)
Added a “sticky” service
Communication (w/ interfaces)
Pseudo MVC
* Still using OpenGL gallery
STB HW and FW updated to improve UX
(Incl. Android API upgrade)
Chapter 3
Services do not live forever
What we later found
Chapter 3
Services do not live forever (= instability)
What we later found
Chapter 3
Services do not live forever
complex development process
What we later found
Chapter 3
Services do not live forever
complex development process
(= 10 files to add a method)
What we later found
Chapter 3
Services do not live forever
complex development process
All proprietary APIs changed behavior
What we later found
Chapter 3
Services do not live forever
complex development process
All proprietary APIs changed behavior
(= needed massive code changes)
What we later found
Chapter 3
Services do not live forever
complex development process
All proprietary APIs changed behavior
Code maintainability issues
What we later found
Chapter 3
Services do not live forever
complex development process
All proprietary APIs changed behavior
Code maintainability issues
+ builds (still) took time and manpower
What we later found
Chapter 3
Services do not live forever
complex development process
All proprietary APIs changed behavior
Code maintainability issues
+ builds (still) took time and manpower
+ No QA automation
What we later found
Chapter 3
Services do not live forever
complex development process
All proprietary APIs changed behavior
Code maintainability issues
+ builds (still) took time and manpower
+ No QA automation
= QA was impossible
What we later found
Chapter 3
No more OpenGL
What we learned from it
Chapter 3
No more OpenGL
We need to work with Android, not against it
What we learned from it
Chapter 3
No more OpenGL
We need to work with Android, not against it
We need a great UX that works on Android
What we learned from it
Chapter 3
No more OpenGL
We need to work with Android, not against it
We need a great UX that works on Android
Build and QA automation are a must
What we learned from it
Chapter 3
No more OpenGL
We need to work with Android, not against it
We need a great UX that works on Android
Build and QA automation are a must
Feature encapsulation is a must
What we learned from it
Chapter 3
No more OpenGL
We need to work with Android, not against it
We need a great UX that works on Android
Build and QA automation are a must
Feature encapsulation is a must
Effective code sharing is a must
What we learned from it
Chapter 4
This has to work!
Chapter 4
Maven + jenkins based build machine
What we did
Chapter 4
Maven + jenkins based build machine
Appium + Espresso + JUnit automation
What we did
Chapter 4
Maven + jenkins based build machine
Appium + Espresso + JUnit automation
HAL
What we did
Chapter 4
Maven + jenkins based build machine
Appium + Espresso + JUnit automation
HAL (Hardware Abstraction Layer)
What we did
Chapter 4
Maven + jenkins based build machine
Appium + Espresso + JUnit automation
HAL (Hardware Abstraction Layer)
Func. based encapsulation
What we did
Chapter 4
Maven + jenkins based build machine
Appium + Espresso + JUnit automation
HAL (Hardware Abstraction Layer)
Func. based encapsulation
App dependency management
What we did
Chapter 4
Far faster implementation
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency allowed us to:
- Increase group size to ~35
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency allowed us to:
Increase group size to ~35
- Work in 5 locations (4 countries)
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency
Designers were happy with the UX
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency
Designers were happy with the UX
Improved performance and stability
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency
Designers were happy with the UX
Improved performance and stability
Improved work cycle and transparency
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency
Designers were happy with the UX
Improved performance and stability
Improved work cycle and transparency
HW&FW agnostic product:
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency
Designers were happy with the UX
Improved performance and stability
Improved work cycle and transparency
HW&FW agnostic product:
> Faster integ. for demos -> easier sale
What we later found
Chapter 4
Far faster implementation
Reduced inter-team dependency
Designers were happy with the UX
Improved performance and stability
Improved work cycle and transparency
HW&FW agnostic product:
Faster integ. for demos -> easier sale
> Increased bargaining powerwith
OEMs
What we later found
Summary
Summary
Work better not harder
What we learned from it
Summary
Work better not harder
Automate as much as possible
What we learned from it
Summary
Work better not harder
Automate as much as possible
Work with your system, not against it
What we learned from it
Summary
Work better not harder
Automate as much as possible
Work with your system, not against it
(HW, SW, FW and people)
What we learned from it
Summary
Work better not harder
Automate as much as possible
Work with your system, not against it
Never be afraid to start over (if you can)
What we learned from it
“We should be building great
things. Things that Don’t yet
exist”
Royi Benyossef
samsungnexttlv.com
Hope you liked it
Thanks for listening!
Royi Benyossef
(royi@samsungnext.com)

More Related Content

What's hot

Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...DreamToIPO
 
Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day trainingTroy Miles
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Sauce Labs
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentLemi Orhan Ergin
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingKatie Chin
 
Story Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkStory Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkOleksiy Rezchykov
 
Building serverless-applications
Building serverless-applicationsBuilding serverless-applications
Building serverless-applicationsAndrii Soldatenko
 
Git with t for teams
Git with t for teamsGit with t for teams
Git with t for teamsSven Peters
 
Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetDevoteam Revolve
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewPradeep Elankumaran
 
Workshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkWorkshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkAayush Shrestha
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)Nitin Bhide
 
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...Alex Fedorov
 
Bulletproof design systems using storybook
Bulletproof design systems using storybookBulletproof design systems using storybook
Bulletproof design systems using storybookChen Feldman
 
CI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift DeploymentCI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift DeploymentBintang Thunder
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsNitin Bhide
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HEREStefan Verhoeff
 

What's hot (20)

Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...Why every startup built with Ruby on Rails has an upper hand over their compe...
Why every startup built with Ruby on Rails has an upper hand over their compe...
 
Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day training
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
 
Story Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkStory Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium Framework
 
Building serverless-applications
Building serverless-applicationsBuilding serverless-applications
Building serverless-applications
 
Git with t for teams
Git with t for teamsGit with t for teams
Git with t for teams
 
A Tale of Two Apps
A Tale of Two AppsA Tale of Two Apps
A Tale of Two Apps
 
Phonegap presentation
Phonegap presentationPhonegap presentation
Phonegap presentation
 
Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with Puppet
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
 
Workshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkWorkshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic Framework
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
What Are The Best Practices When Building a Back-end App With Kotlin And Spri...
 
Bulletproof design systems using storybook
Bulletproof design systems using storybookBulletproof design systems using storybook
Bulletproof design systems using storybook
 
Appium vs Espresso and XCUI Test
Appium vs Espresso and XCUI TestAppium vs Espresso and XCUI Test
Appium vs Espresso and XCUI Test
 
CI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift DeploymentCI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift Deployment
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
 

Similar to "Product Architecture: failures and lessons learnt" - Royi Benyossef @Products_of_Things, August 2016

MongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB
 
What is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfShaiAlmog1
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPIScott Triglia
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMoataz Nabil
 
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatDominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatmdevtalk
 
Ruby on Google App Engine: Upgrade to Google App "Turbo" Engine
Ruby on Google App Engine: Upgrade to Google App "Turbo" EngineRuby on Google App Engine: Upgrade to Google App "Turbo" Engine
Ruby on Google App Engine: Upgrade to Google App "Turbo" EngineJoseph Ku
 
Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!Sophia Russell
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automationVishal Banthia
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Shivam Prajapati
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platformi4consulting.org
 
Making Angular2 lean and Fast
Making Angular2 lean and FastMaking Angular2 lean and Fast
Making Angular2 lean and FastVinci Rufus
 
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysOur DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysDynatrace
 
Evolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native WorldEvolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native WorldIain Hull
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...André Goliath
 
I Love APIs - Oct 2015
I Love APIs - Oct 2015I Love APIs - Oct 2015
I Love APIs - Oct 2015Mike McNeil
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowAll Things Open
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
 
Zero cost serverless Real time web app
Zero cost serverless Real time web appZero cost serverless Real time web app
Zero cost serverless Real time web appBarcamp Saigon
 

Similar to "Product Architecture: failures and lessons learnt" - Royi Benyossef @Products_of_Things, August 2016 (20)

MongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug ReportingMongoDB World 2019: In-App Bug Reporting
MongoDB World 2019: In-App Bug Reporting
 
What is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdf
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPI
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptatDominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
Dominik Veselý - Vše co jste kdy chtěli vědět o CI a báli jste se zeptat
 
Ruby on Google App Engine: Upgrade to Google App "Turbo" Engine
Ruby on Google App Engine: Upgrade to Google App "Turbo" EngineRuby on Google App Engine: Upgrade to Google App "Turbo" Engine
Ruby on Google App Engine: Upgrade to Google App "Turbo" Engine
 
Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!
 
Angular
AngularAngular
Angular
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platform
 
Making Angular2 lean and Fast
Making Angular2 lean and FastMaking Angular2 lean and Fast
Making Angular2 lean and Fast
 
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysOur DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
 
Evolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native WorldEvolving Services Into A Cloud Native World
Evolving Services Into A Cloud Native World
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
 
I Love APIs - Oct 2015
I Love APIs - Oct 2015I Love APIs - Oct 2015
I Love APIs - Oct 2015
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Zero cost serverless Real time web app
Zero cost serverless Real time web appZero cost serverless Real time web app
Zero cost serverless Real time web app
 
Serverless
ServerlessServerless
Serverless
 

More from Product of Things

With tangible products, comes tangible pain: how to better predict problems i...
With tangible products, comes tangible pain: how to better predict problems i...With tangible products, comes tangible pain: how to better predict problems i...
With tangible products, comes tangible pain: how to better predict problems i...Product of Things
 
Match the supply chain for your product needs with Amit Rotenberg
Match the supply chain for your product needs with Amit RotenbergMatch the supply chain for your product needs with Amit Rotenberg
Match the supply chain for your product needs with Amit RotenbergProduct of Things
 
‘Mapping the IoT Toolkit’ an open research to design meaningful smart product...
‘Mapping the IoT Toolkit’ an open research to design meaningful smart product...‘Mapping the IoT Toolkit’ an open research to design meaningful smart product...
‘Mapping the IoT Toolkit’ an open research to design meaningful smart product...Product of Things
 
Making better ‘things’ using Design Thinking with Yorai Gabriel
Making better ‘things’ using Design Thinking with Yorai GabrielMaking better ‘things’ using Design Thinking with Yorai Gabriel
Making better ‘things’ using Design Thinking with Yorai GabrielProduct of Things
 
Empathetic Strategy: Design mindset for product innovation in the age of acce...
Empathetic Strategy: Design mindset for product innovation in the age of acce...Empathetic Strategy: Design mindset for product innovation in the age of acce...
Empathetic Strategy: Design mindset for product innovation in the age of acce...Product of Things
 
Pushing traditional manufacturers towards agile hardware manufacturing with D...
Pushing traditional manufacturers towards agile hardware manufacturing with D...Pushing traditional manufacturers towards agile hardware manufacturing with D...
Pushing traditional manufacturers towards agile hardware manufacturing with D...Product of Things
 
IoF - Internet of Farms - How the digital revolution is changing the agricult...
IoF - Internet of Farms - How the digital revolution is changing the agricult...IoF - Internet of Farms - How the digital revolution is changing the agricult...
IoF - Internet of Farms - How the digital revolution is changing the agricult...Product of Things
 
Product and UX lessons learned from 100 IoT companies with Jonathan Seroussi
Product and UX lessons learned from 100 IoT companies with Jonathan SeroussiProduct and UX lessons learned from 100 IoT companies with Jonathan Seroussi
Product and UX lessons learned from 100 IoT companies with Jonathan SeroussiProduct of Things
 
Be ready for personalized augmented reality experiences with Lior Romanwosky
Be ready for personalized augmented reality experiences with Lior RomanwoskyBe ready for personalized augmented reality experiences with Lior Romanwosky
Be ready for personalized augmented reality experiences with Lior RomanwoskyProduct of Things
 
Build your first IoT device - The tricky interface of Product and R&D with Ni...
Build your first IoT device - The tricky interface of Product and R&D with Ni...Build your first IoT device - The tricky interface of Product and R&D with Ni...
Build your first IoT device - The tricky interface of Product and R&D with Ni...Product of Things
 
Avoid embarrassing press by designing secure IoT products with Misha Seltzer
Avoid embarrassing press by designing secure IoT products with Misha SeltzerAvoid embarrassing press by designing secure IoT products with Misha Seltzer
Avoid embarrassing press by designing secure IoT products with Misha SeltzerProduct of Things
 
The IoT on-boarding challenge: Software, people, and things with Noam Mantel
The IoT on-boarding challenge: Software, people, and things with Noam MantelThe IoT on-boarding challenge: Software, people, and things with Noam Mantel
The IoT on-boarding challenge: Software, people, and things with Noam MantelProduct of Things
 
Your challenge is not to sell products but to profitably manage products with...
Your challenge is not to sell products but to profitably manage products with...Your challenge is not to sell products but to profitably manage products with...
Your challenge is not to sell products but to profitably manage products with...Product of Things
 
Make sure your product doesn’t only follow but also lead tomorrow’s tech with...
Make sure your product doesn’t only follow but also lead tomorrow’s tech with...Make sure your product doesn’t only follow but also lead tomorrow’s tech with...
Make sure your product doesn’t only follow but also lead tomorrow’s tech with...Product of Things
 
"Lean startups : what happens when you put hardware into the mix?" - Gal Shau...
"Lean startups : what happens when you put hardware into the mix?" - Gal Shau..."Lean startups : what happens when you put hardware into the mix?" - Gal Shau...
"Lean startups : what happens when you put hardware into the mix?" - Gal Shau...Product of Things
 
"Breaking the tech barrier: difficulties of going smart for non tech teams" -...
"Breaking the tech barrier: difficulties of going smart for non tech teams" -..."Breaking the tech barrier: difficulties of going smart for non tech teams" -...
"Breaking the tech barrier: difficulties of going smart for non tech teams" -...Product of Things
 
"Bridging the gap between prototypes and production" - Odi Dahan @Products_of...
"Bridging the gap between prototypes and production" - Odi Dahan @Products_of..."Bridging the gap between prototypes and production" - Odi Dahan @Products_of...
"Bridging the gap between prototypes and production" - Odi Dahan @Products_of...Product of Things
 
“It’s Not About Sensor Making, it’s About Sense Making” - Moriya Kassis @Prod...
“It’s Not About Sensor Making, it’s About Sense Making” - Moriya Kassis @Prod...“It’s Not About Sensor Making, it’s About Sense Making” - Moriya Kassis @Prod...
“It’s Not About Sensor Making, it’s About Sense Making” - Moriya Kassis @Prod...Product of Things
 
“Medical Robotics - Perception & Reality - The R&D challenge” - Yossi Bar @Pr...
“Medical Robotics - Perception & Reality - The R&D challenge” - Yossi Bar @Pr...“Medical Robotics - Perception & Reality - The R&D challenge” - Yossi Bar @Pr...
“Medical Robotics - Perception & Reality - The R&D challenge” - Yossi Bar @Pr...Product of Things
 

More from Product of Things (19)

With tangible products, comes tangible pain: how to better predict problems i...
With tangible products, comes tangible pain: how to better predict problems i...With tangible products, comes tangible pain: how to better predict problems i...
With tangible products, comes tangible pain: how to better predict problems i...
 
Match the supply chain for your product needs with Amit Rotenberg
Match the supply chain for your product needs with Amit RotenbergMatch the supply chain for your product needs with Amit Rotenberg
Match the supply chain for your product needs with Amit Rotenberg
 
‘Mapping the IoT Toolkit’ an open research to design meaningful smart product...
‘Mapping the IoT Toolkit’ an open research to design meaningful smart product...‘Mapping the IoT Toolkit’ an open research to design meaningful smart product...
‘Mapping the IoT Toolkit’ an open research to design meaningful smart product...
 
Making better ‘things’ using Design Thinking with Yorai Gabriel
Making better ‘things’ using Design Thinking with Yorai GabrielMaking better ‘things’ using Design Thinking with Yorai Gabriel
Making better ‘things’ using Design Thinking with Yorai Gabriel
 
Empathetic Strategy: Design mindset for product innovation in the age of acce...
Empathetic Strategy: Design mindset for product innovation in the age of acce...Empathetic Strategy: Design mindset for product innovation in the age of acce...
Empathetic Strategy: Design mindset for product innovation in the age of acce...
 
Pushing traditional manufacturers towards agile hardware manufacturing with D...
Pushing traditional manufacturers towards agile hardware manufacturing with D...Pushing traditional manufacturers towards agile hardware manufacturing with D...
Pushing traditional manufacturers towards agile hardware manufacturing with D...
 
IoF - Internet of Farms - How the digital revolution is changing the agricult...
IoF - Internet of Farms - How the digital revolution is changing the agricult...IoF - Internet of Farms - How the digital revolution is changing the agricult...
IoF - Internet of Farms - How the digital revolution is changing the agricult...
 
Product and UX lessons learned from 100 IoT companies with Jonathan Seroussi
Product and UX lessons learned from 100 IoT companies with Jonathan SeroussiProduct and UX lessons learned from 100 IoT companies with Jonathan Seroussi
Product and UX lessons learned from 100 IoT companies with Jonathan Seroussi
 
Be ready for personalized augmented reality experiences with Lior Romanwosky
Be ready for personalized augmented reality experiences with Lior RomanwoskyBe ready for personalized augmented reality experiences with Lior Romanwosky
Be ready for personalized augmented reality experiences with Lior Romanwosky
 
Build your first IoT device - The tricky interface of Product and R&D with Ni...
Build your first IoT device - The tricky interface of Product and R&D with Ni...Build your first IoT device - The tricky interface of Product and R&D with Ni...
Build your first IoT device - The tricky interface of Product and R&D with Ni...
 
Avoid embarrassing press by designing secure IoT products with Misha Seltzer
Avoid embarrassing press by designing secure IoT products with Misha SeltzerAvoid embarrassing press by designing secure IoT products with Misha Seltzer
Avoid embarrassing press by designing secure IoT products with Misha Seltzer
 
The IoT on-boarding challenge: Software, people, and things with Noam Mantel
The IoT on-boarding challenge: Software, people, and things with Noam MantelThe IoT on-boarding challenge: Software, people, and things with Noam Mantel
The IoT on-boarding challenge: Software, people, and things with Noam Mantel
 
Your challenge is not to sell products but to profitably manage products with...
Your challenge is not to sell products but to profitably manage products with...Your challenge is not to sell products but to profitably manage products with...
Your challenge is not to sell products but to profitably manage products with...
 
Make sure your product doesn’t only follow but also lead tomorrow’s tech with...
Make sure your product doesn’t only follow but also lead tomorrow’s tech with...Make sure your product doesn’t only follow but also lead tomorrow’s tech with...
Make sure your product doesn’t only follow but also lead tomorrow’s tech with...
 
"Lean startups : what happens when you put hardware into the mix?" - Gal Shau...
"Lean startups : what happens when you put hardware into the mix?" - Gal Shau..."Lean startups : what happens when you put hardware into the mix?" - Gal Shau...
"Lean startups : what happens when you put hardware into the mix?" - Gal Shau...
 
"Breaking the tech barrier: difficulties of going smart for non tech teams" -...
"Breaking the tech barrier: difficulties of going smart for non tech teams" -..."Breaking the tech barrier: difficulties of going smart for non tech teams" -...
"Breaking the tech barrier: difficulties of going smart for non tech teams" -...
 
"Bridging the gap between prototypes and production" - Odi Dahan @Products_of...
"Bridging the gap between prototypes and production" - Odi Dahan @Products_of..."Bridging the gap between prototypes and production" - Odi Dahan @Products_of...
"Bridging the gap between prototypes and production" - Odi Dahan @Products_of...
 
“It’s Not About Sensor Making, it’s About Sense Making” - Moriya Kassis @Prod...
“It’s Not About Sensor Making, it’s About Sense Making” - Moriya Kassis @Prod...“It’s Not About Sensor Making, it’s About Sense Making” - Moriya Kassis @Prod...
“It’s Not About Sensor Making, it’s About Sense Making” - Moriya Kassis @Prod...
 
“Medical Robotics - Perception & Reality - The R&D challenge” - Yossi Bar @Pr...
“Medical Robotics - Perception & Reality - The R&D challenge” - Yossi Bar @Pr...“Medical Robotics - Perception & Reality - The R&D challenge” - Yossi Bar @Pr...
“Medical Robotics - Perception & Reality - The R&D challenge” - Yossi Bar @Pr...
 

Recently uploaded

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceIES VE
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxMarkSteadman7
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 

Recently uploaded (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 

"Product Architecture: failures and lessons learnt" - Royi Benyossef @Products_of_Things, August 2016

  • 1. Product architecture by Royi Benyossef Failures and lessons learnt
  • 2. Android developer since 2009 Tech community activist, speaker and founder Mentor at * accelerator Google expert since 2013 Developer relations manager SamsungNext Tel-Aviv Introduction Royi Benyossef
  • 3. Introduction Samsung Next Tel-aviv Community (free-for-all, no strings attached) Investment: Early stage SW & SaaS startups Seasoned entrepreneurs Deep tech - IoT, AR/VR, cyber, DL, ML, CV, bots, cloud etc.
  • 4. Community (free-for-all, no strings attached) Investment (SW & SaaS startups & entrepreneurs) For more information: - samsungnexttlv.com - royi@samsungnext.com Introduction Samsung Next Tel-aviv
  • 7. Prolog Vidmind: - End-to-end OTT TV platform Introduction
  • 8. Prolog Vidmind: End-to-end OTT TV platform - Standard backend & clients Introduction
  • 9. Prolog Vidmind: End-to-end OTT TV platform - Standard backend & clients + AOSP STB Introduction
  • 10. Prolog Vidmind: End-to-end OTT TV platform - Standard backend & clients + Android “based” set-top box Introduction
  • 11. Prolog AOSP STB Me @ Vidmind: Introduction
  • 12. Prolog AOSP STB Me @ Vidmind: - From Android tech. leader Introduction
  • 13. Prolog AOSP STB Me @ Vidmind: From Android tech. leader - To Android clients group manager Introduction
  • 14. Prolog AOSP STB Me @ Vidmind: From Android tech. leader - To Android clients group manager (In charge W/ design, dev, arch. & prod.) Introduction
  • 15. Prolog See what we did Agenda
  • 16. Prolog See what we did Talk about what went wrong and why Agenda
  • 17. Prolog See what we did Talk about what went wrong Say what we learned from our issues Agenda
  • 18. Prolog See what we did Talk about what went wrong Say what we learned from our issues Show how we attempted to “fix it” Agenda
  • 19. Prolog See what we did Talk about what went wrong Say what we learned from our issues Show how we attempted to “fix it” Disclose how that panned out Agenda
  • 20. Prolog See what we did Talk about what went wrong Say what we learned from our issues Show how we attempted to “fix it” Disclose how that panned out Repeat Agenda
  • 21. Chapter 1 To be young and hopeful
  • 22. Chapter 1 One app (launcher) What we did
  • 23. Chapter 1 One app (launcher) Each “screen” was in a transparent activity What we did
  • 24. Chapter 1 One app (launcher) Each “screen” was in a transparent activity Root app handled video and OpenGL gallery What we did
  • 25. Chapter 1 One app (launcher) Each “screen” was in a transparent activity Root app handled video and OpenGL gallery On-prem and manual build machine What we did
  • 26. Chapter 1 One app (launcher) Each “screen” was in a transparent activity Root app handled video and OpenGL gallery On-prem and manual build machine Using proprietary APIs for “special” features What we did
  • 27. Chapter 1 Apk size was enormous What we later found
  • 28. Chapter 1 Apk size was enormous (mostly bad for dev) What we later found
  • 29. Chapter 1 Apk size was enormous (mostly bad for dev) UX did not work as the designers asked What we later found
  • 30. Chapter 1 Apk size was enormous (mostly bad for dev) UX did not work as the designers asked Codebase became an unmanageable mess What we later found
  • 31. Chapter 1 Apk size was enormous (mostly bad for dev) UX did not work as the designers asked Codebase became an unmanageable mess: > Builds took time and manpower What we later found
  • 32. Chapter 1 Apk size was enormous (mostly bad for dev) UX did not work as the designers asked Codebase became an unmanageable mess: Builds took time and manpower > No QA automation What we later found
  • 33. Chapter 1 Apk size was enormous (mostly bad for dev) UX did not work as the designers asked Codebase became an unmanageable mess: Builds took time and manpower No QA automation > Stability was terrible What we later found
  • 34. Chapter 1 Apk size was enormous (mostly bad for dev) UX did not work as the designers asked Codebase became an unmanageable mess: Builds took time and manpower No QA automation Stability was terrible > Runtime memory was too much What we later found
  • 35. Chapter 1 Apk size was enormous (mostly bad for dev) UX did not work as the designers asked Codebase became an unmanageable mess: Builds took time and manpower No QA automation Stability was terrible > Runtime memory was too much What we later found
  • 36. Chapter 1 Apk size was enormous (mostly bad for dev) UX did not work as the designers asked Codebase became an unmanageable mess QA was impossible What we later found
  • 37. Chapter 1 We can’t look at this as a normal application What we learned from it
  • 38. Chapter 1 We can’t look at this as a normal application We need to seek other implementations What we learned from it
  • 40. Chapter 2 One app What we (almost) did
  • 41. Chapter 2 One app Implemented entirely in OpenGL What we (almost) did
  • 42. Chapter 2 OpenGL development is long and hard What we later found
  • 43. Chapter 2 OpenGL development is long and hard OpenGL wrappers are meant for games What we later found
  • 44. Chapter 2 We have to go back!!! What we learned from it
  • 46. Chapter 3 Activities became apps What we did
  • 47. Chapter 3 Activities became apps (1 per screen + launcher) What we did
  • 48. Chapter 3 Activities became apps (1 per screen + launcher) Added a “sticky” service What we did
  • 49. Chapter 3 Activities became apps (1 per screen + launcher) Added a “sticky” service Communication (w/ interfaces): - App to service What we did
  • 50. Chapter 3 Activities became apps (1 per screen + launcher) Added a “sticky” service Communication (w/ interfaces): App to service - Service to app What we did
  • 51. Chapter 3 Activities became apps (1 per screen + launcher) Added a “sticky” service Communication (w/ interfaces) Pseudo MVC What we did
  • 52. Chapter 3 Activities became apps (1 per screen + launcher) Added a “sticky” service Communication (w/ interfaces) Pseudo MVC * Still using OpenGL gallery What we did
  • 53. Chapter 3 What we did Activities became apps (1 per screen + launcher) Added a “sticky” service Communication (w/ interfaces) Pseudo MVC * Still using OpenGL gallery STB HW and FW updated to improve UX
  • 54. Chapter 3 What we did Activities became apps (1 per screen + launcher) Added a “sticky” service Communication (w/ interfaces) Pseudo MVC * Still using OpenGL gallery STB HW and FW updated to improve UX (Incl. Android API upgrade)
  • 55. Chapter 3 Services do not live forever What we later found
  • 56. Chapter 3 Services do not live forever (= instability) What we later found
  • 57. Chapter 3 Services do not live forever complex development process What we later found
  • 58. Chapter 3 Services do not live forever complex development process (= 10 files to add a method) What we later found
  • 59. Chapter 3 Services do not live forever complex development process All proprietary APIs changed behavior What we later found
  • 60. Chapter 3 Services do not live forever complex development process All proprietary APIs changed behavior (= needed massive code changes) What we later found
  • 61. Chapter 3 Services do not live forever complex development process All proprietary APIs changed behavior Code maintainability issues What we later found
  • 62. Chapter 3 Services do not live forever complex development process All proprietary APIs changed behavior Code maintainability issues + builds (still) took time and manpower What we later found
  • 63. Chapter 3 Services do not live forever complex development process All proprietary APIs changed behavior Code maintainability issues + builds (still) took time and manpower + No QA automation What we later found
  • 64. Chapter 3 Services do not live forever complex development process All proprietary APIs changed behavior Code maintainability issues + builds (still) took time and manpower + No QA automation = QA was impossible What we later found
  • 65. Chapter 3 No more OpenGL What we learned from it
  • 66. Chapter 3 No more OpenGL We need to work with Android, not against it What we learned from it
  • 67. Chapter 3 No more OpenGL We need to work with Android, not against it We need a great UX that works on Android What we learned from it
  • 68. Chapter 3 No more OpenGL We need to work with Android, not against it We need a great UX that works on Android Build and QA automation are a must What we learned from it
  • 69. Chapter 3 No more OpenGL We need to work with Android, not against it We need a great UX that works on Android Build and QA automation are a must Feature encapsulation is a must What we learned from it
  • 70. Chapter 3 No more OpenGL We need to work with Android, not against it We need a great UX that works on Android Build and QA automation are a must Feature encapsulation is a must Effective code sharing is a must What we learned from it
  • 71. Chapter 4 This has to work!
  • 72. Chapter 4 Maven + jenkins based build machine What we did
  • 73. Chapter 4 Maven + jenkins based build machine Appium + Espresso + JUnit automation What we did
  • 74. Chapter 4 Maven + jenkins based build machine Appium + Espresso + JUnit automation HAL What we did
  • 75. Chapter 4 Maven + jenkins based build machine Appium + Espresso + JUnit automation HAL (Hardware Abstraction Layer) What we did
  • 76. Chapter 4 Maven + jenkins based build machine Appium + Espresso + JUnit automation HAL (Hardware Abstraction Layer) Func. based encapsulation What we did
  • 77. Chapter 4 Maven + jenkins based build machine Appium + Espresso + JUnit automation HAL (Hardware Abstraction Layer) Func. based encapsulation App dependency management What we did
  • 78. Chapter 4 Far faster implementation What we later found
  • 79. Chapter 4 Far faster implementation Reduced inter-team dependency What we later found
  • 80. Chapter 4 Far faster implementation Reduced inter-team dependency allowed us to: - Increase group size to ~35 What we later found
  • 81. Chapter 4 Far faster implementation Reduced inter-team dependency allowed us to: Increase group size to ~35 - Work in 5 locations (4 countries) What we later found
  • 82. Chapter 4 Far faster implementation Reduced inter-team dependency Designers were happy with the UX What we later found
  • 83. Chapter 4 Far faster implementation Reduced inter-team dependency Designers were happy with the UX Improved performance and stability What we later found
  • 84. Chapter 4 Far faster implementation Reduced inter-team dependency Designers were happy with the UX Improved performance and stability Improved work cycle and transparency What we later found
  • 85. Chapter 4 Far faster implementation Reduced inter-team dependency Designers were happy with the UX Improved performance and stability Improved work cycle and transparency HW&FW agnostic product: What we later found
  • 86. Chapter 4 Far faster implementation Reduced inter-team dependency Designers were happy with the UX Improved performance and stability Improved work cycle and transparency HW&FW agnostic product: > Faster integ. for demos -> easier sale What we later found
  • 87. Chapter 4 Far faster implementation Reduced inter-team dependency Designers were happy with the UX Improved performance and stability Improved work cycle and transparency HW&FW agnostic product: Faster integ. for demos -> easier sale > Increased bargaining powerwith OEMs What we later found
  • 89. Summary Work better not harder What we learned from it
  • 90. Summary Work better not harder Automate as much as possible What we learned from it
  • 91. Summary Work better not harder Automate as much as possible Work with your system, not against it What we learned from it
  • 92. Summary Work better not harder Automate as much as possible Work with your system, not against it (HW, SW, FW and people) What we learned from it
  • 93. Summary Work better not harder Automate as much as possible Work with your system, not against it Never be afraid to start over (if you can) What we learned from it
  • 94. “We should be building great things. Things that Don’t yet exist”
  • 95. Royi Benyossef samsungnexttlv.com Hope you liked it Thanks for listening! Royi Benyossef (royi@samsungnext.com)

Editor's Notes

  1. Hello and welcome back to “Internet of terms”, this episode is called; Becoming aware
  2. Delight and excite our users. in this case we’re interested in doing that by
  3. Delight and excite our users. in this case we’re interested in doing that by
  4. Delight and excite our users. in this case we’re interested in doing that by
  5. So what are are we interested in today? well today we’ll focus on the desire all developers have which is to
  6. Delight and excite our users. in this case we’re interested in doing that by
  7. Delight and excite our users. in this case we’re interested in doing that by
  8. Delight and excite our users. in this case we’re interested in doing that by
  9. Delight and excite our users. in this case we’re interested in doing that by
  10. Delight and excite our users. in this case we’re interested in doing that by
  11. Delight and excite our users. in this case we’re interested in doing that by
  12. Delight and excite our users. in this case we’re interested in doing that by
  13. Delight and excite our users. in this case we’re interested in doing that by
  14. Delight and excite our users. in this case we’re interested in doing that by
  15. Delight and excite our users. in this case we’re interested in doing that by
  16. Delight and excite our users. in this case we’re interested in doing that by
  17. Delight and excite our users. in this case we’re interested in doing that by
  18. Delight and excite our users. in this case we’re interested in doing that by
  19. Delight and excite our users. in this case we’re interested in doing that by
  20. Delight and excite our users. in this case we’re interested in doing that by
  21. So what are are we interested in today? well today we’ll focus on the desire all developers have which is to
  22. Delight and excite our users. in this case we’re interested in doing that by
  23. Delight and excite our users. in this case we’re interested in doing that by
  24. Delight and excite our users. in this case we’re interested in doing that by
  25. Delight and excite our users. in this case we’re interested in doing that by
  26. Delight and excite our users. in this case we’re interested in doing that by
  27. Delight and excite our users. in this case we’re interested in doing that by
  28. Delight and excite our users. in this case we’re interested in doing that by
  29. Delight and excite our users. in this case we’re interested in doing that by
  30. Delight and excite our users. in this case we’re interested in doing that by
  31. Delight and excite our users. in this case we’re interested in doing that by
  32. Delight and excite our users. in this case we’re interested in doing that by
  33. Delight and excite our users. in this case we’re interested in doing that by
  34. Delight and excite our users. in this case we’re interested in doing that by
  35. Delight and excite our users. in this case we’re interested in doing that by
  36. Delight and excite our users. in this case we’re interested in doing that by
  37. Delight and excite our users. in this case we’re interested in doing that by
  38. Delight and excite our users. in this case we’re interested in doing that by
  39. So what are are we interested in today? well today we’ll focus on the desire all developers have which is to
  40. Delight and excite our users. in this case we’re interested in doing that by
  41. Delight and excite our users. in this case we’re interested in doing that by
  42. Delight and excite our users. in this case we’re interested in doing that by
  43. Delight and excite our users. in this case we’re interested in doing that by
  44. Delight and excite our users. in this case we’re interested in doing that by
  45. So what are are we interested in today? well today we’ll focus on the desire all developers have which is to
  46. Delight and excite our users. in this case we’re interested in doing that by
  47. Delight and excite our users. in this case we’re interested in doing that by
  48. Delight and excite our users. in this case we’re interested in doing that by
  49. Delight and excite our users. in this case we’re interested in doing that by
  50. Delight and excite our users. in this case we’re interested in doing that by
  51. Delight and excite our users. in this case we’re interested in doing that by
  52. Delight and excite our users. in this case we’re interested in doing that by
  53. Delight and excite our users. in this case we’re interested in doing that by
  54. Delight and excite our users. in this case we’re interested in doing that by
  55. Delight and excite our users. in this case we’re interested in doing that by
  56. Delight and excite our users. in this case we’re interested in doing that by
  57. Delight and excite our users. in this case we’re interested in doing that by
  58. Delight and excite our users. in this case we’re interested in doing that by
  59. Delight and excite our users. in this case we’re interested in doing that by
  60. Delight and excite our users. in this case we’re interested in doing that by
  61. Delight and excite our users. in this case we’re interested in doing that by
  62. Delight and excite our users. in this case we’re interested in doing that by
  63. Delight and excite our users. in this case we’re interested in doing that by
  64. Delight and excite our users. in this case we’re interested in doing that by
  65. Delight and excite our users. in this case we’re interested in doing that by
  66. Delight and excite our users. in this case we’re interested in doing that by
  67. Delight and excite our users. in this case we’re interested in doing that by
  68. Delight and excite our users. in this case we’re interested in doing that by
  69. Delight and excite our users. in this case we’re interested in doing that by
  70. Delight and excite our users. in this case we’re interested in doing that by
  71. So what are are we interested in today? well today we’ll focus on the desire all developers have which is to
  72. Delight and excite our users. in this case we’re interested in doing that by
  73. Delight and excite our users. in this case we’re interested in doing that by
  74. Delight and excite our users. in this case we’re interested in doing that by
  75. Delight and excite our users. in this case we’re interested in doing that by
  76. Delight and excite our users. in this case we’re interested in doing that by
  77. Delight and excite our users. in this case we’re interested in doing that by
  78. Delight and excite our users. in this case we’re interested in doing that by
  79. Delight and excite our users. in this case we’re interested in doing that by
  80. Delight and excite our users. in this case we’re interested in doing that by
  81. Delight and excite our users. in this case we’re interested in doing that by
  82. Delight and excite our users. in this case we’re interested in doing that by
  83. Delight and excite our users. in this case we’re interested in doing that by
  84. Delight and excite our users. in this case we’re interested in doing that by
  85. Delight and excite our users. in this case we’re interested in doing that by
  86. Delight and excite our users. in this case we’re interested in doing that by
  87. Delight and excite our users. in this case we’re interested in doing that by
  88. So what are are we interested in today? well today we’ll focus on the desire all developers have which is to
  89. Delight and excite our users. in this case we’re interested in doing that by
  90. Delight and excite our users. in this case we’re interested in doing that by
  91. Delight and excite our users. in this case we’re interested in doing that by
  92. Delight and excite our users. in this case we’re interested in doing that by
  93. Delight and excite our users. in this case we’re interested in doing that by
  94. Delight and excite our users. in this case we’re interested in doing that by
  95. If that interests you please visit samsungnexttlv.com