SlideShare a Scribd company logo
1 of 63
Download to read offline
Software Solution
francesco mapelli (@mapelli)
University of Insubria
April 14, 2016
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Introduction
Architectures
About Cloud
Development
Mobile Platforms
Food for thoughts
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Introduction
Overview
Management of development
Lean approach
Agile and Scrum
Minimal technical information
Sorry!
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Introduction
Lessons
April, 15th - Software Solutions
April, 22nd - Development process
April, 29th - Agile software development
May, 6th - User stories and estimating
May, 13th - Lab: Scrum simulation
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Introduction
Lessons - how
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Introduction
Exam
Frequentcy desired
Small test each lesson - counts for the nal result
Scrum simulation ... with Lego bricks!
Available for specic needs
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Introduction
Who?
Francesco Mapelli
Android developer at Funambol
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Single App
Stand alone app
Examples: Calculator, word processor, photo editing...
Everything happens locally, other devices are not involved
Access only the resources available on the local machine
Limited computing power
Limited battery
Limited access to information
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
Multiple applications
Interaction between dierent programs
Each one has a role
Together they provide the solution
Communication channel needed, usually internet or a local
network
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
Client / Server solutions
Two applications designed to work together
Client: asks to be served by the server
Server: performs the task and return a result
Client has access to resources provided by the server
Client and server have to understand each other
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
Servers APIs / protocol
Set of commands exposed by the server
Clients can use this commands to interact with the server
If APIs or protocol are public, everyone can write his own
client to interact with the server
(authentication and security are available)
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
One server can be used by multiple clients at the same time
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
Something like...
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
various kind of servers
Game server
Web server
Mail server
Print server
Database server
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
What is a Database
Organized data
Think about it as a set of tables with rules and relations
Optimized to be searched, modied, processed
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
Example
Character
NAME GENDER HOUSENAME
John Snow m Stark
Cersei Lannister f Lannister
Arya Stark f Stark
Sansa Stark f Stark
House
NAME SYMBOL
Stark Wolf
Lannister Lion
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
Dear Database..
Tell me all the houses that have both male and female
characters
Tell me all the female characters
Tell me all the members of house Stark
Tell me the house symbol of John Snow
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
A device can be a server and a client for dierent services - 1
Arya writes a whatsapp message to the group Stark Family
Whatsapp application asks to the messaging server to send the
message
Client: application on Arya's phone
Server: message server
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Client / Server
A device can be a server and a client for dierent services -2
Whastsapp messaging server asks the database server for the
list of members in the group Stark Family
Client: message server
Server: database server
Whatsapp message server sends the message to all the
members
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Peer 2 Peer
Peer-to-Peer (P2P) Architecture
No central server
Nodes are both clients and server for
the same service
Distribuited storage, computing power,
search etc.
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Peer 2 Peer
Used by...
BitTorrent protocol
Popcorn time
Spotify (in early days) - Hybrid
Dropbox - Hybrid
Bitcoin
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Peer 2 Peer
P2P Impacts
Who's to blame when copyrighted / illegal material is shared
on a p2p network?
Net Neutrality
all bits are created equals
open internet: content shold be trated equally
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Recap
Recap - Architectures
Single app
Client / Server
Client asks for a service, server delivers the service
Multiple clients for each server
Various kinds of servers
Database server
Peer 2 Peer
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Server Issues
Providing a client / server solution
Client development
Server development
Server...
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Server Issues
Servers are expensive
Upfront costs
How many clients should you be able to support in the next
year?
Reliable, high-speed connection
They should be kept in a safe and secure place
Climatization
Security
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Server Issues
Servers require maintenance
By someone you have to pay
Parts that need to be replaced
Software that needs to be upgraded
As business grows, upgrade or addition of new server is needed
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Server Issues
Servers are a point of failure
Any issue on the server breaks the entire service
You need mechanisms to avoid data loss
Backup / Replication / Mirror
Note: sometimes it's not even your data, but your user's data!
Multiple distant phisical location to be safe
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Cloud Solutions
Cloud computing
Servers are provided by third party
Amazon
Google
Microsoft
...
Remote computing power and services delivered on a pay per
use basis
no need to think about maintenance, security, uptime etc.
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Cloud Solutions
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Cloud Solutions
Virtual Server
You do not get a single machine but a section of a huge center
Can be copied easily
Can be recongured easily
change memory
change cpu
change storage size
Can be congured to have elastic behavior
Can handle spikes
Can prevent DOS attacks
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Cloud Solutions
Elastic Behavior - Server changes size to satisfy the requests
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Cloud Solutions
Other Cloud Services
Database service
Load balancing services
Serverless code execution
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Recap
Recap - About cloud
Providing a server in house is dicult
Cloud computing can help
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developing Software
Computers: they speak machine language
it's awful! :(
they want to be instructed on what to do with this language
depends on how their processor is designed
machine language varies between dierent machines
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developing Software
Something like...
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developing Software
We don't like machine language
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developing Software
There are other programming languages, closer to human
language, that are easier to write and understand.
Formal languages to instruct a machine
Dierent purposes, dierent level of abstractions, dierent
philosophies
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developing Software
They are a bit better...
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developing Software
How do we go from here to the machine language?
compiling
human: write the source code
program: translate source code in numerical machine language
(compilation phase)
computer: execute the machine code
interpreting
Insted of being compiled they are translated into something
else
later, an Interpreter looks into something else and execute it
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Licenses
Source Code
Recipe for an application
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Licenses
Closed Source
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Licenses
Open Source
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developers and platforms
What Developer do I need to develop...
Dynamic Website - Javascript
scripting language
client side
web oriented
Videogame with lots of graphic - C++
Closer to machine, allows more optimization
Windows Phone app, Windows deskotp app - C#
iOS app - Objective C / Swift
Android app - Java
Server side app - Java
...
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developers and platforms
So...
Android app - Java
Server side app - Java
...
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developers and platforms
Same language, dierent problems
Client vs Server
limited resources vs large resources
UI vs no UI
Unstable connection vs stable connection
Variable context vs xed context
human interaction vs no human interaction
...
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developers and platforms
Ok then...
Android app - mobile problems
iOS app - mobile problems
...
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developers and platforms
Same problems, dierent platforms
Mobile teams are usually able to nd a shared design
it works quite well
(there are exception depending on the platform)
Dierent Platforms have dierent APIs
Can I delete user data?
Can I access pictures?
Where are contacts stored?
How can I do something in the backgroud?
Dierent Platforms have dierent guidelines
When in Rome, do what romans do
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developers and platforms
Platform guidelines - 1
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Developers and platforms
Platform guidelines - 2
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Recap
Recap
Programming Languages
Source code
Closed Source (Coca-cola)
Open Source (Apple pie)
Client developers / Server developers
Dierent platforms have dierent APIs and guidelines
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Platforms
Mobile platforms overview
iOS - approx 15%
Android - approx 80%
Windows Phone - approx 3%
(Blackberry and others)
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Platforms
But it depends..
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Platforms
Google
sells ads
wider market as possible
does not build hw
Cloud is strategy
Android is tactic
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Platforms
Android
Open source OS - google is a key contributor
Runs on device built by dierent manufacturers
wide range of devices
more fragmentation
Slow upgrades rollout
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Platforms
Apple
sells products to end users
premium segment
Device is strategy
Cloud is tactic
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Platforms
iOS
Proprietary OS built by Apple
Runs on devices built by apple
High end devices
control on hw, sw
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Platforms
Windows Phone / Windows 10 Mobile
Proprietary os / a version of windows
Runs on device from (not a lot of) dierent manufacturers
Tries to be compatible with other platforms
Not very successfull at the moment
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Platforms
Microsoft
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Mobile rst - Which platform?
Dierent mobile users
Apple
Higher income
Power users
Propension to spend money
Smaller user base
Android
Less willing to spend money
Low income countries
Less credit cards linked
Minor averege cost of device
Dierent developers approach (circular behavior!)
dierent user proles
Larger user base
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
App Peak
App Peak?
Are users willing to have your app on
their home screen?
Delivery issue
Discoverability issue
Solutions?
App Streaming (G)
On demand resouces (A)
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
OS Inuence
OS inuence
Mobile OSs able to shape the ecosystem where apps are run
Google Now
Deep Linking
Browser war - is good enough still true?
Google Maps vs Apple Maps
Unbundling content
3d touch
Google now on tap
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Bots
Smart messaging / bots
There's a bot for that
Not AI... but related
Google Deepmind beating GO world champion
Chat interface for automating simple tasks
Order food
Book restaurant
schedule meetings
No need to install them
francesco mapelli (@mapelli) University of Insubria
Software Solution
Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts
Bots
Bots economic
Where's the money?
subscription
advertising
pushing content
increase sales
replace humans for simple tasks
Who joined?
Microsoft
Facebook
Slack
Telegram
...
francesco mapelli (@mapelli) University of Insubria
Software Solution

