130 likes | 228 Vues
Explore the advantages and challenges of supporting multiple platforms to reach new markets and meet individual customer needs. Learn the key cost factors and techniques for creating portable applications efficiently. Follow a step-by-step process to prioritize configurations and optimize portability.
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