28
SOFTWARE DEVELOPMENT Notes for Startup Founders March 25 th , 2015

SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

SOFTWARE DEVELOPMENTNotes for Startup Founders

March 25th, 2015

Page 2: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

Brian PhamProfessor, School of Applied Computing , Sheridan CollegeAdjunct Professor, School of Computer Science, University of [email protected]

YuFan DongComputer Science Student, University of WaterlooQA Analyst, Oracle [email protected]

Rahil ShahComputer Programmer Student, Sheridan CollegeAndroid Developer, [email protected]

Yash TilvaComputer Programmer Student, Sheridan CollegeWeb Developer, [email protected]

Page 3: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

AGENDA

Managing a software endeavor

Useful tools

Choosing the right dev platform

Page 4: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

MANAGING A SOFTWARE ENDEAVOR

Page 5: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

SOFTWARE: BRIDGE OR GARDEN?

Page 6: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

PROBABLY GARDEN!

• Never complete• Launch is just the first release

• Change is inevitable:• New features• Competitors• Business Strategy• etc.

• Incremental design vs Big design upfront

• Continuous releaseThe Agile Samurai

Page 7: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

AGILE DEVELOPMENT

The Agile Samuraihttp://it-ebooks.info/book/75/

Page 8: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

AGILE DEVELOPMENT PROCESS

The Agile Samurai

Page 9: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

YOUR DEVELOPMENT TEAM

How to recruit and hire great software engineers

http://it-ebooks.info/book/2356/

▪ Gardeners vs Builders

▪ Generalists vs Specialists

▪ Masters vs Journeymen vs Apprentices

▪ Front enders vs back enders

Page 10: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

USEFUL TOOLS

Page 11: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

WEBSITE & BLOG

▪ Design

▪ Template Monsters

▪ {Wrap}Bootstrap

▪ CMS

▪ Magento

▪ SEO

▪ Google Analytics

http://www.templatemonster.com/demo/53155.html

http://riotdesign.eu/en/

Page 12: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

WIREFRAMING / MOCKUP

Page 13: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

VERSION CONTROL

▪ Collaboration without conflicts

▪ Branching and Merging

▪ History/Journal

Page 14: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

TESTING & TEST AUTOMATION

▪ Required for continuous delivery

▪ Dedicated Quality Assurance

▪ Issue Tracking

▪ Regression Testing

Page 15: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

CHOOSING A MOBILE DEV PLATFORM

Page 16: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

CLOUD-INTEGRATED MOBILE APPS

▪ Few mobile apps are “stand-alone”

▪ Sharing data between users

▪ Making use of complex

computations/services

▪ Client-Server model is often used

▪ Aka “front-end” and “back-end”

Page 17: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

CLOUD-INTEGRATED MOBILE APPS▪ Server (aka back end)

▪ Runs on the cloud, processes data, might call other web/cloud services

▪ Completely under your control

▪ Client (aka front end)

▪ Runs on customer’s device, displays UI, sends data to server

▪ Many types of device Cross-platform is often desirable

▪ The dreaded “Web vs Native” debate

Page 18: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

WEB VS NATIVE

▪ Two opposite ends of the spectrum

▪ Native

▪ Rich user experience

▪ Snappy

▪ Can utilize latest hardware capabilities

▪ Can take advantage of new OS features

▪ Expensive for cross-platform apps

Page 19: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

WEB VS NATIVE

Web/HTML5▪ Write once, run anywhere (WORA)

▪ Not as sleek

▪ Good for

▪ “Information-based” applications▪ Form-based applications

▪ Online content viewing

▪ Wikipedia, Facebook, Twitter, Yelp, etc.

▪ Apps that don’t want to go through the app stores

▪ Apps that don’t need advanced access to hardware

Page 20: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

COMPROMISE #1:▪ Main Ideas:

▪ Mask the differences between platforms using a specialized browser: The PhoneGap browser

▪ More advanced hardware access can be enabled via the PhoneGap browser: The PhoneGap API

Your web app is bundled with the PhoneGap browser, and the entire package is then distributed as a native app via app stores

Page 21: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

PHONEGAP (CONT)

Cons

▪ Is (still) a web app

▪ Not as sleek and snappy

▪ Hardware access is limited to those allowed by the PhoneGap API

Pros

▪ Is a web app

▪ WORA

▪ With more hardware access (than reg browsers)

▪ Web developers feels at home

Page 22: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

COMPROMISE #2:

▪ Programmer writes app code in JavaScript

▪ Code gets interpreted on mobile device by a modified JavaScript engine

▪ JS Engine call native API

Main Idea: Mask the differences between platforms with an interpreter

Page 23: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

TITANIUM (CONT)

Cons

▪ Not as fast as native

▪ Interpreter engine

▪ Hardware and graphics API is limited to that allowed by Titanium

Pros

▪ Is faster than web apps

▪ Is sleeker than web apps

▪ Native looking UIs

▪ More hardware access than web apps and PhoneGap

▪ WORA

Page 24: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

COMPROMISE #3:

▪ Main Idea: Mask the differences between platforms using a cross-platform execution engine (VM/Runtime)

Page 25: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

XAMARIN (CONT)

Cons

▪ Require more knowledge of native Oses

▪ Some UI code need to be platform specific

▪ App Logic is still common!

▪ Tools licences

Pros

▪ Compiled code▪ Higher performance

▪ Closest to native▪ (Almost) full hardware

access

▪ C#/.NET: Large dev comm

▪ WORA???▪ Semi-wora

Page 26: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

OTHER THINGS WORTH CONSIDERING

▪ Time to market

▪ Stage of product

▪ Your own expertise

▪ Talent pool

▪ Development cost

Page 27: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

FURTHER REFERENCES▪ Pro Git

▪ http://git-scm.com/book/en/v2

▪ Selenium Testing Tools Starter

▪ http://it-ebooks.info/book/3123/

▪ Building cross-platform apps using Titanium

▪ http://it-ebooks.info/book/4475/

▪ PhoneGap for Enterprise

▪ http://it-ebooks.info/book/4763/

▪ Xamarian Mobile Application Development for Android

▪ http://www.it-ebooks.info/book/3892/

Page 28: SOFTWARE DEVELOPMENT - RIC Centre · TESTING & TEST AUTOMATION Required for continuous delivery Dedicated Quality Assurance ... CHOOSING A MOBILE DEV PLATFORM. CLOUD-INTEGRATED MOBILE

THANK YOU!