More Related Content

Viewers also liked

Lean talks 05.2014 quan ly dong chay gia tri
Lean talks 05.2014   quan ly dong chay gia triLean talks 05.2014   quan ly dong chay gia tri
Lean talks 05.2014 quan ly dong chay gia tri
minhlean
 
Introduction to Lean and PDSA Thinking
Introduction to Lean and PDSA ThinkingIntroduction to Lean and PDSA Thinking
Introduction to Lean and PDSA Thinking
Rachel Janzen
 
Lean Thinking in Government Services
Lean Thinking in Government ServicesLean Thinking in Government Services
Lean Thinking in Government Services
benthatcher
 
lean talk 2 - cam ket trien khai lean - tu chien luoc den hanh vi
lean talk 2 - cam ket trien khai lean - tu chien luoc den hanh vilean talk 2 - cam ket trien khai lean - tu chien luoc den hanh vi
lean talk 2 - cam ket trien khai lean - tu chien luoc den hanh vi
minhlean
 

Viewers also liked (17)

How Values And Habits Become Process Lean Thinking
How Values And Habits Become Process Lean ThinkingHow Values And Habits Become Process Lean Thinking
How Values And Habits Become Process Lean Thinking
 
1 1leanthinking
1 1leanthinking1 1leanthinking
1 1leanthinking
 
