Learning

Symbian for Software Leaders

Principles of Successful Smartphone Development Projects

By David Wood

Table of contents

Introduction: projects, projects, projects

Part 1: Symbian in context

1 At the heart of the smartphone revolution

1.1 The phenomenon of smartphones
1.2 Taking advantage of the smartphone opportunity
1.3 The role of the smartphone operating system
1.4 Regarding APIs and operating systems
1.5 Why Symbian OS?
1.6 Aside: from organizers to smartphones
1.7 Coming to terms with Symbian OS

2 The big picture of a Symbian OS project

2.1 High-level components of a smartphone
2.2 Providers of integrated solutions
2.3 The commercial model of a smartphone project
2.4 Some conclusions from the smartphone commercial model
2.5 Typical smartphone project timescales
2.6 Warning regarding timescales
2.7 Factors influencing project timescales
2.8 The big picture: beyond timescales

3 Involving ISVs

3.1 ISV smartphone opportunity and risk
3.2 Beyond technical skill-sets
3.3 Different routes to market
3.4 Symbian endorsements
3.5 Companion Technology Program
3.6 Symbian Signed

4 Twenty reasons why smartphones will win

4.1 Two kinds of battle
4.2 Multitasking
4.3 Messaging and entertainment
4.4 Mobile knowledge access
4.5 Organizers and finance
4.6 Pocket consolidators
4.7 Social tools
4.8 Personal development
4.9 Phones win
4.10 Openness wins

Part 2: Thriving on scale

5 Managing large projects

5.1 Smartphone projects vs. feature phone projects
5.2 Three approaches to large projects
5.3 How large projects differ from small projects
5.4 Project groupware
5.5 Confidentiality issues
5.6 Five central project documents
5.7 Auditing document readership
5.8 Processes and agility: education vs. processes
5.9 Problems when groupware is short-cut
5.10 Symbian’s use of groupware

6 Managing defects

6.1 Introduction to smartphone defect management
6.2 Living with defects
6.3 Aside: an embarrassing moment with defects
6.4 Defect priorities
6.5 The process of verifying a defect fix
6.6 Advanced defect investigation
6.7 Defect status values
6.8 Defect database requirements
6.9 The role of the project leader in managing defects

7 Managing configurations

7.1 Introduction to configuration management
7.2 Aside: learning about configuration management
7.3 Consequences of weak configuration management
7.4 Basic principles of configuration management
7.5 Codeline strategy – single projects
7.6 Codeline strategy – multiple projects
7.7 Beyond codeline strategy

8 Managing integration

8.1 Integration vs. creation
8.2 Mainlines and development codelines
8.3 Iterative development
8.4 Gate-keeping and integration tests
8.5 Dealing with build or test failures
8.6 The weekly integration cycle
8.7 Integration discipline

9 Managing interfaces

9.1 Knowing when components belong together
9.2 Limits of rebuilding source code
9.3 Forms of compatibility
9.4 The compatibility virtuous cycle
9.5 System compatibility board
9.6 Responsibilities with regard to compatibility
9.7 Interface access and interface status
9.8 Versioning
9.9 Future-proofing interfaces

10 Managing testing

10.1 Beyond complete testing
10.2 Testing in context
10.3 Functional tests
10.4 Basic Acceptance Tests
10.5 Specialist tests
10.6 Friendly User Tests
10.7 Mandatory tests
10.8 Automated tests

11 Managing tools

11.1 The need for a tools champion
11.2 Debuggers
11.3 Emulators
11.4 Profilers and loggers
11.5 Static code analysis
11.6 Build system
11.7 Distribution system
11.8 Miscellaneous tools
11.9 Dangers with tools

12 Managing plans and change

12.1 Beyond complete planning
12.2 Causes of change
12.3 Handling change requests
12.4 Variable task estimates
12.5 Practical example of agile scheduling
12.6 Accepting slack
12.7 Aggressive vs. defensive scheduling
12.8 Authentic vs. inauthentic scheduling
12.9 Beyond meeting customer requests

13 Managing uncertainty

13.1 The 80–20 rule for planning
13.2 Identifying the project planning hot list
13.3 Iterating the project plan
13.4 Developing features outside the agreed core
13.5 The 80–20 rule for task estimation
13.6 Typical project trouble spots
13.7 Pros and cons of milestone reviews
13.8 Dealing with milestone delays
13.9 Cut features not corners

14 Simplifying smartphone projects

14.1 Beyond difficulty
14.2 Reuse rather than reinvent
14.3 The benefits of frequent releases
14.4 Symbian’s adoption of the frequent release model
14.5 Use of reference designs
14.6 Silver bullets vs. disruption

Part 3: Symbian’s design philosophy

15 Design goals for Symbian OS

15.1 The birth of EPOC32
15.2 Defining the EPOC RISC architecture
15.3 Software goals from 1995
15.4 Separating the engine
15.5 Nine passions

16 Designing for efficiency

16.1 The original electronic organizers
16.2 Limits of Moore’s Law thinking
16.3 Causes of code bloat
16.4 Designing algorithms
16.5 Understanding the compiler
16.6 Adopting OO
16.7 Selecting C++
16.8 Text descriptors

17 Designing for robustness

17.1 Alloc heaven
17.2 Expecting the unexpected
17.3 The perils of multitasking
17.4 Exception handling
17.5 Common mistakes in destructors
17.6 Seeking out failure cases
17.7 Attitudes towards defects
17.8 Protecting the smartphone vital assets

18 Designing for usability

18.1 ‘‘The operation was a success, but the patient died’’
18.2 Enchantment
18.3 Designing the user interface
18.4 Multimedia performance
18.5 Understanding the real competition
18.6 Customer orientation for developers
18.7 Designing panics

19 Designing for longevity

19.1 Preparing for variants
19.2 Be ready to fail fast
19.3 Prepare your own SDK
19.4 The value of co-development
19.5 Basic principles for reusable solutions
19.6 The value of architecture
19.7 The value of ignorance

20 Designing for smartphones

20.1 The licensing question
20.2 Focus on strategy
20.3 Smartphone heritage
20.4 Active objects
20.5 Power management
20.6 Beware stray signals
20.7 Final comments on asynchronous events

Part 4: Human aspects of smartphone projects

21 The essential role of the project manager

21.1 Focus
21.2 Project manager vs. technical lead vs. product manager
21.3 Project review meetings
21.4 Commercial negotiations with third parties
21.5 Project manager authority

22 The essential role of the support network

22.1 Pros and cons of support consultants
22.2 Cultivating connections
22.3 Building a team out of nothing
22.4 Helping consultants to be effective

23 The essential role of renewal

23.1 The role of the post partum
23.2 Line management skills
23.3 Circulation of team members
23.4 Principles of collaboration
23.5 The increasing importance of software
23.6 A guide for software leaders
23.7 Symbian OS renewal

 
book

Book facts

  • Author: David Wood
  • Published by Symbian Press
  • Publication date: May 2006
  • 320 pages
  • ISBN 0-470-01683-3

Buy from Amazon.comBuy from John Wiley & Sons

Bulk orders

To make a bulk order of this Symbian Press title:

Email Symbian Press sales

Terms of use | Privacy policy | Media Center | Contact us | © 2008 Symbian