130 likes | 222 Views
Portability. Hohmann Chapter 6. The Perceived Advantage of Portability. By supporting multiple platforms, we can address new markets Not necessarily, building a good solution on one platform is better than building mediocre solutions on many (an exception seems to be midrange software)
E N D
Portability Hohmann Chapter 6
The Perceived Advantage of Portability • By supporting multiple platforms, we can address new markets • Not necessarily, building a good solution on one platform is better than building mediocre solutions on many (an exception seems to be midrange software) • By supporting multiple platforms, we demonstrate that we can meet customers individual needs • Customers want platform specific features, portability moves in the other direction!
Real Motivation for Portability • Developers think writing portable code is cool • Reality is that it is hard and tedious • One or two key customers demanded different solutions • Search for customers within target marked
Key Cost Factors of Portability • Training developers and QA • Purchasing hardware • Testing time (the matrix of pain) • The complexity of managing multiple release cycles • A good rule of thumb: it is easier to justify a portable technology like a DB than an application
Techniques Helpful for Making Portable Applications • Use an interpreted language • Use standards-based persistent storage (XML, ansi SQL) • Use XML for communication between subsystems • Make business logic portable: not buried within system specific resources • Closer to user means less portable. GUIs hard! • Avoid hiding the power of a specific platform
The Matrix of Pain: market driven configuration matrices • Toy Example • 5 operating systems on two platforms • Unix: Solaris 2.7, Solaris 2.8 • Windows: NT 3.5.1, NT 4.0, XP • 2 Web servers: Apache, IIS • 2 browsers: Netscape, IE • 4 DBs: Oracle 8i, Oracle 9i, SQLServer 7.0, SQLServer 2000 • 5x2x2x4 = 80 configurations • Problem: QA can cover 10 times less
Step 1: Remove Invalid Configurations PC = Possible configuration, NS = Not supported, NA = Not Applicable
Step 2: Rank-Order Configurations • Make prioritization based on which configurations: • Are actually installed in the field • Are used by the largest most profitable customers • Are going to be most heavily promoted • Are most easily supported! • Use color coding: must test, should test, would like to test • Or weights
Step 2: Rank-Order Configurations • Use Pareto Chart to analyze the distribution of customer configurations C1 C2 C3 C4 C5 Adopted from: www.isixsigma.com
Step 3: Make Final Cut 53% revenue from Solaris. Consider all 3 configuration Orthogonality NT 3.5.1 phasing out, only one configuration NT 4.0 Most important configuration, but SQL output identical
Step 3: Make Final Cut Removing IIS. Still the relative most important
All Pairs • Assume n variables with two values • How many configurations? • 2n • Simple upper bound on the number of distinct pairs? • (2n)2