Lean 6 Sigma Số 61
Lean 6 Sigma Số 61Lean 6 Sigma Số 61
Lean 6 Sigma Số 61
 
Lean 6 Sigma Số 50
Lean 6 Sigma Số 50Lean 6 Sigma Số 50
Lean 6 Sigma Số 50
 
Lean talks 05.2014 quan ly dong chay gia tri
Lean talks 05.2014   quan ly dong chay gia triLean talks 05.2014   quan ly dong chay gia tri
Lean talks 05.2014 quan ly dong chay gia tri
 
Retail Managment
Retail ManagmentRetail Managment
Retail Managment
 
Introduction to lean amy hodgkinson & trevor taylor
Introduction to lean   amy hodgkinson & trevor taylorIntroduction to lean   amy hodgkinson & trevor taylor
Introduction to lean amy hodgkinson & trevor taylor
 
Fcs Software Solutions Corporate Presentation V1 0 (3)
Fcs Software Solutions Corporate Presentation V1 0 (3)Fcs Software Solutions Corporate Presentation V1 0 (3)
Fcs Software Solutions Corporate Presentation V1 0 (3)
 
Introduction to Lean and PDSA Thinking
Introduction to Lean and PDSA ThinkingIntroduction to Lean and PDSA Thinking
Introduction to Lean and PDSA Thinking
 
