Preface xvii Acknowledgments xxi About the Author xxiii Chapter 1: Mobile: The New Generation of Information Technology 1 Why Businesses Are Adopting Mobile Applications 1 Driving Business Process Innovation 1 A Formula for Designing Engaging Systems 2 Unique Challenges for Development of Engaging Applications 4 Form Factors and User Input Technology 4 Usability and User Interaction Design 4 Choice of Implementation Technology 5 Mobile Application Build and Delivery 6 Testing 7 Enterprise Mobile Development 7 Summary 8 Chapter 2: Mobile Development Lifecycle Overview 9 Introduction 9 DevOps and Enterprise Mobile Development Lifecycle Overview 11 A DevOps Approach Is Core to Delivering Client Value 11 One Essential View of DevOps: The Mobile Developer Perspective 12 Sprint 1: "Hello World"--Initial Operating Capability and Prototype 13 Design--The Big Picture 14 Integrate: Enterprise Services and Data 17 Test: Manual Testing Is Better than No Testing 18 Test: Simulate/Preview 18 Sprint 2: "Hello DevOps!"--Improve Developer Productivity 19 Develop: Productivity with Wizards and Mobile Platform Portability 19 Instrument: Quality Assurance and Testing "In the Wild" 19 Test: Code-Centric and Unit Testing 20 Deploy: Automate Your Deployment Pipeline 21 Sprint 3: "Software Delivery Is a Team Sport!" 23 Develop: Agile Planning 23 Develop: Work Items (Defects, Enhancement Requests) 23 Develop: Application Lifecycle Management (ALM) Imperatives 24 Test: Improving Manual, Automating User Interface Tests, and Test Data Management 26 Sprint 4: "Ruggedized for the AppStore" 27 Test: "FURPS" and Virtualization 27 Scan and Certify 28 Obtain Insight: Application Quality Feedback and Analytics 28 Sprint 5: "Optimizing Enterprise DevOps" 29 Integrate: Enterprise Developer Integration 29 Instrument and Obtain Insight: Customer Experience (CX) and Campaign Management 31 Obtain (AppStore) Insight: Mobile Quality Assurance 32 Manage: Application Versions, Updates, and More! 33 Summary 35 Chapter 3: Design Quality Is Crucial, Make the Investment Up-Front 37 Overview 37 Why Is Design Important? 37 Scope of Design in Mobile App Development 37 Design Research 38 Information Architecture 38 Interaction Design 38 Visual Design 38 Overarching Design Principles and Guidelines 39 Discover, Try, and Buy 39 Get Started 39 Everyday Use 40 Manage and Upgrade 42 Leverage and Extend 42 Get Support 42 Designing for Enterprise Mobile 42 Designing the IBM Way 42 Core Practices 43 Some Design Methods 45 Understand 45 Explore 46 Prototype 50 Evaluate 53 Summary 54 Chapter 4: Mobile Application Development 55 The Mobile App 55 Factors for Choosing 56 How Should I Build Applications? 58 The Case for Cloud 58 Mobile App Architectural Components 61 Mobile Device Components 61 Public Network Components 63 Provider Cloud Service Components 63 Enterprise Network Components 68 Complete Picture 68 Mobile App Flow 68 Mobile App Deployment Considerations 71 Summary 74 Chapter 5: Mobile Enterprise--Beyond the Mobile End-Point 75 Building Mobile Apps Powered by Enterprise Backend 75 Connecting the Mobile App with Enterprise IT Services and Data 76 Types of IT Backends to Integrate from Mobile Apps 78 Type of API Protocols 80 Security Integration 81 IBM DataPower XG45 Security Gateway 84 Mobile Devices Security Considerations 86 Loss and Theft 87 Malware 89 Phishing 90 Understanding the Worklight Security Integration Framework 90 Secured Data Store and Synchronization 92 Enterprise Mobile Application Management and Device Management 92 Special Challenges in Managing Mobile Applications and Devices 93 Example Product: IBM MaaS360 94 Architectural Choices for Secured Enterprise Connectivity 95 Summary 98 Chapter 6: A Comprehensive Approach to Testing of Mobile Applications 99 Why Is Quality Essential? 99 When Should Quality Be in Focus? 100 What Is the Cost of Quality? 100 Automated versus Manual Testing 100 Preproduction versus Postrelease 101 Automated Mobile App Testing Considerations 103 Test Devices 103 Emulators and Simulators 103 Device Clouds 103 Crowd-Sourced Testing 104 Using Service Virtualization to Isolate Mobile Code 105 Mobile Test Automation Techniques 105 Mobile App Programmatic Instrumentation 105 Random Generated Mobile Tests 106 Image Recognition Automated Mobile Tests 107 Making Manual Testing More Effective 107 Crash Data Capture and Analysis 108 Performance Testing 109 Load and Stress Performance Testing 109 Mobile Client Resource Metrics 109 User Sentiment as a Measure of Quality 110 Summary 111 Chapter 7: Best Practices of Mobile DevOps 113 What Is DevOps? 113 Some Definitions 113 The IBM DevOps Solution 115 Plan and Measure 115 Develop and Test 116 Release and Deploy 116 Monitor and Optimize 116 DevOps Best Practices 116 Plan and Track Everything 116 Dashboard Everything 117 Version Everything 117 Automate Everything 118 Test Everything 118 Monitor Everything 118 Mobile DevOps Challenges 119 Fragmented Platforms 119 Mobile Applications Front a Complex Enterprise Back Office 119 App Stores Add Additional Asynchronous Deployment Step 121 Security, Code Signing, and Keystores 121 Testing 121 Mobile DevOps Best Practices 121 Practice Continuous Integration/Delivery and Automate Builds and Deployments 121 Test Each Build 122 Simulate Backend Services to Expand Testing Environment Availability 123 Monitor Deployed Application and Backend Server Performance 124 Centralize Governance of Provisioning Profiles, Certificates, and API Keys 126 Use a Private App Store to Test Deployment Devices 126 Convert Real User Feedback to Enhancement 126 Summary 127 Chapter 8: Conclusions and Further Readings 129 Conclusions 129 Further Readings 130 Chapter 2: Development Lifecycle 130 Chapter 3: Design Related 131 Chapter 4: Mobile Development 131 Chapter 5: Mobile Server 132 Chapter 6: Mobile Quality 132 Chapter 7: Mobile DevOps 133 Index 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.