Tuesday 14 August 2018

Symbian for Software Leaders Principles of Successful Smartphone Development Projects by David Wood

Symbian for Software Leaders Principles of Successful Smartphone Development Projects by David Wood | To software leaders in the smartphone revolution the creators of outstanding products which will yield high value to hundreds of millions of mobile users.



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 33
  • 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 42
  • 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 smallprojects
  • 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.processe
  • 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 86CONTENTS ix
  • 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 193CONTENTS
  • 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 codevelopment
  • 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
https://drive.google.com/open?id=1VvPpVCRI6o8He3zXa3iPJ4-6rQJp514c


Express Your Opinions in comments
EmoticonEmoticon