A brief introduction to agile duong trong tan 2014-06
A brief introduction to agile  duong trong tan 2014-06A brief introduction to agile  duong trong tan 2014-06
A brief introduction to agile duong trong tan 2014-06
 
Developing A Lean Culture by Gregg Miner
Developing A Lean Culture by Gregg MinerDeveloping A Lean Culture by Gregg Miner
Developing A Lean Culture by Gregg Miner
 
Lean Thinking in Government Services
Lean Thinking in Government ServicesLean Thinking in Government Services
Lean Thinking in Government Services
 
lean talk 2 - cam ket trien khai lean - tu chien luoc den hanh vi
lean talk 2 - cam ket trien khai lean - tu chien luoc den hanh vilean talk 2 - cam ket trien khai lean - tu chien luoc den hanh vi
lean talk 2 - cam ket trien khai lean - tu chien luoc den hanh vi
 
tongquan lean+7waste
tongquan lean+7wastetongquan lean+7waste
tongquan lean+7waste
 
Lean thinking and_lean_simulation_game_intro
Lean thinking and_lean_simulation_game_introLean thinking and_lean_simulation_game_intro
Lean thinking and_lean_simulation_game_intro
 
Applying lean thinking in the food supply chain presentation
Applying lean thinking in the food supply chain presentationApplying lean thinking in the food supply chain presentation
Applying lean thinking in the food supply chain presentation
 
Lean Culture Introduction
Lean Culture IntroductionLean Culture Introduction
Lean Culture Introduction
 

Similar to Software solution - Lean development and Agile methodologies lesson 1

IESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real WorldIESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real World
Srinath Perera
 
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
Darren Carlson
 
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxSimulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
edgar6wallace88877
 
PowerPoint
PowerPointPowerPoint
PowerPoint
Videoguy
 

Similar to Software solution - Lean development and Agile methodologies lesson 1 (20)

Future platform for internet of things
Future platform for internet of thingsFuture platform for internet of things
Future platform for internet of things
 
IESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real WorldIESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real World
 
Social Learning and Knowledge Sharing Technologies Lecture Slides about Socia...
Social Learning and Knowledge Sharing Technologies Lecture Slides about Socia...Social Learning and Knowledge Sharing Technologies Lecture Slides about Socia...
Social Learning and Knowledge Sharing Technologies Lecture Slides about Socia...
 
Srinivasan Rajappa
Srinivasan RajappaSrinivasan Rajappa
Srinivasan Rajappa
 
Building A Linux Cluster Using Raspberry PI #1!
Building A Linux Cluster Using Raspberry PI #1!Building A Linux Cluster Using Raspberry PI #1!
Building A Linux Cluster Using Raspberry PI #1!
 
The macro of microservices
The macro of microservicesThe macro of microservices
The macro of microservices
 
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
 
Resume_Shankar_Manickavasagam
Resume_Shankar_ManickavasagamResume_Shankar_Manickavasagam
Resume_Shankar_Manickavasagam
 
Supporting Professional Communities in the Next Web
Supporting Professional Communities in the Next Web Supporting Professional Communities in the Next Web
Supporting Professional Communities in the Next Web
 
R.E.M.O.T.E. SACNAS Poster
R.E.M.O.T.E. SACNAS PosterR.E.M.O.T.E. SACNAS Poster
R.E.M.O.T.E. SACNAS Poster
 
Deep Dive into FME Desktop 2014
Deep Dive into FME Desktop 2014Deep Dive into FME Desktop 2014
Deep Dive into FME Desktop 2014
 
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxSimulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservices
 
A Software Problem (and a maybe-solution)
A Software Problem (and a maybe-solution)A Software Problem (and a maybe-solution)
A Software Problem (and a maybe-solution)
 
