software development - ric centre · testing & test automation required for continuous delivery...
Post on 28-May-2020
10 Views
Preview:
TRANSCRIPT
SOFTWARE DEVELOPMENTNotes for Startup Founders
March 25th, 2015
Brian PhamProfessor, School of Applied Computing , Sheridan CollegeAdjunct Professor, School of Computer Science, University of Guelphbrian.huy.pham@gmail.com
YuFan DongComputer Science Student, University of WaterlooQA Analyst, Oracle Eloquayufandong@hotmail.com
Rahil ShahComputer Programmer Student, Sheridan CollegeAndroid Developer, Freelancerrahil2952@gmail.com
Yash TilvaComputer Programmer Student, Sheridan CollegeWeb Developer, Freelancertilva.yash@gmail.com
AGENDA
Managing a software endeavor
Useful tools
Choosing the right dev platform
MANAGING A SOFTWARE ENDEAVOR
SOFTWARE: BRIDGE OR GARDEN?
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
AGILE DEVELOPMENT PROCESS
The Agile Samurai
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
USEFUL TOOLS
WEBSITE & BLOG
▪ Design
▪ Template Monsters
▪ {Wrap}Bootstrap
▪ CMS
▪ Magento
▪ SEO
▪ Google Analytics
http://www.templatemonster.com/demo/53155.html
http://riotdesign.eu/en/
WIREFRAMING / MOCKUP
VERSION CONTROL
▪ Collaboration without conflicts
▪ Branching and Merging
▪ History/Journal
TESTING & TEST AUTOMATION
▪ Required for continuous delivery
▪ Dedicated Quality Assurance
▪ Issue Tracking
▪ Regression Testing
CHOOSING A MOBILE DEV PLATFORM
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”
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
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
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
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
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
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
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
COMPROMISE #3:
▪ Main Idea: Mask the differences between platforms using a cross-platform execution engine (VM/Runtime)
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
OTHER THINGS WORTH CONSIDERING
▪ Time to market
▪ Stage of product
▪ Your own expertise
▪ Talent pool
▪ Development cost
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/
THANK YOU!
top related