Symbian for Software Leaders: Principles of Successful Smartphone Development Projects

Book description

As a co-founder of Symbian and former executive of Psion Software, David Wood has been actively involved in well over 100 smartphone development projects worldwide. Over the time spent on these projects, he has come to understand the key issues which determine the difference between successful and unsuccessful projects for Symbian OS. This book highlights and explains:

  • How to tame the awesome inner complexity of smartphone technology

  • Optimal project team organisation, combining agility and reliability

  • The design and the philosophy behind key features of Symbian OS

  • The potential trouble spots of smartphone integration, testing, and optimisation

  • How to receive the full benefit of the diverse skills in the extensive Symbian partner ecosystem

  • The methods that are most likely to deliver commercial success when using Symbian OS

  • The wider significance of Symbian OS skills and expertise in the evolving mobile marketplace

  • The particular importance of software leaders in bringing breakthrough smartphone products to the market

Table of contents

  1. Copyright
  2. Introduction: projects, projects, projects
  3. 1. Symbian in context
    1. 1. At the heart of the smartphone revolution
      1. 1.1. The phenomenon of smartphones
      2. 1.2. Taking advantage of the smartphone opportunity
      3. 1.3. The role of the smartphone operating system
      4. 1.4. Regarding APIs and operating systems
      5. 1.5. Why Symbian OS?
      6. 1.6. Aside: from organizers to smartphones
      7. 1.7. Coming to terms with Symbian OS
    2. 2. The big picture of a Symbian OS project
      1. 2.1. High-level components of a smartphone
      2. 2.2. Providers of integrated solutions
      3. 2.3. The commercial model of a smartphone project
      4. 2.4. Some conclusions from the smartphone commercial model
      5. 2.5. Typical smartphone project timescales
      6. 2.6. Warning regarding timescales
      7. 2.7. Factors influencing project timescales
      8. 2.8. The big picture: beyond timescales
    3. 3. Involving ISVs
      1. 3.1. ISV smartphone opportunity and risk
      2. 3.2. Beyond technical skill-sets
      3. 3.3. Different routes to market
      4. 3.4. Symbian endorsements
      5. 3.5. Companion Technology Program
      6. 3.6. Symbian Signed
    4. 4. Twenty reasons why smartphones will win
      1. 4.1. Two kinds of battle
      2. 4.2. Multitasking
      3. 4.3. Messaging and entertainment
      4. 4.4. Mobile knowledge access
      5. 4.5. Organizers and finance
      6. 4.6. Pocket consolidators
      7. 4.7. Social tools
      8. 4.8. Personal development
      9. 4.9. Phones win
      10. 4.10. Openness wins
  4. 2. Thriving on scale
    1. 5. Managing large projects
      1. 5.1. Smartphone projects vs. feature phone projects
      2. 5.2. Three approaches to large projects
      3. 5.3. How large projects differ from small projects
      4. 5.4. Project groupware
      5. 5.5. Confidentiality issues
      6. 5.6. Five central project documents
      7. 5.7. Auditing document readership
      8. 5.8. Processes and agility: education vs. processes
      9. 5.9. Problems when groupware is short-cut
      10. 5.10. Symbian's use of groupware
    2. 6. Managing defects
      1. 6.1. Introduction to smartphone defect management
      2. 6.2. Living with defects
      3. 6.3. Aside: an embarrassing moment with defects
      4. 6.4. Defect priorities
      5. 6.5. The process of verifying a defect fix
      6. 6.6. Advanced defect investigation
      7. 6.7. Defect status values
      8. 6.8. Defect database requirements
      9. 6.9. The role of the project leader in managing defects
    3. 7. Managing configurations
      1. 7.1. Introduction to configuration management
      2. 7.2. Aside: learning about configuration management
      3. 7.3. Consequences of weak configuration management
      4. 7.4. Basic principles of configuration management
      5. 7.5. Codeline strategy – single projects
      6. 7.6. Codeline strategy – multiple projects
      7. 7.7. Beyond codeline strategy
    4. 8. Managing integration
      1. 8.1. Integration vs. creation
      2. 8.2. Mainlines and development codelines
      3. 8.3. Iterative development
      4. 8.4. Gate-keeping and integration tests
      5. 8.5. Dealing with build or test failures
      6. 8.6. The weekly integration cycle
      7. 8.7. Integration discipline
    5. 9. Managing interfaces
      1. 9.1. Knowing when components belong together
      2. 9.2. Limits of rebuilding source code
      3. 9.3. Forms of compatibility
      4. 9.4. The compatibility virtuous cycle
      5. 9.5. System compatibility board
      6. 9.6. Responsibilities with regard to compatibility
      7. 9.7. Interface access and interface status
      8. 9.8. Versioning
      9. 9.9. Future-proofing interfaces
    6. 10. Managing testing
      1. 10.1. Beyond complete testing
      2. 10.2. Testing in context
      3. 10.3. Functional tests
      4. 10.4. Basic Acceptance Tests
      5. 10.5. Specialist tests
      6. 10.6. Friendly User Tests
      7. 10.7. Mandatory tests
      8. 10.8. Automated tests
    7. 11. Managing tools
      1. 11.1. The need for a tools champion
      2. 11.2. Debuggers
      3. 11.3. Emulators
      4. 11.4. Profilers and loggers
      5. 11.5. Static code analysis
      6. 11.6. Build system
      7. 11.7. Distribution system
      8. 11.8. Miscellaneous tools
      9. 11.9. Dangers with tools
    8. 12. Managing plans and change
      1. 12.1. Beyond complete planning
      2. 12.2. Causes of change
      3. 12.3. Handling change requests
      4. 12.4. Variable task estimates
      5. 12.5. Practical example of agile scheduling
      6. 12.6. Accepting slack
      7. 12.7. Aggressive vs. defensive scheduling
      8. 12.8. Authentic vs. inauthentic scheduling
      9. 12.9. Beyond meeting customer requests
    9. 13. Managing uncertainty
      1. 13.1. The 80–20 rule for planning
      2. 13.2. Identifying the project planning hot list
      3. 13.3. Iterating the project plan
      4. 13.4. Developing features outside the agreed core
      5. 13.5. The 80–20 rule for task estimation
      6. 13.6. Typical project trouble spots
      7. 13.7. Pros and cons of milestone reviews
      8. 13.8. Dealing with milestone delays
      9. 13.9. Cut features not corners
    10. 14. Simplifying smartphone projects
      1. 14.1. Beyond difficulty
      2. 14.2. Reuse rather than reinvent
      3. 14.3. The benefits of frequent releases
      4. 14.4. Symbian's adoption of the frequent release model
      5. 14.5. Use of reference designs
      6. 14.6. Silver bullets vs. disruption
  5. 3. Symbian's design philosophy
    1. 15. Design goals for Symbian OS
      1. 15.1. The birth of EPOC32
      2. 15.2. Defining the EPOC RISC architecture
      3. 15.3. Software goals from 1995
      4. 15.4. Separating the engine
      5. 15.5. Nine passions
    2. 16. Designing for efficiency
      1. 16.1. The original electronic organizers
      2. 16.2. Limits of Moore's Law thinking
      3. 16.3. Causes of code bloat
      4. 16.4. Designing algorithms
      5. 16.5. Understanding the compiler
      6. 16.6. Adopting OO
      7. 16.7. Selecting C++
      8. 16.8. Text descriptors
    3. 17. Designing for robustness
      1. 17.1. Alloc heaven
      2. 17.2. Expecting the unexpected
      3. 17.3. The perils of multitasking
      4. 17.4. Exception handling
      5. 17.5. Common mistakes in destructors
      6. 17.6. Seeking out failure cases
      7. 17.7. Attitudes towards defects
      8. 17.8. Protecting the smartphone vital assets
    4. 18. Designing for usability
      1. 18.1. "The operation was a success, but the patient died"
      2. 18.2. Enchantment
      3. 18.3. Designing the user interface
      4. 18.4. Multimedia performance
      5. 18.5. Understanding the real competition
      6. 18.6. Customer orientation for developers
      7. 18.7. Designing panics
    5. 19. Designing for longevity
      1. 19.1. Preparing for variants
      2. 19.2. Be ready to fail fast
      3. 19.3. Prepare your own SDK
      4. 19.4. The value of codevelopment
      5. 19.5. Basic principles for reusable solutions
      6. 19.6. The value of architecture
      7. 19.7. The value of ignorance
    6. 20. Designing for smartphones
      1. 20.1. The licensing question
      2. 20.2. Focus on strategy
      3. 20.3. Smartphone heritage
      4. 20.4. Active objects
      5. 20.5. Power management
      6. 20.6. Beware stray signals
      7. 20.7. Final comments on asynchronous events
  6. 4. Human aspects of smartphone projects
    1. 21. The essential role of the project manager
      1. 21.1. Focus
      2. 21.2. Project manager vs. technical lead vs. product manager
      3. 21.3. Project review meetings
      4. 21.4. Commercial negotiations with third parties
      5. 21.5. Project manager authority
    2. 22. The essential role of the support network
      1. 22.1. Pros and cons of support consultants
      2. 22.2. Cultivating connections
      3. 22.3. Building a team out of nothing
      4. 22.4. Helping consultants to be effective
    3. 23. The essential role of renewal
      1. 23.1. The role of the post partum
      2. 23.2. Line management skills
      3. 23.3. Circulation of team members
      4. 23.4. Principles of collaboration
      5. 23.5. The increasing importance of software
      6. 23.6. A guide for software leaders
      7. 23.7. Symbian OS renewal
  7. A. Annotated glossary of abbreviations
  8. B. Selected bibliography
  9. C. Acknowledgments

Product information

  • Title: Symbian for Software Leaders: Principles of Successful Smartphone Development Projects
  • Author(s): David Wood
  • Release date: September 2005
  • Publisher(s): Wiley
  • ISBN: 9780470016831