Jarkko Moilanen, APInf, “Get Control of Your IoT Cruisers” - Mindtrek 2017
Jarkko Moilanen, APInf, “Get Control of Your IoT Cruisers” - Mindtrek 2017Jarkko Moilanen, APInf, “Get Control of Your IoT Cruisers” - Mindtrek 2017
Jarkko Moilanen, APInf, “Get Control of Your IoT Cruisers” - Mindtrek 2017
 
Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
 
Fast App development with SwellRT
Fast App development  with SwellRTFast App development  with SwellRT
Fast App development with SwellRT
 
Mahsa ahmadi (1)
Mahsa ahmadi (1)Mahsa ahmadi (1)
Mahsa ahmadi (1)
 
PowerPoint
PowerPointPowerPoint
PowerPoint
 
Drupalcamp LA Aug 2009
Drupalcamp LA Aug 2009Drupalcamp LA Aug 2009
Drupalcamp LA Aug 2009
 

Recently uploaded

Recently uploaded (12)

Hyderabad Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Hyderabad Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceHyderabad Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Hyderabad Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
EV Electric Vehicle Startup Pitch Deck- StartupSprouts.in
EV Electric Vehicle Startup Pitch Deck- StartupSprouts.inEV Electric Vehicle Startup Pitch Deck- StartupSprouts.in
EV Electric Vehicle Startup Pitch Deck- StartupSprouts.in
 
Famedesired Project portfolio1 . Fullsail
Famedesired Project portfolio1 . FullsailFamedesired Project portfolio1 . Fullsail
Famedesired Project portfolio1 . Fullsail
 
Sohna Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
Sohna Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort ServiceSohna Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
Sohna Call Girls Service ☎ ️93326-06886 ❤️‍🔥 Enjoy 24/7 Escort Service
 
Shareholders Agreement Template for Compulsorily Convertible Debt Funding- St...
Shareholders Agreement Template for Compulsorily Convertible Debt Funding- St...Shareholders Agreement Template for Compulsorily Convertible Debt Funding- St...
Shareholders Agreement Template for Compulsorily Convertible Debt Funding- St...
 
Call girls in Andheri with phone number 9892124323
Call girls in Andheri with phone number 9892124323Call girls in Andheri with phone number 9892124323
Call girls in Andheri with phone number 9892124323
 
Dàni Velvet Personal Brand Exploration (1).pptx
Dàni Velvet Personal Brand Exploration (1).pptxDàni Velvet Personal Brand Exploration (1).pptx
Dàni Velvet Personal Brand Exploration (1).pptx
 
Bangalore Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Bangalore Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceBangalore Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Bangalore Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
Lucknow Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Lucknow Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceLucknow Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Lucknow Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
Dehradun Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Dehradun Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceDehradun Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Dehradun Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
Tirupati Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Tirupati Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceTirupati Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Tirupati Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
Sangareddy Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Sangareddy Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceSangareddy Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Sangareddy Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 

