Preface xviiAcknowledgments xxiAbout the Author xxiiiChapter 1: Mobile: The New Generation of Information Technology 1Why Businesses Are Adopting Mobile Applications 1Driving Business Process Innovation 1A Formula for Designing Engaging Systems 2Unique Challenges for Development of Engaging Applications 4Form Factors and User Input Technology 4Usability and User Interaction Design 4Choice of Implementation Technology 5Mobile Application Build and Delivery 6Testing 7Enterprise Mobile Development 7Summary 8Chapter 2: Mobile Development Lifecycle Overview 9Introduction 9DevOps and Enterprise Mobile Development Lifecycle Overview 11A DevOps Approach Is Core to Delivering Client Value 11One Essential View of DevOps: The Mobile Developer Perspective 12Sprint 1: "Hello World"--Initial Operating Capability and Prototype 13Design--The Big Picture 14Integrate: Enterprise Services and Data 17Test: Manual Testing Is Better than No Testing 18Test: Simulate/Preview 18Sprint 2: "Hello DevOps!"--Improve Developer Productivity 19Develop: Productivity with Wizards and Mobile Platform Portability 19Instrument: Quality Assurance and Testing "In the Wild" 19Test: Code-Centric and Unit Testing 20Deploy: Automate Your Deployment Pipeline 21Sprint 3: "Software Delivery Is a Team Sport!" 23Develop: Agile Planning 23Develop: Work Items (Defects, Enhancement Requests) 23Develop: Application Lifecycle Management (ALM) Imperatives 24Test: Improving Manual, Automating User Interface Tests, and Test Data Management 26Sprint 4: "Ruggedized for the AppStore" 27Test: "FURPS" and Virtualization 27Scan and Certify 28Obtain Insight: Application Quality Feedback and Analytics 28Sprint 5: "Optimizing Enterprise DevOps" 29Integrate: Enterprise Developer Integration 29Instrument and Obtain Insight: Customer Experience (CX) and Campaign Management 31Obtain (AppStore) Insight: Mobile Quality Assurance 32Manage: Application Versions, Updates, and More! 33Summary 35Chapter 3: Design Quality Is Crucial, Make the Investment Up-Front 37Overview 37Why Is Design Important? 37Scope of Design in Mobile App Development 37Design Research 38Information Architecture 38Interaction Design 38Visual Design 38Overarching Design Principles and Guidelines 39Discover, Try, and Buy 39Get Started 39Everyday Use 40Manage and Upgrade 42Leverage and Extend 42Get Support 42Designing for Enterprise Mobile 42Designing the IBM Way 42Core Practices 43Some Design Methods 45Understand 45Explore 46Prototype 50Evaluate 53Summary 54Chapter 4: Mobile Application Development 55The Mobile App 55Factors for Choosing 56How Should I Build Applications? 58The Case for Cloud 58Mobile App Architectural Components 61Mobile Device Components 61Public Network Components 63Provider Cloud Service Components 63Enterprise Network Components 68Complete Picture 68Mobile App Flow 68Mobile App Deployment Considerations 71Summary 74Chapter 5: Mobile Enterprise--Beyond the Mobile End-Point 75Building Mobile Apps Powered by Enterprise Backend 75Connecting the Mobile App with Enterprise IT Services and Data 76Types of IT Backends to Integrate from Mobile Apps 78Type of API Protocols 80Security Integration 81IBM DataPower XG45 Security Gateway 84Mobile Devices Security Considerations 86Loss and Theft 87Malware 89Phishing 90Understanding the Worklight Security Integration Framework 90Secured Data Store and Synchronization 92Enterprise Mobile Application Management and Device Management 92Special Challenges in Managing Mobile Applications and Devices 93Example Product: IBM MaaS360 94Architectural Choices for Secured Enterprise Connectivity 95Summary 98Chapter 6: A Comprehensive Approach to Testing of Mobile Applications 99Why Is Quality Essential? 99When Should Quality Be in Focus? 100 What Is the Cost of Quality? 100Automated versus Manual Testing 100Preproduction versus Postrelease 101Automated Mobile App Testing Considerations 103Test Devices 103Emulators and Simulators 103Device Clouds 103Crowd-Sourced Testing 104Using Service Virtualization to Isolate Mobile Code 105Mobile Test Automation Techniques 105Mobile App Programmatic Instrumentation 105Random Generated Mobile Tests 106Image Recognition Automated Mobile Tests 107Making Manual Testing More Effective 107Crash Data Capture and Analysis 108Performance Testing 109Load and Stress Performance Testing 109Mobile Client Resource Metrics 109User Sentiment as a Measure of Quality 110Summary 111Chapter 7: Best Practices of Mobile DevOps 113What Is DevOps? 113Some Definitions 113The IBM DevOps Solution 115Plan and Measure 115Develop and Test 116Release and Deploy 116Monitor and Optimize 116DevOps Best Practices 116Plan and Track Everything 116Dashboard Everything 117Version Everything 117Automate Everything 118Test Everything 118Monitor Everything 118Mobile DevOps Challenges 119Fragmented Platforms 119Mobile Applications Front a Complex Enterprise Back Office 119App Stores Add Additional Asynchronous Deployment Step 121Security, Code Signing, and Keystores 121Testing 121Mobile DevOps Best Practices 121Practice Continuous Integration/Delivery and Automate Builds and Deployments 121Test Each Build 122Simulate Backend Services to Expand Testing Environment Availability 123Monitor Deployed Application and Backend Server Performance 124Centralize Governance of Provisioning Profiles, Certificates, and API Keys 126Use a Private App Store to Test Deployment Devices 126Convert Real User Feedback to Enhancement 126Summary 127Chapter 8: Conclusions and Further Readings 129Conclusions 129Further Readings 130Chapter 2: Development Lifecycle 130Chapter 3: Design Related 131Chapter 4: Mobile Development 131Chapter 5: Mobile Server 132Chapter 6: Mobile Quality 132Chapter 7: Mobile DevOps 133Index 135
Leigh Williamson is an IBM Distinguished Engineer who has been working in the Austin, Texas lab since 1989, contributing to IBM's major software projects including OS/2, DB2, AIX, Java, WebSphere Application Server and associated family of products, the Rational brand of software offerings, the MobileFirst line of solutions, and the IBM Cloud products and services. He is currently a member of the IBM Cloud Strategy team, influencing the direction for the IBM Cloud portfolio. You can follow Leigh on twitter @leighawillia. He holds a B.S. degree in Computer Science from Nova University and an M.S. degree in Computer Engineering from University of Texas at Austin.Roland Barcia is an IBM Distinguished Engineer and CTO for the Mobile IBM Cloud Support and Lab Services. Roland is responsible for technical thought leadership and strategy, practice technical vitality, and technical enablement. He works with many enterprise clients on mobile strategy and implementations. He is the coauthor of four books and has published more than 50 articles and papers on topics such as mobile technologies, Bluemix, IBM MobileFirst, Java, Ajax, REST, and messaging technologies. He frequently presents at conferences and to customers on various technologies. Roland has spent the past 16 years implementing mobile, API, middleware systems on various platforms, including Sockets, CORBA, Java EE, SOA, REST, web, and mobile platforms. He has a master's degree in computer science from the New Jersey Institute of Technology.Omkar Chandgadkar is an experience designer with a background in computer engineering and Human Computer Interaction. At IBM, he is involved in conducting strategic research for developer tools and designing for the complex challenges of enterprise customers. Through his work, Omkar strives to design experiences that solve user problems and generate business value.Ashish Mathur is an IBM Senior Technical Staff Member and Lead Software Architect for IBM Rational functional testing tools and has the mission to build the next-generation mobile and desktop web-testing software. He has been working on automated testing software since 1993 contributing to major IBM and Rational testing software, including Rational Test Workbench, RFT, RQM, RPT, and Rational Test manager. He has been in multiple roles in automated testing including that of a tester, consultant, subject matter expert, and a developer of the tools. He works out of the IBM India Software Labs in Bangalore, India.Soma Ray is a UX strategist with research and design backgrounds. With educational background in Electronics, Business Administration, and Human Computer Interaction from University of Pune, India and University of Michigan, Ann Arbor, Soma has always strived to make technology more accessible and empathetic for its users. She has worked in the enterprise technology industry and currently works for the IBM Design Studio in Austin Texas.Darrell Schrag is a 27-year software professional having spent significant time in the DoD/Aerospace and Financial Services industries. Darrell joined Rational Software in 1993 to bring software-development practices and tools to successful customers. Darrell continues to contribute to customer success with IBM after its acquisition of Rational Software. Darrell has spent time at IBM as a Rational services consultant as well as a worldwide mobile and DevOps specialist. Darrell is currently a Cloud Advisor in the IBM Cloud business unit, helping customers find their best path forward with IBM cloud solutions.Roger Snook brings 25 years of software product innovation and consultative engagements across several industries focused on developer and project productivity to drive good business results--good design is good business! Roger is an IBM Certified Expert IT Specialist, Open Group Master IT Specialist, and an OMG Certified UML Professional in the Washington DC/West Virginia area, and holds a B.S. degree in Computer Science from Rensselaer Polytechnic Institute, Troy, New York. You can find Roger on several social networks or volunteering in his local community youth soccer or faith-based activities.Jianjun Zhang is a Senior Technical Staff Member in IBM's Systems group, Middleware division. In the past number of years, he worked on exciting projects including helping to integrate Worklight into IBM's MobileFirst portfolio to become the foundation of the mobile strategy, leading a SaaS product development that helps business developers create mobile and web applications for departmental use without having to master coding skills. Lately, he is building cloud services to help business individuals and organizations alike to develop and manage cloud applications, Internet of Things devices, and business insights. He has a Bachelor's degree from Fudan University in China and a Master's degree from Northern Illinois University in the United States.