Chapter 9. Managing interfaces
Knowing when components belong together
A surprising amount of time can be wasted on a smartphone project on account of different components in the overall software mix unexpectedly being inconsistent with each other. The art of preventing these inconsistencies is known as "interface management". Good interface management is a core skill of a successful smartphone development team.
Here's a typical experience. A product team is testing some functionality, and it doesn't work. Initial debugging finds no obvious problems, so more time is required. Eventually (perhaps after several days), the problem is traced to some far-away piece of code – often a place outside the direct experience of the project team. The problem is that far-away piece of code component C is calling far-away piece of code component D, but D misinterprets the call, with chaotic results.
For example, component C may think it is calling function 42 in component D, that takes three parameters, but function 42 in component D actually needs four parameters. So D processes a function call with a random fourth parameter. Or, component C may think that the first parameter to the function call has a particular data field at offset 20 (say) inside itself, but component D thinks that this data field is at offset 24 inside the parameter. So it accesses the wrong data. In both examples, C and D are inconsistent. Perhaps C has been built using version 126 of a shared header file, whereas D has been ...
Get Symbian for Software Leaders: Principles of Successful Smartphone Development Projects now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.