Software solution - Lean development and Agile methodologies lesson 1

  • 1. Software Solution francesco mapelli (@mapelli) University of Insubria April 14, 2016
  • 2. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts francesco mapelli (@mapelli) University of Insubria Software Solution
  • 3. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Introduction Overview Management of development Lean approach Agile and Scrum Minimal technical information Sorry! francesco mapelli (@mapelli) University of Insubria Software Solution
  • 4. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Introduction Lessons April, 15th - Software Solutions April, 22nd - Development process April, 29th - Agile software development May, 6th - User stories and estimating May, 13th - Lab: Scrum simulation francesco mapelli (@mapelli) University of Insubria Software Solution
  • 5. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Introduction Lessons - how francesco mapelli (@mapelli) University of Insubria Software Solution
  • 6. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Introduction Exam Frequentcy desired Small test each lesson - counts for the nal result Scrum simulation ... with Lego bricks! Available for specic needs francesco mapelli (@mapelli) University of Insubria Software Solution
  • 7. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Introduction Who? Francesco Mapelli Android developer at Funambol francesco mapelli (@mapelli) University of Insubria Software Solution
  • 8. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Single App Stand alone app Examples: Calculator, word processor, photo editing... Everything happens locally, other devices are not involved Access only the resources available on the local machine Limited computing power Limited battery Limited access to information francesco mapelli (@mapelli) University of Insubria Software Solution
  • 9. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server Multiple applications Interaction between dierent programs Each one has a role Together they provide the solution Communication channel needed, usually internet or a local network francesco mapelli (@mapelli) University of Insubria Software Solution
  • 10. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server Client / Server solutions Two applications designed to work together Client: asks to be served by the server Server: performs the task and return a result Client has access to resources provided by the server Client and server have to understand each other francesco mapelli (@mapelli) University of Insubria Software Solution
  • 11. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server Servers APIs / protocol Set of commands exposed by the server Clients can use this commands to interact with the server If APIs or protocol are public, everyone can write his own client to interact with the server (authentication and security are available) francesco mapelli (@mapelli) University of Insubria Software Solution
  • 12. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server One server can be used by multiple clients at the same time francesco mapelli (@mapelli) University of Insubria Software Solution
  • 13. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server Something like... francesco mapelli (@mapelli) University of Insubria Software Solution
  • 14. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server various kind of servers Game server Web server Mail server Print server Database server francesco mapelli (@mapelli) University of Insubria Software Solution
  • 15. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server What is a Database Organized data Think about it as a set of tables with rules and relations Optimized to be searched, modied, processed francesco mapelli (@mapelli) University of Insubria Software Solution
  • 16. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server Example Character NAME GENDER HOUSENAME John Snow m Stark Cersei Lannister f Lannister Arya Stark f Stark Sansa Stark f Stark House NAME SYMBOL Stark Wolf Lannister Lion francesco mapelli (@mapelli) University of Insubria Software Solution
  • 17. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server Dear Database.. Tell me all the houses that have both male and female characters Tell me all the female characters Tell me all the members of house Stark Tell me the house symbol of John Snow francesco mapelli (@mapelli) University of Insubria Software Solution
  • 18. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server A device can be a server and a client for dierent services - 1 Arya writes a whatsapp message to the group Stark Family Whatsapp application asks to the messaging server to send the message Client: application on Arya's phone Server: message server francesco mapelli (@mapelli) University of Insubria Software Solution
  • 19. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Client / Server A device can be a server and a client for dierent services -2 Whastsapp messaging server asks the database server for the list of members in the group Stark Family Client: message server Server: database server Whatsapp message server sends the message to all the members francesco mapelli (@mapelli) University of Insubria Software Solution
  • 20. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Peer 2 Peer Peer-to-Peer (P2P) Architecture No central server Nodes are both clients and server for the same service Distribuited storage, computing power, search etc. francesco mapelli (@mapelli) University of Insubria Software Solution
  • 21. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Peer 2 Peer Used by... BitTorrent protocol Popcorn time Spotify (in early days) - Hybrid Dropbox - Hybrid Bitcoin francesco mapelli (@mapelli) University of Insubria Software Solution
  • 22. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Peer 2 Peer P2P Impacts Who's to blame when copyrighted / illegal material is shared on a p2p network? Net Neutrality all bits are created equals open internet: content shold be trated equally francesco mapelli (@mapelli) University of Insubria Software Solution
  • 23. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Recap Recap - Architectures Single app Client / Server Client asks for a service, server delivers the service Multiple clients for each server Various kinds of servers Database server Peer 2 Peer francesco mapelli (@mapelli) University of Insubria Software Solution
  • 24. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Server Issues Providing a client / server solution Client development Server development Server... francesco mapelli (@mapelli) University of Insubria Software Solution
  • 25. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Server Issues Servers are expensive Upfront costs How many clients should you be able to support in the next year? Reliable, high-speed connection They should be kept in a safe and secure place Climatization Security francesco mapelli (@mapelli) University of Insubria Software Solution
  • 26. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Server Issues Servers require maintenance By someone you have to pay Parts that need to be replaced Software that needs to be upgraded As business grows, upgrade or addition of new server is needed francesco mapelli (@mapelli) University of Insubria Software Solution
  • 27. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Server Issues Servers are a point of failure Any issue on the server breaks the entire service You need mechanisms to avoid data loss Backup / Replication / Mirror Note: sometimes it's not even your data, but your user's data! Multiple distant phisical location to be safe francesco mapelli (@mapelli) University of Insubria Software Solution
  • 28. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Cloud Solutions Cloud computing Servers are provided by third party Amazon Google Microsoft ... Remote computing power and services delivered on a pay per use basis no need to think about maintenance, security, uptime etc. francesco mapelli (@mapelli) University of Insubria Software Solution
  • 29. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Cloud Solutions francesco mapelli (@mapelli) University of Insubria Software Solution
  • 30. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Cloud Solutions Virtual Server You do not get a single machine but a section of a huge center Can be copied easily Can be recongured easily change memory change cpu change storage size Can be congured to have elastic behavior Can handle spikes Can prevent DOS attacks francesco mapelli (@mapelli) University of Insubria Software Solution
  • 31. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Cloud Solutions Elastic Behavior - Server changes size to satisfy the requests francesco mapelli (@mapelli) University of Insubria Software Solution
  • 32. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Cloud Solutions Other Cloud Services Database service Load balancing services Serverless code execution francesco mapelli (@mapelli) University of Insubria Software Solution
  • 33. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Recap Recap - About cloud Providing a server in house is dicult Cloud computing can help francesco mapelli (@mapelli) University of Insubria Software Solution
  • 34. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developing Software Computers: they speak machine language it's awful! :( they want to be instructed on what to do with this language depends on how their processor is designed machine language varies between dierent machines francesco mapelli (@mapelli) University of Insubria Software Solution
  • 35. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developing Software Something like... francesco mapelli (@mapelli) University of Insubria Software Solution
  • 36. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developing Software We don't like machine language francesco mapelli (@mapelli) University of Insubria Software Solution
  • 37. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developing Software There are other programming languages, closer to human language, that are easier to write and understand. Formal languages to instruct a machine Dierent purposes, dierent level of abstractions, dierent philosophies francesco mapelli (@mapelli) University of Insubria Software Solution
  • 38. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developing Software They are a bit better... francesco mapelli (@mapelli) University of Insubria Software Solution
  • 39. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developing Software How do we go from here to the machine language? compiling human: write the source code program: translate source code in numerical machine language (compilation phase) computer: execute the machine code interpreting Insted of being compiled they are translated into something else later, an Interpreter looks into something else and execute it francesco mapelli (@mapelli) University of Insubria Software Solution
  • 40. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Licenses Source Code Recipe for an application francesco mapelli (@mapelli) University of Insubria Software Solution
  • 41. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Licenses Closed Source francesco mapelli (@mapelli) University of Insubria Software Solution
  • 42. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Licenses Open Source francesco mapelli (@mapelli) University of Insubria Software Solution
  • 43. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developers and platforms What Developer do I need to develop... Dynamic Website - Javascript scripting language client side web oriented Videogame with lots of graphic - C++ Closer to machine, allows more optimization Windows Phone app, Windows deskotp app - C# iOS app - Objective C / Swift Android app - Java Server side app - Java ... francesco mapelli (@mapelli) University of Insubria Software Solution
  • 44. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developers and platforms So... Android app - Java Server side app - Java ... francesco mapelli (@mapelli) University of Insubria Software Solution
  • 45. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developers and platforms Same language, dierent problems Client vs Server limited resources vs large resources UI vs no UI Unstable connection vs stable connection Variable context vs xed context human interaction vs no human interaction ... francesco mapelli (@mapelli) University of Insubria Software Solution
  • 46. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developers and platforms Ok then... Android app - mobile problems iOS app - mobile problems ... francesco mapelli (@mapelli) University of Insubria Software Solution
  • 47. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developers and platforms Same problems, dierent platforms Mobile teams are usually able to nd a shared design it works quite well (there are exception depending on the platform) Dierent Platforms have dierent APIs Can I delete user data? Can I access pictures? Where are contacts stored? How can I do something in the backgroud? Dierent Platforms have dierent guidelines When in Rome, do what romans do francesco mapelli (@mapelli) University of Insubria Software Solution
  • 48. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developers and platforms Platform guidelines - 1 francesco mapelli (@mapelli) University of Insubria Software Solution
  • 49. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Developers and platforms Platform guidelines - 2 francesco mapelli (@mapelli) University of Insubria Software Solution
  • 50. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Recap Recap Programming Languages Source code Closed Source (Coca-cola) Open Source (Apple pie) Client developers / Server developers Dierent platforms have dierent APIs and guidelines francesco mapelli (@mapelli) University of Insubria Software Solution
  • 51. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Platforms Mobile platforms overview iOS - approx 15% Android - approx 80% Windows Phone - approx 3% (Blackberry and others) francesco mapelli (@mapelli) University of Insubria Software Solution
  • 52. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Platforms But it depends.. francesco mapelli (@mapelli) University of Insubria Software Solution
  • 53. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Platforms Google sells ads wider market as possible does not build hw Cloud is strategy Android is tactic francesco mapelli (@mapelli) University of Insubria Software Solution
  • 54. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Platforms Android Open source OS - google is a key contributor Runs on device built by dierent manufacturers wide range of devices more fragmentation Slow upgrades rollout francesco mapelli (@mapelli) University of Insubria Software Solution
  • 55. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Platforms Apple sells products to end users premium segment Device is strategy Cloud is tactic francesco mapelli (@mapelli) University of Insubria Software Solution
  • 56. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Platforms iOS Proprietary OS built by Apple Runs on devices built by apple High end devices control on hw, sw francesco mapelli (@mapelli) University of Insubria Software Solution
  • 57. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Platforms Windows Phone / Windows 10 Mobile Proprietary os / a version of windows Runs on device from (not a lot of) dierent manufacturers Tries to be compatible with other platforms Not very successfull at the moment francesco mapelli (@mapelli) University of Insubria Software Solution
  • 58. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Platforms Microsoft francesco mapelli (@mapelli) University of Insubria Software Solution
  • 59. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Mobile rst - Which platform? Dierent mobile users Apple Higher income Power users Propension to spend money Smaller user base Android Less willing to spend money Low income countries Less credit cards linked Minor averege cost of device Dierent developers approach (circular behavior!) dierent user proles Larger user base francesco mapelli (@mapelli) University of Insubria Software Solution
  • 60. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts App Peak App Peak? Are users willing to have your app on their home screen? Delivery issue Discoverability issue Solutions? App Streaming (G) On demand resouces (A) francesco mapelli (@mapelli) University of Insubria Software Solution
  • 61. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts OS Inuence OS inuence Mobile OSs able to shape the ecosystem where apps are run Google Now Deep Linking Browser war - is good enough still true? Google Maps vs Apple Maps Unbundling content 3d touch Google now on tap francesco mapelli (@mapelli) University of Insubria Software Solution
  • 62. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Bots Smart messaging / bots There's a bot for that Not AI... but related Google Deepmind beating GO world champion Chat interface for automating simple tasks Order food Book restaurant schedule meetings No need to install them francesco mapelli (@mapelli) University of Insubria Software Solution
  • 63. Introduction Architectures About Cloud Development Mobile Platforms Food for thoughts Bots Bots economic Where's the money? subscription advertising pushing content increase sales replace humans for simple tasks Who joined? Microsoft Facebook Slack Telegram ... francesco mapelli (@mapelli) University of Insubria Software Solution