> Software versus Design Quality: Tug of War? > Architecture > Designing Resource-Aware Cloud Applications

AUGUST 2015 www..org

IEEE COMPUTER SOCIETY http://computer.org • +1 714 821 8380

STAFF

Editor Manager, Editorial Services Content Development Lee Garber Richard Park

Senior Manager, Editorial Services Contributing Editors Robin Baldwin Christine Anthony, Brian Brannon, Carrie Clark Walsh, Brian Kirk, Chris Nelson, Meghan O’Dell, Dennis Taylor, Bonnie Wylie Director, Products and Services Evan Butterfield Production & Design Carmen Flores-Garvey, Monette Velasco, Jennie Zhu-Mai, Senior Advertising Coordinator Mark Bartosik Debbie Sims

Circulation: ComputingEdge is published monthly by the IEEE Computer Society. IEEE Headquarters, Three Park Avenue, 17th Floor, New York, NY 10016-5997; IEEE Computer Society Publications Office, 10662 Los Vaqueros Circle, Los Alamitos, CA 90720; voice +1 714 821 8380; fax +1 714 821 4010; IEEE Computer Society Headquarters, 2001 L Street NW, Suite 700, Washington, DC 20036. Postmaster: Send undelivered copies and address changes to IEEE Membership Processing Dept., 445 Hoes Lane, Piscataway, NJ 08855. Application to Mail at Periodicals Postage Prices is pending at New York, New York, and at additional mailing offices. Canadian GST #125634188. Canada Post Corporation (Canadian distribution) publications mail agreement number 40013885. Return undeliverable Canadian addresses to PO Box 122, Niagara Falls, ON L2E 6S8 Canada. Printed in USA. Editorial: Unless otherwise stated, bylined articles, as well as product and service descriptions, reflect the author’s or firm’s opinion. Inclusion in ComputingEdge does not necessarily constitute endorsement by the IEEE or the Computer Society. All submissions are subject to editing for style, clarity, and space. Reuse Rights and Reprint Permissions: Educational or personal use of this material is permitted without fee , provided such use: 1) is not made for profit; 2) includes this notice and a full citation to the original work on the first page of the copy; and 3) does not imply IEEE endorsement of any third-party products or services. Authors and their companies are permitted to post the accepted version of IEEE-copyrighted material on their own Web servers without permission, provided that the IEEE copyright notice and a full citation to the original work appear on the first scree n of the posted copy. An accepted manuscript is a version which has been revised by the author to incorporate review suggestions, but not the published version with copy-editing, proofreading, and formatting added by IEEE. For more information, please go to: http:// www.ieee .org/publications_standards/publications/rights/paperversionpolicy.html. Permission to reprint/republish this material for commercial, advertising, or promotional purposes or for creating new collective works for resale or redistribution must be obtained from IEEE by writing to the IEEE Intellectual Property Rights Office, 445 Hoes Lane, Piscataway, NJ 08854-4141 or pubs-permissions@ieee .org. Copyright © 2015 IEEE. All rights reserved. Abstracting and Library Use: Abstracting is permitted with credit to the source. Libraries are permitted to photocopy for private use of patrons, provided the per-copy fee indicated in the code at the bottom of the first page is paid through the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923. Unsubscribe: If you no longer wish to receive this ComputingEdge mailing, please email IEEE Computer Society Customer Service at [email protected] and type “unsubscribe ComputingEdge” in your subject line. IEEE prohibits discrimination, harassment, and bullying. For more information, visit www.ieee.org/web/aboutus/whatis/policies/p9-26.html.

IEEE Computer Society Magazine Editors in Chief

Computer IEEE Micro IEEE MultiMedia Sumi Helal, University of Florida Lieven Eeckhout, Ghent University Yong Rui, Microsoft Research

IEEE Software IEEE Computer Graphics and IEEE Annals of the History Diomidis Spinellis, Athens Applications of Computing University of Economics and L. Miguel Encarnação, ACT, Inc. Nathan Ensmenger, Indiana Business University Bloomington IEEE Pervasive Computing IEEE Internet Computing Maria Ebling, IBM T.J. Watson IEEE Cloud Computing M. Brian Blake, University of Research Center Mazin Yousif, T-Systems Miami International Computing in Science IT Professional & Engineering San Murugesan, BRITE George K. Thiruvathukal, Loyola Professional Services University Chicago IEEE Intelligent Systems IEEE Security & Privacy Daniel Zeng, University of Arizona Shari Lawrence Pfleeger, Dartmouth College www.computer.org 1 AUGUST 2015 • VOLUME 1, NUMBER 8

THEME HERE 20 32 35 The Then a Internet of Approximation Miracle Occurs Cores Tower in Computational Science 4 on Transactions: Increasing Interconnection Network Throughput with Virtual Channels STEPHEN W. KECKLER 7 Editor’s Note: Focus on Software 8 Invention, Innovation, and New ALAN SILL 12 “Curiouser and Curiouser!”—The Fallout from Alice BRIAN M. GAFF 15 Software Process versus Design Quality: Tug of War? GIRISH SURYANARAYANA, TUSHAR SHARMA, AND GANESH SAMARTHYAM 20 The Approximation Tower in Computational Science: Why Testing Scientific Software Is Difficult KONRAD HINSEN 26 Do We Need a Software Czar? DAVID ALAN GRIER 27 Architecture Haiku MICHAEL KEELING 32 Then a Miracle Occurs GRADY BOOCH

35 Internet of Cores SAEID ABOLFAZLI, ZOHREH SANAEI, AND IRENA BOJANOVA

40 Designing Resource-Aware Cloud Applications REINER HÄHNLE AND EINAR BROCH JOHNSEN 44 Connected Tools in Digital Design CHRISTIAN WEICHEL, JASON ALEXANDER, ABHIJIT KARNIK, AND HANS GELLERSEN 49 Silver Bullet Talks with Brian Krebs GARY MCGRAW 55 Crowdfunding for Ubicomp Products: Interviews with Amanda Williams and Khai Truong 44 ALBRECHT SCHMIDT 60 Inside Technology: Descaling Your Scrum Connected JIM COPLIEN Tools in Digital Design Departments 5 Magazine Roundup 62 Career Opportunities SPOTLIGHT ON TRANSACTIONS Increasing Interconnection Network Throughput with Virtual Channels

Stephen W. Keckler, NVIDIA and University of Texas at Austin

This installment highlighting the work published in IEEE Computer Society journals comes from IEEE Transactions on Parallel and Distributed Systems.

nterconnection networks form the backbone of scalable ( its) that transit the network like train cars. When a mes- computer systems, including high-performance com- sage reaches a congested point, its ˜its reside in the virtual puters and datacenters. High-performance networks channel bu—ers, leaving the free for messages belong- must provide high throughput and bandwidth while de- ing to other virtual channels. The decoupling of bu—ering Ilivering messages with minimal latency. from links in virtual channels enables deadlock-free rout- As processors that connect to the network inject more ing algorithms and the passing of blocked messages in the messages, the network load rises and can cause two poten- network, using otherwise idle link resources. With virtual tial deleterious conditions: network deadlock—where mes- channels, a system doesn’t incur the link cost of multiple sages are blocked in the network and cannot progress—and networks and can more easily multiplex traƒc from di—er - an exponential increase in end-to-end latency, as messages ent ˜ows over a single set of physical links. must wait in the network for prior messages to be delivered. The network architect’s job is to deliver high bandwidth and low latency for the largest network load possible, but with irtual channels have been extremely in˜uential limited cost and power. in the theory and implementation of interconnec- Before the  s, scalable computing systems were typ- Vtion networks. Almost every high-performance ically built with two separate networks to avoid deadlock. network designed since the publication of “Virtual Chan- These networks were often assigned to “request” and “reply” nel Flow Control” uses virtual channels. Examples include traƒc classes, and messages in separate classes did not inter- the Cray TŠD, TŠE, BlackWidow, and Aries networks, as fere as they progressed through the network. The networks well as the IBM BlueGene L, P, and Q networks. Virtual had their own individual wires to ensure that reply messages channels are also critical to preventing deadlock in adap - did not get stuck behind request messages. Unfortunately, tive routing algorithms that are prevalent today. this approach increases network cost by doubling the num- Dally’s work constituted a fundamental advance in ber of wires, and can leave links idle as congestion rises. interconnection network architecture that provided bet- In “Virtual Channel Flow Control” (IEEE Trans. Parallel and ter capability and performance while reducing both cost Distributed Systems, vol. Š, no. ‹, ‹, pp. Œ–‹ ‘), William J. and complexity. Dally proposed an alternate approach to alleviate deadlock and provide better network performance. Virtual channels include two or more virtualized networks that share the STEPHEN W. KECKLER is the senior director of architec- ture research at NVIDIA and an adjunct professor at the physical wire links and routers, but have their own bu—er University of Texas at Austin. Contact him at skeckler@ storage for in-˜ight messages. In modern interconnection cs.utexas.edu. networks, messages are decomposed into ˜ow-control digits

4 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE 10 COMPUTER PUBLISHED BY THE IEEE COMPUTER SOCIETY 0018-9162/15/$31.00 © 2015 IEEE

r7tra.indd 10 6/25/15 2:19 PM CS FOCUS

Magazine Roundup

insights improve our under- standing of what motivates peo- ple to make healthy changes throughout their lives. IEEE Inter- net Computing’s July/August 2015 special issue on continu- ous digital health reviews advances in wireless, connected, and mobile health research. he IEEE Computer IEEE Software Society’s lineup of 13 Computing in Science & Tpeer-reviewed technical Over the years, Web software Engineering magazines covers cutting-edge has become more widely used, topics ranging from software including for mission-critical Scientists and engineers con- design and computer graphics tasks. This makes developing stantly face new challenges, to Internet computing and secu- secure software that preserves despite myriad advances in rity, from scientifi c applications privacy particularly important. computing. New technology and machine intelligence to However, doing so is increas- advances have empowered the cloud migration and microchip ingly challenging because Web general public to participate manufacturing. Here are high- software is becoming more in the scientifi c process via lights from recent issues. complex. This and related sub- individual and computational jects are addressed in IEEE Soft- resources, which could help Computer ware’s July/August 2015 special alleviate these challenges. This issue on security and privacy is called citizen science and Self-aware and self-expressive on the Web. is the subject of CiSE’s July/ systems support eff ective, August 2015 special issue. autonomous, and self-adaptive IEEE Internet Computing behaviors, fostering advanced IEEE Security & Privacy intelligent decision making in Connectivity, interoperability, dynamic and uncertain environ- sensing, and instant feedback via Biometrics are easier to utilize ments. These systems are the smartphones provide new oppor- than long text passwords on topic of Computer’s July 2015 tunities for gaining insights into mobile devices. However, the special issue. our health-related behavior. Such approach must be implemented

2376-113X/15/$31.00 © 2015 IEEE Published by the IEEE Computer Society August 2015 5 CS FOCUS properly, and users might want to authors of “Identifying Adverse while researchers measure and think twice until biometric authen- Drug Events from Patient Social observe their interactions. In “Liv- tication can be proven secure and Media: A Case Study for Diabetes,” ing Labs for Pervasive Healthcare reliable. These issues are addressed from IEEE Intelligent Systems’ May/ Research,” from IEEE Pervasive in the article “Biometric Authenti- June 2015 issue, developed a novel Computing’s April–June 2015 issue, cation on Mobile Devices” from information-extraction frame- the authors focus on several spaces IEEE S&P’s May/June 2015 issue. work that has signifi cantly outper- instrumented to design and evalu- formed prior work in this area. ate pervasive healthcare systems IEEE Cloud Computing and applications. IEEE MultiMedia Security concerns related to man- IT Professional aging data, applications, and inter- Food is an emerging topic of inter- actions limit the rapid, large-scale est for the multimedia community. “Internet of Things Perspectives,” in deployment of cloud-based ser- Projects in this area have focused on IT Pro’s May/June 2015 issue, off ers vices. The article “Security and Pri- tracking people’s food intake, with an expert opinion on two important vacy in Cloud Computing: Vision, the aim of improving health. The Internet of Things (IoT) issues: Trends, and Challenges,” from authors of “FoodLog: Multimedia an IoT research agenda for ensur- IEEE Cloud Computing’s March/ Tool for Healthcare Applications,” ing the development of a trusted, April 2015 issue, explores the vari- from IEEE MultiMedia’s April–June secure, reliable, and interoper- ous challenges to, approaches for, 2015 issue, developed a multime- able net-centric computing envi- and limitations of cloud security dia food-recording tool that off ers ronment; and the IoT as a human and privacy. a novel method for recording daily agent, extension, and complement. intake. It could also be used in other IEEE Computer Graphics and healthcare-monitoring apps. IEEE Micro Applications IEEE Annals of the History of IEEE Micro’s May/June 2015 spe- The IEEE VIS 2014 workshop Computing cial issue on the 2014 top picks in program off ered a unique peek presents at emerging data-visualization “Notes on the Evolution of Com- 12 articles that describe novel, research topics. IEEE CG&A’s May/ puter Security Policy in the US exciting research in diverse areas June 2015 special section―titled Government, 1965–2003,” in IEEE including reconfi gurable logic, “Data-Driven Discoveries: Pushing Annals’ April–June 2015 issue, dis- hardware acceleration, design for Visualization Research Further”― cusses White House, congressional, correctness and verifi cation, non- showcases two research pieces and Department of Defense cyberse- volatile memory, high-throughput from the workshop that push the curity policy documents. The docu- computing, and programmability- state of the art to enable data-driven ments suggest that early legislative enhancing frameworks. discoveries with visualization. approaches’ focus on privacy and innovation might have complicated Computing Now IEEE Intelligent Systems security improvements. The Computing Now website Social media sites for medical IEEE Pervasive Computing (http://computingnow.computer. patients have emerged as major org) features up-to-the-minute platforms for discussion of treat- Living laboratories are real-life computing news and blogs, ments and drug side eff ects, settings with embedded heteroge- along with articles ranging from making them a promising source neous technology in which subjects peer-reviewed research to opinion of information for analysis. The can conduct everyday activities pieces by industry leaders.

6 ComputingEdge August 2015 EDITOR’S NOTE

Focus on Software

n this month’s ComputingEdge, we look at and trends that are emerging from both standards some of software’s many complex, important organizations and software companies. I issues. For example, there have long been An architecture haiku captures software sys- discussions about the eff ect that closely following tem architecture’s most important details on a software life-cycle processes can have on software single piece of paper, to help development teams quality. This is the focus of “Software Process focus on essential issues. IEEE Software’s “Archi- versus Design Quality: Tug of War?,” from IEEE tecture Haiku: A Case Study in Lean Documenta- Software. tion” examines this approach. For the general public, how software is made ComputingEdge articles on topics other than remains a mystery. In “Then a Miracle Occurs,” software include: IEEE Software columnist Grady Booch says devel- oping software-intensive systems is like many • IEEE Internet Computing’s “Lest We Forget,” other things but also like no other thing. in which author Vinton Cerf discusses how Software patents have been a controversial digital information can be preserved for future topic for years. Computer’s “ ‘Curiouser and access; Curiouser!’―The Fallout from Alice” looks at the • IEEE Pervasive Computing’s “Crowdfunding for ramifi cations of last year’s US Supreme Court Ubicomp Products: Interviews with Amanda decision on the subject in Alice Corp. v. CLS Bank Williams and Khai Truong” explores what it International. takes to exploit crowdfunding to turn an idea There are people who say something must be into a product; done because eff orts to produce open, fl exible, and • IEEE Security & Privacy’s “Silver Bullet Talks reusable software have failed. This is addressed in with Brian Krebs” is an interview with a well- Computer’s “Do We Need a Software Czar?” known information security reporter and “The Approximation Tower in Computational blogger; Science: Why Testing Scientifi c Software Is Dif- • Computer’s “Designing Resource-Aware Cloud fi cult,” in Computing in Science & Engineering, Applications” examines how the cloud requires uses a solar-system simulation to help explain a rethinking of software development; and approaches to solving the thorny problem of test- • IT Professional’s “Internet of Cores” addresses ing scientifi c software. a new approach for provisioning on-demand IEEE Cloud Computing’s “Invention, Innovation, elastic computing and storage resources to and New APIs” explores new API developments people and things anywhere, anytime.

2376-113X/15/$31.00 © 2015 IEEE Published by the IEEE Computer Society August 2015 7 STANDARDS NOW

ries on the history of the telephone, series host David McCullough invited viewers to consider the Invention, astonishing period of technological innovation that took place in the late 19th century, leading to conse- quent changes throughout the globe:

Innovation, and All at once, in a great inventive surge came the light bulb, the refrigerator, electric street cars, barbed wire, the typewriter, the elevator, skyscrapers, the horseless car- New APIs riage—all in about thirty- ve years, plus one other extremely important contribution that would change our whole way of talking to each other—the telephone.1

COMPUTING STANDARDS MUST KEEP UP The success of each of these innovations re- WITH THE PACE OF CHANGE IN SOFTWARE quired standards to be invented and adopted. Elec- AND HARDWARE DEVELOPMENT TO RE- tricity required reproducible components that would MAIN RELEVANT AND USEFUL. This requires t together, and choices had to be made in terms of paying attention to methods by which such innova- voltage, physical sockets, and connection interfaces. tions are created, adopted, updated, and socialized Units of usage in terms of billable measurements within their target user communities. Signi cant and metrics had to be standardized and adopted. changes are already taking place in practice, led by Standardized streetcar designs and rail widths had work from individual contributors as well as formal to be adopted or migrated from similar technologies and informal organizations. and had to be uniform at least within each city or In this issue, I cover some recent developments region in which the lines ran. in application programmer interfaces (APIs) and Each such innovation created a corresponding factors that affect them, and explore new trends that need for development of standards in material com- are emerging from both standards organizations and position, tooling, gauges, and associated measure- software companies to keep their work up to date, ments and metrics. Standardized machinery and relevant, and successful. component designs, material strengths, and other engineering details were used as the basis for growth How Standards Influence the Pace of Change in this astonishing period of invention and adoption. Introducing a lm in the American Experience se- New industrial techniques came into use in a wide variety of arenas far beyond those in which they were initially created and applied, partly because industrialized and standardized components could be designed and mass-produced using methods that could easily be adapted for use in other areas. This cross-fertilization of industrial engineer- ing standards allowed invention in other elds to spin into being rapidly, with advances in one area feeding quickly into adoption and progress in oth- ALAN SILL ers. As a result, audio recording, radio transmission, moving lms, television, and, decades later, digital Texas Tech University, processing, , and the Internet came into [email protected] existence, all the result of this incredible period of concentrated cross-domain multidisciplinary expan-

8 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE 6 IEEE CLOUD COMPUTING PUBLISHED BY THE IEEE COMPUTER SOCIETY 2325 6095/15/$31.00 © 2015 IEEE

d2sta.indd 6 7/13/15 10:25 AM sion and invention. Standards were at for automated tasks and for machine- At the time that I’m writing this the core of this technological revolution. mediated communication. column, there are more than 13,000 Although machine-to-machine com- APIs registered on a popular web- Invention, Innovation, and munication might seem to be the pri- site that catalogs such things (http:// Serendipity mary function for APIs in cloud and programmableweb.com). Many of these Progress can take unanticipated turns. distributed computing, signi cant as- offer little more in terms of design than Rather than trying to invent the tele- pects of current designs are driven by access to the data available at a par- phone, Bell was trying to develop his the need for humans to understand the ticular website through programmable idea for a multiwavelength version of the characteristics of the resulting commu- methods. Others are deeply compli- simpler telegraph, with each coded sig- nication patterns. The “P” in API is of cated interfaces to engines of state for nal carried as modulations on its own course the programmer, and the design complex cyberinfrastructures. separate sound frequency.1 If he had of APIs is largely inuenced by the need The picture I’ve drawn is good as succeeded, this would have provided the for programmers to be able to manage a general overview. At a more detailed logical precursor for modern multiwave- their use, even in highly automated and level, part of the reason that this pat- length communications, a technology complex settings. tern is successful is that it coexists with that is used now in a different but sub- stantially similar way on essentially all long-distance optical ber connections. Direct sound transmission proved The invention of the RESTful API more popular with the public and with investors than a multiplexed version of could stand out as one of the most the telegraph. As a result, an entire new important elements of 21st century eld of communication was invented in change in both software development a period that could be characterized in and standards. modern terms as “disruptive.” Telecom- munications did not stand alone among the innovations of this period, but played a crucial role in allowing these develop- ments to be useful to human interaction. Representational state transfer other ways of accomplishing things. Future scholars might look back on (REST) became popular as a design pat- A variety of data formats and transfer the period of change that we’re living tern for APIs over previous models part- protocols can be used successfully to through now, and seek key elements that ly because it’s easier to understand the augment, supplement, and extend this were agents of change in the same way individual and collective interactions design pattern or to completely replace that electricity and the telephone fun- between multiple automated systems it if necessary. Beyond JSON and XML, damentally altered the nature of society than other formally de ned systems. over twenty other data formats are ac- in the 19th century. When they do so, Although REST design patterns can ob- cepted in the prede ned list for APIs the invention of the RESTful API could viously be implemented using any trans- registered on programmableweb.com, stand out as one of the most important port protocol, the use of hypertext and and while REST-over-HTTP is present- elements of 21st century change in both hypermedia written in human-readable ly popular, it coexists with many other software development and standards. formats, along with relatively readable older approaches that remain workable data formats such as JavaScript Object and usable. A successful paradigm will APIs for Automation Notation (JSON) and Extensible Mark- accommodate all of these methods. and Machine-to-Machine up Language (XML), allows relatively Along the way, certain design pat- Communication easy creation and debugging for inter- terns have emerged to rationalize the The fundamental paradigms for APIs faces that use these tools. Consequent- ability for programmers to provision and have been explored in this column and re- ly, REST-over-HTTP using JSON and/or advertise features of APIs in automated lated articles in previous issues. Let’s con- XML data formats is now the dominant ways. As I’ve discussed in previous issues, centrate for a moment on the use of APIs design pattern for new APIs. these include Swagger (http://swagger.io),

www.computer.org/computingedge 9 MARCH/APRIL 2015 IEEE CLOUD COMPUTING 7

d2sta.indd 7 7/13/15 10:25 AM STANDARDS NOW

API Blueprint (http://apiblueprint.org), band factors, the model develops some continues to grow in importance, infor- and the RESTful API Markup Language weaknesses that are hard to correct or mation about transitions in state that (RAML; http://raml.org). There are even address in purely RESTful terms. These take place out of the context of the API products emerging that allow developers weaknesses are not limited to REST itself must necessarily also be conveyed. to generalize these API speci cation rule (they could be present using other com- Even this very brief overview gives engines and treat them as plug-ins to munication models, such as SOAP), enough information to conclude that software development processes. but they produce a variety of symptoms APIs will have to become more com- It’s therefore worth looking now that lead to further discussion of the plex, should probably be rewritten to at current trends in API design to see model. In addition, many API usage optimize at least some portions of com- if human readability and RESTful fea- patterns are now called RESTful even munication for machine readability tures can be expected to continue to if they’re simply Web-based APIs that even at the expense of human readabil- dominate API design in the future, or communicate over HTTP, even if they ity, and will have to carry more complex and richer information about asynchro- nous changes in state than were usually the case in simple Web-oriented HTTP communications. The need to express state changes quickly and in a nonserial fashion is Elements of Future API Design It’s hard to see how the present picture, being built into future versions of the which is currently so successful in dis- HTTP protocol. tributed computing design, can last in the face of this onslaught of complexity. It’s also dif cult to see how things can change quickly from the situation I’ve described, given the enormous number whether this may be a temporary state don’t conform to Roy Fielding’s original of ways in which these design patterns of affairs in the evolution of machine- concepts.2 have been successful. to-machine communication and the de- The point to be made here is that One element that might contribute sign of automated systems. the great multiplicity and ubiquity of to future evolution in API design is al- use of APIs, and even of development ready under way. The need to express API Usage and the Problem patterns that allow automated produc- state changes quickly and in a nonse- of State tion and discovery of API features, are rial fashion is being built into future REST came into being to allow com- driving software development in the versions of the HTTP protocol. At the munication of state changes, primarily direction of machine usability, rather time of this writing, the HTTP/2 and for Web applications, through hyper- than human readability, becoming the HPACK nal drafts are working their media. This model works well when the primary factor in the production and way through publication after receiving state being conveyed is in the form of use of APIs. Although speci cations nal approval as standards-track IETF presentation of new information or the have emerged, and standards in API documents.3,4 expression of state transitions in infor- patterns are important, this factor more Changes in HTTP/2 over previous mation on either end of a communica- than any other is driving the evolution versions include binary instead of tex- tion pipeline that can be carried in a in this area. tual representations; fully multiplexed, single communication. The basic rule Further complications arise when instead of ordered and blocking com- in REST design is that changes in ap- we consider that a large and growing munications that can therefore use as plication state must be carried and ex- number of APIs aren’t simply limited little as one connection for parallelism; pressed through hypermedia. to addressing the problem of data ex- the use of header compression to re- When used for machine control or change. As the Internet of Things grows duce overhead; and provisions that al- manipulation of information that might around us, and as the use of automated low servers to push responses into client be inuenced in other ways by out-of- and autonomous systems in cyberspace caches rather than wait for the client

10 ComputingEdge August 2015 8 IEEE CLOUD COMPUTING WWW.COMPUTER.ORG/CLOUDCOMPUTING

d2sta.indd 8 7/13/15 10:25 AM to issue pull requests. These features by addressing network end-points, and 2. J. Louvel, “RESTistential Crisis are primarily aimed at allowing con- to secure these objects independently over Hypermedia APIs,” InfoQ, ventional Web communications to take as opposed to securing the connection 31 Mar. 2014; www.infoq.com/ place more quickly and replace previous used to retrieve them. news/2014/03/rest-at-odds-with-web efforts, such as SPDY, for this purpose, When combined with other related -apis. but it’s easy to see the potential to apply concepts, such as -based single- 3. R. Peon and H. Ruellan, “HPACK: them to API design. instance instances for automa- Header Compression for HTTP/2,” In general, HTTP/2 will be back- tion and control, existing approaches IETF working draft, work in prog- ward compatible and can be used with- to problems of state transition, man- ress, Feb. 2015. out impacting existing HTTP-based API agement, and security could radically 4. M. Belshe and R. Peon, “Hypertext models. Inspecting the list of features be altered by such methods, especially Transfer Protocol version 2,” IETF makes it clear, however, that they rep- in Internet-of-Things and autonomous working draft, work in progress, resent a step in the direction of more computing settings. Feb. 2015. API- and control-friendly protocols for The approaches I’ve described can machine-to-machine communication. thus lead to a reexamination of the As an example, Google has already be- basic design patterns of REST ver- ALAN SILL directs the US National Sci- gun to build on HTTP/2 and to extend sus object orientation versus service ence Foundation Center for Cloud and beyond it in its gRPC remote procedure orientation in machine-to-machine Autonomic Computing site at Texas Tech call interface (www.grpc.io). This inter- communication, and even of Internet University, where he is also a senior scien- face indicates the possibility of future addressing itself, but ultimately bring tist at the High Performance Computing trends in that it isn’t primarily intended us back to consider topics that are more Center and adjunct professor of physics. for use in browser settings. It includes closely related to innovation, serendip- Sill holds a PhD in particle physics from high-level features that HTTP libraries ity, and invention. After all, many years American University and is an active typically don’t provide, such as interac- in the future, when we look back at this member of IEEE, the Distributed Man- tion with ow control at the applica- period, wouldn’t it be nice if we could agement Task Force, TeleManagement tion layer, cascading call cancellation, view it not only as a period of disrup- Forum, and other cloud standards work- and provisions for load balancing and tion, but also one of great understand- ing groups, and serves either directly or as failover within the protocol itself. It ing and forward progress? liaison for the Open Grid Forum on sev- diverges in other signicant ways also eral national and international standards from pure REST conventions (www roadmap committees. He serves as vice .grpc.io/faq). WHAT DO YOU THINK THE DE- president of standards for the Open Grid Proposed changes in network ad- SIGN PATTERN FOR THE BUILD- Forum and co-chairs the US National dressing are also being considered that ING BLOCKS OF FUTURE API Institute of Standards and Technology’s have implications for content delivery CONTROL SHOULD BE? Are we on “Standards Acceleration to Jumpstart and for the design of APIs. Examples the right track, and if not, what do you Adoption of Cloud Computing” working of such proposals would include the US think should change? Please respond group, and is one of the organizers of the National Science Foundation’s Named with your opinions on this topic or on ongoing developer-oriented Cloud In- Data Networking project (NDN, http:// previous columns, and include any news teroperability Plugfest series of meetings. named-data.net), which aims to pro- you think the community should know For further details, visit http://cac.ttu.edu vide a future Internet architecture that about standards, compliance, or related or contact him at alan.sill@standards that would function as a distribution topics. I can be reached for this purpose -now.org. network, and in effect be a replace- at [email protected]. ment for existing network functional- ities at layer 3. Another example is the References Content-Centric Networking approach 1. “The Telephone,” American Expe- This article originally appeared in (CCN, http://www.ccnx.org/), which is rience, PBS Video, WGBH Boston, IEEE SelectedCloud Computing, CS articles and columns designed to deliver content objects di- 1997; www.pbs.org/wgbh/amex/ vol. 2,are no. also 2, available 2015. for free at http:// ComputingNow.computer.org. rectly by name-based URIs instead of telephone/index.html.

www.computer.org/computingedge 11 MARCH/APRIL 2015 IEEE CLOUD COMPUTING 9

d2sta.indd 9 7/13/15 10:25 AM COMPUTING AND THE LAW

“Curiouser and Curiouser!”—The Fallout from Alice

Brian M. Ga , McDermott Will & Emery, LLP

The ramifications of last year’s US Supreme Court decision in Alice Corp. v. CLS Bank

International concerning software patentability For an expanded discussion on have become apparent as other courts grapple this topic, listen to the podcast that accompanies this column at www with and implement that decision. .computer.org/computing-and -the-law.

n  June , the US Supreme Court decided ALICEA QUICK REVIEW in Alice Corp. v. CLS Bank International that pat- Alice Corp., a nancial services rm, accused CLS of in- ents on computerized methods for nancial fringing its computerized nancial trading patents. CLS trading were invalid. Many observers were argued that the patents were invalid because their subject Ohoping that the decision would provide much-needed matter—computerized methods—wasn’t patentable. The clarity on whether software was patentable. Supreme Court issued a unanimous decision to uphold two Generally speaking, the Alice decision didn’t provide that lower courts’ rulings that the patents were invalid. clarity. However, lower courts—which are bound to follow The Supreme Court looked to section  of US patent that decision—have provided guidance on the application law, which says that “any new and useful process, ma- of Alice and its scope as they have ruled in other patent cases. chine, manufacture, or composition of matter, or any new and useful improvement thereof” is eligible for a patent. However, for more than Ž years, the Court has said that See www.computer.org/computer-multimedia laws of nature, physical phenomena, and abstract ideas ar- for multimedia content related to this article. en’t patentable. These exceptions have blocked patents on, for example, an algorithm for converting binary-coded

12 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE 12 COMPUTER PUBLISHED BY THE IEEE COMPUTER SOCIETY 0018-9162/15/$31.00 © 2015 IEEE EDITOR BRIAN M. GAFF COMPUTING AND THE LAW McDermott Will & Emery, LLP; bga @mwe.com

decimal numbers into binary form and the other cases, it invalidated the pat- instructions. The court reiterated this a mathematical formula for comput- ents. Though they’re based on a small by invalidating a patent that covered a ing alarm limits for a catalytic conver- sample size, those statistics don’t bode scanning method used in an automatic sion process, which the Court found to well for patents that cover nothing teller machine to recognize amounts be abstract ideas. Similarly, in ’s more than computerized versions of on checks being deposited. The court Bilski v. Kappos, the Court said that a basic processes. That’s consistent with noted that data collection, recogni- method for buyers and sellers of en- the second step of the Supreme Court’s tion, and storage are well-known, and ergy-market commodities to protect test: if the patent claims don’t add having a computer perform those steps themselves against the risk of price something signiˆcant to the process, didn’t add anything signiˆcant to ren- changes wasn’t eligible to be patented then those claims are likely invalid. der the method eligible for a patent. because it was an abstract idea. The Court arrived at its decision in Alice using a two-step test. First, it determined that the subject matter Avoid writing patent claims that describe claimed in Alice Corp.’s patents was like that in Bilski and thus wasn’t eli- using a generic computer, generic hardware, gible for a patent. Second, the Court and generic commands to implement found that the claimed methods were common methods. implemented on a generic computer that used generic computer parts (for example, “data storage unit” and “com- Over the past year, some of the The one case in which a software munication controller”); these added subject matter that the Federal Cir- patent’s validity was upheld involved “nothing of substance to the underly- cuit said was unpatentable includes website design, speciˆcally a method ing abstract idea,” e„ectively invali- methods of reducing distortion in im- of generating a composite webpage. dating the patents at issue and ending age processing. The court ruled that The court distinguished this patent Alice Corp.’s infringement suit. this amounted to nothing more than from others by noting that it aimed to The Alice decision didn’t provide a manipulating existing data using an solve a speciˆc computer-related prob- clear and universal yes or no answer algorithm. The court also invalidated lem, namely, “a way to automate the to the question of whether software a patent on a computerized bingo creation of a composite webpage.” is patentable. Instead, the decision game on the grounds that it was only Looking at how the Federal Circuit showed how to apply a test to answer a series of mental steps implemented made these decisions, one takeaway that question on a case-by-case basis. by a computer. is to avoid writing patent claims that Many patents challenged under describe using a generic computer, THE DECISIONS Alice relate to using the Internet in generic hardware, and generic com- The US Court of Appeals for the Federal conjunction with well-recognized pro- mands to implement commonplace Circuit hears all appeals of rulings and cesses or methods. Not surprisingly, methods. Such claims are likely to verdicts in patent cases in the US. It is the Federal Circuit has been critical be found ineligible. Instead, con- one step above federal district courts, of those patents. For example, it ruled sider claims that describe modifying where most patent cases are tried, that a method of showing an advertise- a computer’s operation in response and one step below the US Supreme ment before showing free content on to certain conditions. Some district Court. In the year since the Supreme the Internet wasn’t eligible for a pat- court decisions seem to endorse this Court ruling on Alice, the Federal Cir- ent. Similarly, it ruled that providing a approach, ˆnding processes that real- cuit issued a handful of decisions that sales guarantee for an online transac- locate computer memory or improve applied Alice to di„erent cases with tion wasn’t patentable. computer performance to be eligible di„erent facts. Those decisions reveal These last examples show that the for a patent. Alice’s scope. Federal Circuit has disfavored pat- Among this ˆrst group of cases that ents that, in e„ect, take a well-known THE DISMISSALS the Federal Circuit considered since or basic process and implement it Typically, a patent case gets to the Alice, only once has the court upheld on a generic computer using generic Federal Circuit after many months, the validity of the patent at issue; in computer hardware and generic if not years, of litigation in district

www.computer.org/computingedge 13 JULY 2015 13 COMPUTING AND THE LAW

court. Invoking Alice early in a patent case before signicant costs are in- your attorney will help to determine infringement lawsuit might short-cir- curred. District courts appear willing whether this tactic is appropriate. cuit some of this litigation and end it to consider and rule on these motions more quickly. promptly, probably because it gives One way to resolve a lawsuit before the courts the opportunity to quickly lice is a recent decision, and going to trial is to le a motion for dispose of cases that are based on many other cases are likely summary judgment. That motion asks questionable patents. Ato follow in which the lower a court to look at the facts as they cur- A patent owner whose infringe- courts will interpret and apply that rently stand and rule whether one or ment case is ended in district court decision under myriad factual situ- more issues in the case can be decided by a ruling in favor of the accused in- ations. We still don’t have a clear an- by the judge—not a jury—without fur- fringer’s summary judgment motion swer on software patentability, but the ther delay. Some summary judgment can appeal that result to the Federal Federal Circuit has given us solid guid- motions can resolve an entire case, Circuit. But as described above, the ance on how to adhere to the Supreme while others might address only parts statistics don’t bode well for the patent Court’s requirements. of the case. Summary judgment mo- owner. In addition, the Federal Circuit tions help limit the number of issues has generally approved of ling early that need to go to trial, making it eas- summary judgment motions based on BRIAN M. GAFF is a senior mem- ier for the jury to decide the case and Alice by stating that it’s unnecessary to ber of IEEE and a partner at the reducing litigation cost. wait to le until after the district court McDermott Will & Emery, LLP law Some parties who have been sued has construed the claims, which usu- firm. Contact him at bga@mwe.com. for infringement of patents that cover ally occurs much later in the lawsuit. computerized implementations of Early summary judgment motions basic processes have relied on Alice invoking Alice are a potent weapon Selected CS articles and to le summary judgment motions that an accused infringer might be able This articlecolumns originally are also available appeared for in free at http://ComputingNow that the patents are invalid. These to use. When confronted with a patent Computer, vol. 48, no. 7, 2015. .computer.org. motions are typically led early in the infringement lawsuit, consulting with

handles the details so you don’t have to!

Professional management and production of your publication Inclusion into the IEEE Xplore and CSDL Digital Libraries Access to CPS Online: Our Online Collaborative Publishing System Choose the product media type that works for your conference: Books, CDs/DVDs, USB Flash Drives, SD Cards, and Web-only delivery! Contact CPS for a Quote Today! www.computer.org/cps or [email protected]

14 ComputingEdge August 2015 14 COMPUTER WWW.COMPUTER.ORG/COMPUTER Editor: Cesare Pautasso University of Lugano INSIGHTS [email protected] Editor: Olaf Zimmerman University of Applied Sciences of Eastern Switzerland, Rapperswil [email protected] Software Process versus Design Quality Tug of War?

Girish Suryanarayana, Tushar Sharma, and Ganesh Samarthyam

“Something smells rotten in the state of our design.” This realization might come despite all good intentions behind choosing and following the “right” process. Don’t underestimate a process’s inadvertent effects on the resulting software design’s quality, as evidenced in two insightful stories from Girish Suryanarayana, Tushar Sharma, and Ganesh Samarthyam that are based on their recently published book on design smells. Enjoy! —Cesare Pautasso and Olaf Zimmermann, department editors

SOFTWARE LIFE-CYCLE PROCESSES requirements and design elements to en- provide a structured, disciplined way to sure the design’s completeness, helps en- guide the development of complex real- sure high- quality design.4,5 world software.1,2 These processes can However, our experience with design be primary (acquisition, supply, devel- smells in real-world projects and inter- opment, operation, and maintenance), views with software engineers from vari- supporting (for example, documenta- ous organizations6 have revealed a para- tion, con guration management, quality dox. Sometimes, a design exhibits smells assurance, reviews, audits, or problem because a software process (or combi- resolution), or organizational (manage- nation of processes) has inadvertently ment, infrastructure, improvement, and become a signi cant hindrance to high training).3 Our interests lie in software design quality, thus negating the ben- design, so we pose this question: Do e ts the process was meant to deliver. In software life-cycle processes (henceforth some cases, a process has actually un- simply called software processes) bene t dermined design quality. In these cases, software design? an approach that aims to address the de- The answer is a clear yes! For in- sign smells and improve the design qual- stance, a software process that recom- ity can’t merely rely on tactical refactor- mends periodic architecture and design ing of the design artifacts. It also must reviews to ensure the design quality, refactor the process, remove it, or intro- and supports traceability between the duce another process.

2376-113X0740- 7459/15/$31.00/15/$31.00 © 2015 © IEEE 2015 IEEE Published by the IEEE Computer Society JULY/AUGUST 2015 | IEEEAugust SOFTWARE 2015 7 15

s4ins.indd 7 6/11/15 3:47 PM INSIGHTS

form of the Duplicate Abstraction THREE SOFTWARE DESIGN SMELLS smell (see the sidebar). Surprisingly, Team B was aware of the extensive Here we look in more detail at the three design smells mentioned in the main code duplication but had made no ef- article. For more on them and other design smells, see Refactoring for Soft- fort to refactor the design. ware Design Smells.1 The consultant discovered that the lack of refactoring was due to the DUPLICATE ABSTRACTION process the project followed. To pre- This design smell has two forms. Identical name is when two or more abstrac- vent unwarranted modi cations that tions have identical names. Identical implementation is when two or more could negatively impact the product’s abstractions have semantically identical member de nitions, but the design functionality, the project relied on a hasn’t captured and used those implementations’ common elements. stringent process to control source code changes. Team A had to review INSUFFICIENT MODULARIZATION any code change made by Team B This smell arises when an abstraction hasn’t been completely decomposed before the change could be approved. and a further decomposition could reduce its size, implementation complex- This review focused on functional ity, or both. This smell has two forms. Bloated interface is when an abstraction correctness (from a domain perspec- has many members in its public interface. Bloated implementation is when an tive), not the code’s structural qual- abstraction has many methods in its implementation or has one or more meth- ity. This change approval process ods with excessive implementation complexity. was long and arduous and required multiple emails and telephone inter- MULTIPATH HIERARCHY actions between the teams. This smell arises when a subtype inherits both directly and indirectly from a To reduce the time to ratify supertype, causing unnecessary inheritance paths in the hierarchy. This com- changes that slowed the development plicates the hierarchy and increases developers’ cognitive load, thus reducing rate, Team B wanted to avoid this the hierarchy’s understandability. Furthermore, developers might overlook process as much as possible. Because existing implementations on the redundant paths and try to provide their own refactoring (including refactoring to implementation for the realized interface. In this process, they could provide a eliminate code clones) would involve considerably different implementation (or no implementation). Such mistakes only structural changes to the code can lead to run- time problems. So, this smell can impact reliability. without impacting the functional- ity, it seemed logical to avoid refac- Reference toring to avoid the change approval 1. G. Suryanarayana, G. Samarthyam, and T. Sharma, Refactoring for Software Design Smells: process. So, Team B wasn’t keen to , Morgan Kaufmann, 2014. Managing Technical Debt refactor the source code. In this case, the environment viscosity7 created by the process led to the software’s poor design quality. The consultant shared this nding in his nal report A key insight from these cases is (Team A) owned the code base. and suggested refactoring the change that software processes and design Team A included domain experts approval process. quality are inextricably intertwined. who had originally designed the The project management could To highlight this interplay, we ex- software. The development was off- have refactored the change approval amine the following two real-world shored to another team (Team B). process in several ways. For exam- cases. When an external consultant an- ple, they could have incorporated re- alyzed the code base after the release view of code quality into it. Instead, A Suboptimal Change of the software’s rst version, he they refactored it to have Team A Approval Process found smells in the design and code. ratify only new class additions and In a globally distributed software For instance, several classes suffered not every small change that Team B development project, a central team from the identical- implementation made. The project management be-

16 8 IEEE SOFTWAREComputingEdge | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE August 2015

s4ins.indd 8 6/11/15 3:47 PM INSIGHTS

lieved this would eliminate the vis- development for the third release. It An Ineffective Design cosity (by reducing the number of also explained why Team B didn’t Communication Process times the change approval process refactor these large classes immedi- Industrial software systems often was initiated), which in turn would ately after the release. Refactoring create complex domain objects to improve the design quality. them would have required introduc- ful ll complicated business require- Upon the release of the software’s ing smaller classes, which would ments. The initialization of such ob- second version, the consultant again have required going through the jects typically involves a sequence of analyzed the design quality. Surpris- change approval process. steps, including preinitialization and ingly, he found many more instances The project management could postinitialization. These two steps of the Insuf cient Modularization have addressed this problem in var- are crucial, and software developers smell (see the sidebar), compared ious ways. For instance, it could must remember to write an imple- to the rst release. For example, have refactored existing processes mentation for them. To ensure this, one class in the source code had ap- proximately 40,000 LOC, and the weighted methods per class (the sum of the cyclomatic complexities8 of a Software design quality is a function class’s methods) exceeded 2,000. The consultant found that part of of the effectiveness of the followed the root cause of the many instances process in a given context. of the Insuf cient Modularization smell was still the change approval process. Toward the software’s sec- ond release, the project management at the off- shore location became (for example, refactor the change a common practice is to create an concerned about the many bugs (in approval process to remove bottle- interface that encapsulates them and the order of hundreds) found dur- necks and improve the turnaround require developers to realize this in- ing testing, which posed a risk for time for change review). Or, it could terface in the classes corresponding timely delivery. To ensure that the have removed them (for example, to the domain objects. software was released on time, the remove the bug- target- setting pro- In this context, we share an an- project management assigned each cess so that developers don’t bypass ecdote in which one of us helped developer in Team B a target of x- change approval). Alternatively, or develop an application for creating ing four bugs every week. in combination with the ways we visually attractive user interfaces, Fearing that they would be con- just mentioned, the project manage- using the concept of gadgets. Figure sidered underperforming if they ment could have introduced a pro- 1a shows a fragment of the applica- couldn’t x four bugs per week, the cess (for example, introduce a local tion design wherein a TextGadget class members of Team B explored ways change approval process to speed up extends its parent class GadgetBase and to avoid the change approval process approval). realizes an ISupportInitialize interface. for new classes that bug xing might In this case, for the product’s This interface contains two meth- require. One easy way to avoid in- third release, the project manage- ods, preInitialize() and postInitialize(), that troducing classes was to insert new ment removed the bug targets. They must be de ned by TextGadget. code in existing classes. Because of also adopted a design quality gate Over time, the need arose to schedule pressures, many developers process that required each devel- support multiple gadgets such as adopted this workaround, which re- oper to run a set of design analyz- GraphicGadget and NumericGadget. The sulted in many Insuf cient Modular- ers on the portion of code he or she team realized that the implementa- ization instances. had modi ed, before checking-in the tion for preInitialize() and postInitialize() Because this workaround was code. This helped address the prob- remained similar across gadgets. convenient and the large classes pro- lem signi cantly, and the number of So, the team decided that instead duced no immediate runtime effects, smells drastically decreased during of each gadget separately realizing it evolved into a bad habit during the third release. ISupportInitialize, GadgetBase could itself

www.computer.org/computingedge JULY/AUGUST 2015 | IEEE SOFTWARE 9 17

s4ins.indd 9 6/11/15 3:47 PM INSIGHTS

from the Multipath Hierarchy design <> smell (see the sidebar). lSupportInitialize In short, this design smell arose Planned +preInitialize() because the process used to commu- +postInitialize() transformation nicate design decisions and changes (b) to all the team members wasn’t ef- GadgetBase fective. A more potent process aligned with the agile methodology <> lSupportInitialize would have employed multiple com- +preInitialize() TextGadget NumericGadget munication modes to convey design GadgetBase +postInitialize() decisions. For example, it would have additionally used emails or <> lSupportInitialize lightweight knowledge management systems such as wikis to document TextGadget +preInitialize() +postInitialize() all design decisions so that they were Actual always available to the entire team.9 (a) transformation (c) GadgetBase hese two cases highlight the process–quality para- dox: software processes TextGadget NumericGadget T are designed to bring discipline to software development and intend FIGURE 1. Planned versus actual transformation in the TextGadget class hierarchy. to help achieve and maintain high- (a) A fragment of the original application design wherein TextGadget extends its parent quality software design. However, class GadgetBase and realizes an ISupportInitialize interface. (b) Instead of each gadget some software processes (because separately deriving from ISupportInitialize, GadgetBase realizes ISupportInitialize and provides of how they’re implemented or the the default implementation in the planned refactoring. (c) However, in the realized design, project conditions) turn out to be NumericGadget extends GadgetBase and unnecessarily realizes ISupportInitialize. This design cumbersome or porous, leading fragment suffers from the Multipath Hierarchy design smell. to situations that can decrease de- sign quality. Software design qual- realize ISupportInitialize and provide the decisions during stand- up meetings. ity is a function of the effectiveness default implementation of preInitialize() It explicitly documented only the ar- of the followed process in a given and postInitialize() (see Figure 1b). chitectural design decisions10 (such context. So, such situations require However, the developer entrusted as introducing a new layer or chang- us to introduce, tune, or refactor with implementing NumericGadget was ing the middleware being used) in existing processes to achieve and on leave when the rest of the team the architecture speci cation. In this maintain high design quality. In discussed this new design. By the case, the team considered that hav- conclusion, these cases lead to the time he returned, the old design had ing GadgetBase directly implement ISup- following insights. been refactored and the new design portInitialize wasn’t an architectural de- First, all the relevant stakeholders was in place. Unfortunately, no one cision, so the team didn’t explicitly need to recognize the interplay be- told him about this design decision. document this design change. tween software processes and design This situation occurred because Because the developer was un- quality. the project followed an agile method- aware of the noncritical design de- Second, development teams must ology and subscribed to the principle cisions, he implemented NumericGadget periodically evaluate design quality that individuals and interactions are using the old paradigm. That is, Nu- (for instance, by looking for design more important than detailed docu- mericGadget extended GadgetBase and re- smells). If the quality is poor, teams mentation.9 Speci cally, the team alized ISupportInitialize (see Figure 1c). must determine whether any soft- discussed and communicated design The resulting design thus suffered ware process is the cause.

18 10 IEEE SOFTWAREComputingEdge | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE August 2015

s4ins.indd 10 6/11/15 3:47 PM INSIGHTS

Finally, if the cause of poor de- cesses, IEEE, 2008. GIRISH SURYANARAYANA is a senior sign quality is process- related, teams 4. M.E. Fagan, “Design and Code Inspec- research scientist at the Corporate Research and tions to Reduce Errors in Program Devel- can address it by refactoring or re- Technologies Center, Siemens Technology and opment,” IBM Systems J., vol. 38, nos. Services Private Ltd., India. He’s a member of moving an existing process or intro- 2–3, 1999, pp. 258–287. the IEEE Software advisory board. Contact him at ducing a new one, as we mentioned 5. G. Samarthyam et al., “MIDAS: A Design [email protected]. Quality Assessment Method for Industrial before. Refactoring a process might Software,” Proc. 2013 Int’l Conf. Soft- include identifying and removing the ware Eng. (ICSE 13), 2013, pp. 911–920. TUSHAR SHARMA is a technical expert at the obstacles that directly or indirectly 6. G. Suryanarayana, G. Samarthyam, and T. Corporate Research and Technologies Center, Sharma, Refactoring for Software Design hamper good quality. Siemens Technology and Services Private Ltd., Smells: Managing Technical Debt, Morgan India. Contact him at [email protected]. Kaufmann, 2014. 7. R.C. Martin, Agile Software Develop- References GANESH SAMARTHYAM is an independent ment: Principles, Patterns, and Practices, 1. N.S. Potter and M.E. Sakry, Making consultant and a corporate trainer. Contact him Process Improvement Work: A Concise Addison- Wesley, 2003. at [email protected]. Action Guide for Software Managers and 8. T.J. McCabe, “A Complexity Measure,” Practitioners, Addison- Wesley, 2002. IEEE Trans. Software Eng., vol. 2, no. 4, 2. D. Damian et al., “An Industrial Case 1976, pp. 308–320. Study of Immediate Bene ts of Require- 9. M. Paasivaara, S. Durasiewicz, and C. Las- ments Engineering Process Improve- senius, “Using Scrum in Distributed Agile ment at the Australian Center for Unisys Development: A Multiple Case Study,” Software,” Empirical Software Eng., vol. Proc. 4th IEEE Int’l Conf. Global Soft- 9, nos. 1–2, 2004, pp. 45–75. ware Eng. (ICGSE 09), 2009, pp. 195–204. This articleSelected originallyCS articles and appeared columns in 3. IEEE/EIA Std. 12207- 2008—ISO/IEC/ 10. O. Zimmermann, “Architectural Decisions IEEE areSoftware, also available vol. for 32, free no.at 4, 2015. IEEE Standard for Systems and Software as Reusable Design Assets,” IEEE Soft- http://ComputingNow.computer.org. Engineering—Software Life Cycle Pro- ware, vol. 28, no. 1, 2011, pp. 64–69.

IEEE SOFTWARE CALL FOR PAPERS TakeSoftware theEngineering for Big Data Systems Submission deadline: 1 August 2015 • Publication: March/April 2016 This special issue focuses on the software-engineering challenges Questions? of buildingCS massively scalable, Library highly available big data systems. For more information about the focus, contact the guest editors: Such systems are highly distributed and often comprise multiple architectural styles and open source technologies. Growth in scale • Ayse Basar Bener, Ryerson University: [email protected] and functionality is often unanticipated and explosive, which • Ian Gorton, Software Engineering Institute, Carnegie Mel- drives organizationswherever to adopt rapid development and deployment lon University: [email protected] methods to cope with ever-changing requirements, environments, • Audris Mockus, University of Tennessee, Knoxville: audris@ and data types. utk.edu Possible submission topics include, but aren’t limited to, Submission Guidelines Manuscripts must not exceed 4,700 words including gures and • the engineeringyou of big data systems,go! including software design tables, which count for 250 words each. Submissions over these and architecture, software development approaches, and man- limits may be rejected without refereeing. Articles deemed within agement methods; the theme and scope will be peer-reviewed and subject to editing • architectural adaptation of legacy systems for big data analytics; IEEE Computer Society magazines and Transactionsfor magazine style, are clarity,now organization, and space. Submissions • software engineering techniques that ensure accurate results should include the special issue’s name. from operationalavailable data analysis; to subscribers in the portable ePub format. • security and privacy issues in engineering big data applications; Articles should be novel, have a practical orientation, and • novel applicationJust download software the architectures articles tofrom address the the IEEE CAP Computer be written Society in a style Digital accessible to practitioners. Overly complex, theorem’s constraints; purely research-oriented, or theoretical treatments aren’t ap- • distributedLibrary, algorithms and youand frameworkscan read themfor scalable on any data device analy- thatpropriate. supports IEEE SoftwareePub. doesn’t republish material published sis and Forprocessing; more information, including a list of compatiblepreviously devices, in other visit venues. • programming-language support for data parallel processing; Full call for papers: www.computer.org/software/cfp1 • quality assurance for big data systems, including run-time Full author guidelines: www.computer.org/software/author.htm monitoringwww.computer.org/epub at scale; • data management and evolution for big data systems; and Submission details: [email protected] • performance, scalability, and capacity planning and analysis. Submit an article: https://mc.manuscriptcentral.com/sw-cs

www.computer.org/computingedge JULY/AUGUST 2015 | IEEE SOFTWARE 11 19

s4ins.indd 11 6/11/15 3:48 PM SCIENTIFIC PROGRAMMINGPROGRAMMING Editors: Konrad Hinsen, [email protected] | Matthew Turk, [email protected]

The Approximation Tower in Computational Science: Why Testing Scientific Software Is Difficult

Konrad Hinsen | Centre de Biophysique Moléculaire in Orléans

cience is all about simpli cation. We can’t describe quantitatively. Methodologically, it’s useful to distinguish the whole universe down to the level of elementary between two kinds of simpli cation: idealizations, which particles, and even if we could, this would probably are assumptions that can’t be justi ed in any other way Snot help us much in understanding the world around than by the ultimate success or utility of a scienti c model, us. For every phenomenon that we wish to understand, nd- and approximations, which involve the deliberate choice ing the right level of description is crucial. When studying the of a description that isn’t the most accurate one available. dynamics of the solar system, we could describe the Earth as Describing an electron as a point mass is an idealization: a point mass. But to understand the climate, we need a much there’s no justi cation for using a more complicated more detailed description that takes into account the roles of description, given our current state of knowledge about land masses, oceans, and various layers of the atmosphere. electrons, although we might suspect that there is more to For every simpli cation we make, we should try to an electron’s “true nature” than the point mass description nd a justi cation, in terms of physical or mathematical suggests. On the other hand, describing the Earth as a point arguments, and ideally a way to validate our assumptions mass that moves around the sun is an approximation: we

20 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE 72 Computing in Science & Engineering 1521-9615/15/$31.00 © 2015 IEEE Copublished by the IEEE CS and the AIP July/August 2015 know enough about the Earth’s size, shape, and mechanical properties to make a more accurate description. Computational science has its own speci c approximations as well as techniques for justifying and validating them. Like Jupiter the physical and mathematical approximations that scientists have used for centuries, computational approximations have Mercury the goal of converting an intractable problem into a tractable Venus one. e gain in tractability covers both the practical aspect of being able to do a computation in a reasonable amount of time and within the limits of available computing resources Sun and the epistemological aspect of using computational Earth methods that we can understand and reason about, although Mars those two goals are often in conict. In the practice of scienti c programming, approximations are closely related to the subject of testing, which is frequently discussed in this department,1 and to the issue of performance, which is an important motivation for making approximations and a criterion for evaluating them. In the following, I use as an example a numerical simulation of the solar system (see Figure 1). e level of description chosen here includes the sun and the planets, but Figure 1. The sun and the five inner planets of the solar system, ignores smaller bodies such as moons, asteroids, or comets. represented as point masses. This drawing describes the level of is is representative of the very rst approximation made in detail chosen in the simulations discussed here. It ignores small bodies (moons, asteroids, comets) as well as the whole universe any scienti c model: de ne a system of interest and pretend outside of the solar system. that the rest of the universe doesn’t exist. In addition to ignoring small bodies, we’ll ignore the rest of our galaxy and all the other galaxies, which are very far away. e physical show that any spherically symmetric body behaves externally justi cation for both of our simplifying assumptions is the like a point mass. e point mass approximation is thus no fact that gravitational forces are small for bodies that have more than an assumption of spherical symmetry. Real planets a small mass or that are very far away. We could verify the don’t have spherical symmetry, so we should think about impact of neglecting small bodies by running a larger quantifying the impact of this approximation. In principle, simulation that includes some of them, say, the moons. e this can be done by using a more detailed description for impact of neglecting the rest of the universe is much more each celestial body. Finally, our choice of a point mass model dicult to verify explicitly because we don’t have enough means that we can’t study each body’s rotation about its axis, observational data to construct a good model, but we could which limits the range of applications for our model. still add stars at hypothetical positions to get at least an idea As a side note, Figure 1 makes some approximations of the order of magnitude of the changes. speci c to the task of visualization: it’s a 2D projection, out of technical necessity; it omits the outer planets, Tower of Power whose inclusion would require a very big drawing; and it Before discussing how and why approximations matter for approximates our model’s point masses as circles of nite size. writing and testing scienti c software, we need to look one e circles all have the same size, so they can’t be considered by one at the approximations required to obtain a working a representation of each body’s physical . e nite size numerical simulation of the solar system. Figure 2 shows of the circles is here an approximation to the ideal zero-area the complete “tower of approximations,” with physical point of geometry, made to render the point visible. reality as the ground truth at the bottom and numerical At this stage, we can write down a complete mathematical results on top. model for the solar system based on the assumption After de ning the system of interest, the next (idealization) that each point mass i moves on a continuous approximation we make is the reduction of each celestial trajectory in space that can be described by a vector-valued body to a point mass. is step has both a physical and a function of time ri(t). ese N functions for N point masses mathematical justi cation. Physically, each celestial body has are determined by Newton’s laws of motion: a diameter that’s much smaller than its distance from any d other body, so shifting all the mass of the body to its center rv()tt= () v: velocity shouldn’t make much of a dierence. Mathematically, we can dt ii www.computer.org/computingedge 21 www.computer.org/cise 73 SCIENTIFIC PROGRAMMING

some time t0. Obtaining values for these parameters from available astronomical observations is an inference problem that I won’t discuss here—let’s just assume we have them. Numbers! Mathematical analysis shows that these parameters dene the trajectories ri(t) uniquely for all times t, both before and 7 after t0. However, while the methods of calculus yield a proof Software of existence and uniqueness for the trajectories, they don’t 6 Optimization provide a recipe for actually obtaining numerical values. e fundamental reason for the impossibility of getting numbers out of dierential equations such as 5 Floating point Numerical analysis Newton’s laws is the impossibility of computing with real numbers. A real number contains an innite amount of 4 Discretization information that can’t be represented by a nite number of bits. erefore, the best we can ever hope to obtain is some 3 Newton’s laws approximation with nite precision. is isn’t a problem by itself: astronomical observations have nite precision Physics 2 Point Masses as well. However, the trade-o between the precision and accuracy of the results and the computational resources required to obtain them is a complicated subject involving 1 Isolated System numerical analysis and the theories of computability and computational complexity. Physical reality A quick reminder of the denitions: precision refers to the number of digits of a result that are computed, whereas Figure 2. The tower of approximations that must be applied to accuracy measures how close a computational result is to the obtain numbers in a simulation of the solar system. Physical reality true (usually unknown) value of the same quantity. High is the ground truth at the bottom and numerical results are on top. precision is a necessary but insucient condition for high accuracy: it’s possible and even common to have a result that’s very precise but not at all accurate. e dicult issue in numerical work is accuracy—precision is merely a technical d va()tt= () a: acceleration detail. dt ii Simulating the Solar System

Faii()tm= i ()t F: force, m: mass. Ideally, our numerical simulation of the solar system would allow us to request the positions of all planets at e forces Fi(t) are given by Newton’s law of gravitation: time t and with accuracy e, say at most 1 km from the N true positions. It’s a little-known fact that this is actually FFii= ∑ j possible, though not practically feasible for our prob- j=1 ji≠ lem, because of the enormous computational resources mm rr− that would be required. A branch of mathematics called F =−G ij ij, computable analysis2 asserts that under certain not very ij 2 rr− rrij− ij restrictive conditions, solutions to initial-value problems are computable to arbitrary accuracy. Such results are ob- where G is a universal constant. When Newton wrote down tained by reformulating analysis in terms of computable this model for the solar system, it wasn’t an approximation but real numbers instead of the full set of real numbers. e an idealization. From Einstein’s work on the special and general computable reals are a subset of the real numbers that in- theory of relativity and the subsequent verication of these cludes the rational numbers, the algebraic numbers, and theories, we know that Newton’s theory isn’t the last word, and many other numbers relevant to geometry and physics. By that we can consider it an approximation of Einstein’s theory denition, a real number is computable if there’s an al- for the case of slowly moving bodies having small masses. gorithm that returns a rational approximation that diers To apply Newton’s model to the solar system, we need from the true value by no more than a specied limit. to determine values for several parameters: the universal e representation of a computable real in the 3 constant G, the masses mi, and a set of orbital parameters, computer is the algorithm itself. For example, the for example the positions and velocities of each body at representation of π is a procedure π(n) that takes an

22 ComputingEdge August 2015 74 July/August 2015 In theory, program transformations shouldn’t change a program’s result in any way. However, both and human software developers think they have the right to re-arrange floating-point operations, even if this changes the program’s output.

integer argument n and returns an integer p such that single- and double-precision binary formats are directly |π – 2–np| < 2–n, that is, 2–np is an approximation of π supported by many of today’s processors. e impact of the with a precision of n binary digits and an accuracy given use of oating-point arithmetic is often dicult to estimate by the value of the last binary digit (I use base 2 here in practice. for simplicity; other choices are possible). It’s possible Numerical analysis can shed some light on the eect to perform arithmetic and other computations on such of small mistakes, such as those introduced by rounding, numbers. For example, given two procedures a(n) and b(n) but only locally—that is, for a single integration step. representing the numbers a and b, their sum c = a + b is e same is true in general for the error introduced by represented by c(n) = 1/4[a(n + 2) + b(n + 2)]. Note that a discretization. However, the errors due to the lower and b must be computed to higher precision to guarantee levels of the approximations tower aren’t fundamentally the error bound on the sum. Similar precautions must dierent. We can estimate by how much the forces be taken for all computations with computable reals. on each planet are changed by ignoring the moons in Consequently, computing the result of a complex our simulation, but this doesn’t tell us by how much operation to ve digits can require hundreds of digits in the planetary orbits over a year are modi ed by this the inputs. For this reason, computable real numbers can approximation. In fact, the long-time impact of any small in practice only be used for simple operations. An online change, be it in the forces or in the computed positions, calculator using computable reals (www.hboehm.info/ depends not only on the approximations we make, or new_crcalc/CRCalc.html) is a good way to explore their even on just the equations, but on the parameters on the possibilities. speci c system we want to study. Newton’s equations have With the next approximation step, we enter the domain both stable solutions, such as planetary orbits, and chaotic of numerical analysis (level 4 of the tower in Figure 2). e solutions for systems with colliding or nearly colliding dierential equations are discretized into nite-dierence bodies. e latter are unpredictable by computation equations of some kind. e continuous time t is replaced beyond very short time spans. e very distinct behavior by a series of discrete values tn, and time derivatives are of these two kinds of physical systems is explained by the replaced by the dierences of the respective quantities at Kolmogorov–Arnold–Moser theorem, which operates neighboring points in time. is approximation removes at level 3 of our tower, meaning that it isn’t related to the limit-to-zero operations that are implicit in the use computational issues at all. of derivatives. e former dierential equations become Our recourse to numerical analysis (levels 4 and 5) algebraic equations that can be rearranged to express ri(tn) has forced us to abandon our original speci cation for in terms of quantities for < tn, permitting an iterative the solar system simulation. We can no longer write a computation along the time axis. A large number of program that computes positions at a given time to a given discretization schemes dier essentially in the choice accuracy. We have to select the accuracy-related parameters of the discrete time values and in the approximation of (discretization time step, oating-point precision) upfront derivatives by nite dierences. and try to evaluate their impact on the planetary orbits Discretization leads to algebraic equations, which are from the numerical calculations. is is typically done still relations between real numbers. Numerical analysts can by comparing the orbits obtained for dierent parameter make general statements about the stability and convergence values and aiming for convergence within the desired of such equations, but it’s still impossible, for problems of accuracy.5 realistic size, to compute results or judge their accuracy. Practically useful numerical algorithms are obtained only Testing by introducing yet another approximation: rounding. is At this point, you’re entitled to believe that we’ve arrived at consists of reducing the precision of intermediate and nal the top of the approximation tower, but there are still two results to some constant value independent of t. e most more oors to go: program transformations. e rst level common approach is the use of oating-point arithmetic,4 contains transformations performed manually by a software in particular, as de ned by the IEEE standard 754, whose developer, usually for performance. Parallelization falls into www.computer.org/computingedge 23 www.computer.org/cise 75 SCIENTIFIC PROGRAMMING

this category. e second level is about the transformations ellipse. You compute the parameters of the ellipse from automatically performed by compilers in the process of your input data, and then you compute a few points on optimization. is level of approximation is special in this ellipse and compare with your simulation. is is that it’s the only one in the whole tower that isn’t under a clearly a much better approach than fake tests because programmer’s full control. you compare positions obtained using very dierent In theory, program transformations shouldn’t change methods and thus dierent software. Of course, the a program’s result in any way. However, both compilers so-called exact result isn’t really exact. It shares the and human software developers think they have the right rst three levels of the approximation tower and is also to re-arrange oating-point operations, even if this changes subject to levels 5 and 7, assuming that you avoid level the program’s output. An annoying consequence is that 6 by not optimizing anything in the test code. So what the result of a numerical computation can dier between you’re testing with such a comparison is a combination two computers or even between two runs on the same of your simulation code, the discretization of Newton’s (parallel) computer if a dierent number of processors is equations, and the test code. You can’t really expect to used,6 in spite of 100 percent identical source code. In fact, get identical results down to the last bit, so you have to most popular programming languages don’t clearly specify introduce some tolerance into the tests. Estimating a what the result of oating-point expressions should be, reasonable tolerance is very dicult, so most developers giving software developers no eective way to implement a don’t try and make up some value that makes the tests numerical algorithm exactly. pass on a few machines. This is where the approximation tower becomes relevant for software testing. It’s often said that scientific computing is a particularly difficult application domain ould we do better? I believe that we can, but much when it comes to testing. The specificity comes from C work remains to be done. A big part of the problem is the heavy use of floating-point arithmetic, and its main the program transformations introduced by compilers be- cause is the top floor of our approximation tower. The cause they’re out of our control. is level of the tower is theory of software engineering says that tests verify also unique in not being technically justied. A reasonable that a program computes what its specification says programming language should allow a software developer it should compute,7 which assumes that there exists to specify the exact order of oating-point operations, and a specification, and that it corresponds to the last a compiler shouldn’t modify it in any way, at least for the approximation step. But when floating-point operations most basic optimization level. If today’s languages and com- enter the game, the last step is out of our control and we pilers try to outsmart the programmers, this is only because can’t write a specification for it. the latter accept the situation. And this, in turn, is mainly Scientic software developers do write tests, however, due to the aura of mystery and general fuzziness surround- so what do they do? First, most scientic software contains ing oating-point arithmetic. signicant parts that don’t rely on oating-point operations Getting rid of the last level of the approximation tower and that aren’t aected by the approximation tower. For wouldn’t magically solve all problems, of course. We would the numerical computations, one popular approach is gain the possibility of writing specications at level 5 and downright cheating. You write your program, you check it test our programs against them. We could also evaluate using informal means (until the results “look right”), and the impact of explicit optimizations (that is, level 6) by then you write some unit tests that check for the results you comparing to the specication. However, moving from level got on your machine within some arbitrary error margin. 4 to level 5—making the step from discrete equations for But this doesn’t test your program at all. All you verify is real numbers to an algorithm for oating-point numbers— that the parts outside of your control—the compiler and would still be a dicult task. Programmers would have pre-installed dependencies—are similar enough to those to make explicit choices for the order of all oating-point on your development machine. You also have some chance operations, which they aren’t prepared to make because that a bug introduced during a future modication will be today’s tools don’t let them. Moreover, such choices should caught if it changes the results beyond the error margin in have a rational basis. But we can’t say which oating-point your tests. erefore, this fake test approach isn’t entirely algorithm yields the best approximation to the solution of useless, but it shouldn’t be called testing. our discretized equations if we can’t compute the latter. Another popular approach is to compute a result for is is where computable reals could nd their role in which an exact reference value is known from analytical computational science. Even if we can’t perform a long-time calculation. Instead of simulating the whole solar system, simulation of the solar system using computable reals, we you run a simulation on a two-body subsystem (say, sun can do a few steps of integration that serve as a reference for and Earth), for which the exact orbit is known to be an ne-tuning a oating-point algorithm.

24 ComputingEdge August 2015 76 July/August 2015 e analysis I’ve described here is specic to a simulation 4. N. Toronto and J. McCarthy, “Practically Accurate Floating- of the solar system, but most aspects remain valid for other Point Math,” Computing in Science & Eng., vol. 16, no. 4, tasks in scientic computing. Levels 2 and 3 of the tower are 2014, pp. 80–95. the mathematical model for the problem being studied. is 5. T. Boekholt and S. Portegies Zwart, “On the Reliability of model is usually taken as given in computational science, N-Body Simulations,” Computational Astrophysics and Cos- although it also happens that the initial mathematical model mology, vol. 2, 2015, p. 2. is approximated to facilitate computation. Level 4 is the step 6. K. Diethelm, “ e Limits of Reproducibility in Numerical that replaces continuous functions by a discrete and nite set Simulation,” Computing in Science & Eng., vol. 14, no. 1, of values. e two main approaches are discretization and 2012, pp. 64–72. expansion of the solutions in terms of a truncated basis set. 7. K. Hinsen, “Writing Software Specications,” Computing in e latter category includes Fourier and wavelet transforms, Science & Eng., vol. 17, no. 3, 2015, pp. 54–61. normal modes, and so on. e truncation oset is then the accuracy-related parameter that replaces the discretization Konrad Hinsen is a researcher at the Centre de Biophysique time step in the above example. Levels 5 to 7 of the tower, Moléculaire in Orléans (France) and at the Synchrotron Soleil in and thus the problems they create, remain the same in all Saint Aubin (France). His research interests include protein struc- numerical methods. ture and dynamics and scientic computing. Hinsen has a PhD in theoretical physics from RWTH Aachen University (Germany). References Contact him at [email protected]. 1. P.F. Dubois, “Testing Scientic Programs,” Computing in Science & Eng., vol. 14, no. 4, 2012, pp. 69–73. 2. M.B. Pour-El and J.I. Richards, Computability in Analysis and Physics, Springer, 1989. 3. V. Ménissier-Morain, “Arbitrary Precision Real Arithmetic: ThisSelected article articles originally and appearedcolumns from in IEEE Computer Society Design and Algorithms,” J. Logic and Algebraic Programming, Computingpublications in areScience also available & Engineering, for free at vol. http://Computing 17, no. 4, 2015.- vol.2011 April–June MultiMedia IEEE 64, no. 1, 2005, pp. 13–39. Now.computer.org. MU.generalCFP-full-half-jz.indd 32

http://www.computer.org

APRIL-JUNE 2011

http://www.computer.org

T

Emerging Multimedia Emerging JULY-SEPTEMBER 2013 JULY-SEPTEMBER

Call for Papers

IEEE MultiMedia serves the community of scientists, engineers, prac-

IEEE MultiMedia IEEE titioners, and students interested in research, development, and

application of novel techniques and systems for capturing, creating, Volume 18 Number 2 Number 18 Volume

understanding, accessing, delivering, and adapting digital content

April–June April–June and information across multiple media types.

2013 IEEE MultiMedia is currently accepting papers discussing innovative

mult-18-02-Cover Cover-1 http://www.computer.org approaches across a wide range of multimedia subjects, from theory to practice.

April 11, 2011 5:54 PM Visit www.computer.org/web/peerreviewmagazines/multimedia for full details, or contact EIC Yong Rui ([email protected]) with

APRIL-JUNE 2013 editorial questions or proposals.

IEEE MultiMedia

❚ http://www.computer.org

Large-Scale Web Media Web Large-Scale

January–March 4/22/15 5:29 PM www.computer.org/multimedia

2013 JANUARY-MARCH 2013 JANUARY-MARCH

www.computer.org/computingedge3D Imaging Techniques & Multimedia Applications 25

www.computer.org/cise 77 Volume 20 Number 2 Number 20 Volume

Volume 20 Number 1

January 10, 2013 5:42 PM mult-20-02-c1 Cover-1

mult-20-01-c1 Cover-1

May 17, 2013 6:23 PM EDITOR DAVID ALAN GRIER THE ERRANT HASHTAG George Washington University; [email protected]

This article originally appeared in Computer, vol. 48, no. 7, 2015.

impose their ideas upon others. Pro- Do We Need grammers can nd unintended uses for libraries, exploit coincidences in structures, and conclude that data a Software Czar? follows a pattern where none exists. Through any of these actions, pro- grammers can introduce an unantici- David Alan Grier, George Washington University pated assumption into the system. Over the past few decades, we’ve We need to temper authoritarian leadership increasingly used open, market-based techniques to manage software proj- with the insights of individual programmers. ects. However, markets don’t antici- pate change well, and open informa- n my travels through the world of leadership of software projects. We tion can hide important facts. Software technology, I’ve met many peo- need to temper authoritarian leader- development projects can’t be success- ple who believe that software has ship with the insights of individual ful without some form of leadership, gone astray and that we desper- programmers. which helps a programming team de- Iately need to take action to put things We start designing software by cide which ideas will produce a strong, right. My colleague Curtiss is one such drawing boxes on a whiteboard that  exible system and which won’t. Many person. He believes that our e orts to represent di erent system modules, developers nd it diŠ cult to provide produce open,  exible, and reusable and then we divide our programming that judgment, as it’s easy to let a proj- ect drift from one extreme to another by either dictating every detail of the system or by accepting every contribu- The connections between software modules tion from every programmer. are more than technical specifi cations. One successful CTO claims that his software teams produce the best work software have utterly failed. Instead sta into groups that correspond to when his leadership style is closer to the of developing a body of software that’s those boxes. Each of these groups is role of a judge. “If you want to make any getting better and better, he says we’ve responsible for their own code. They change to the plan,” he told his team, been creating programs that are brit- can’t concentrate on their assignment “you have to bring it to me and con- tle, incomprehensible, and nearly im- if they have to know every detail about vince me that it’s a good change. If you possible to change. Our e orts to solve every other module. Yet, the quality of believe the idea isn’t worth bringing to this problem with open standards and the system will be determined by how me, then it isn’t worth putting in the the free  ow of information have been well those groups and the modules system.” However, this role isn’t as easy misguided. According to him, we need they create work together. or as passive as he makes it sound. He to ap point a software czar, someone Pioneering computer scientist Da- gets his team together to make sure that vested with absolute authority to bring vid Parnas famously observed that the information about the design has been some order to the eld. connections between software mod- thoroughly reviewed and is understood I suspect that Curtiss would like to ules are more than technical speci ca- by all. He also reviews the code to make be that software czar. I also suspect tions. These connections are assump- sure the developers are following his that he’d like me to help him get this tions that the modules make about direction. He’s a strong leader but not position. I acknowledge some of the each other—or, more accurately— the type who would dictate the future  aws he sees in software, but I’d argue assumptions that programming of software—he’s not a software czar. that we need to be more subtle in our groups make about the work that other programming groups are doing. DAVID ALAN GRIER is the author of When Computers Were Human (Princeton Univ. See www.computer.org/ Although the free exchange of in- Press, 2007) and the producer of the new computer-multimedia formation often helps clarify assump- podcast series “How We Manage Stu ” for multimedia content tions, it can also have side e ects. It related to this article. (http://itunes.managestu .net). Contact can allow individual programmers to him at [email protected].

26 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE 104 COMPUTER PUBLISHED BY THE IEEE COMPUTER SOCIETY 0018-9162/15/$31.00 © 2015 IEEE THE PRAGMATIC Editor: Eoin Woods Endava ARCHITECT [email protected]

Architecture Haiku A Case Study in Lean Documentation

Michael Keeling

SOFTWARE ARCHITECTS ARE taught • a brief summary of the overall to create comprehensive, complete docu- solution, mentation. We’re taught to stamp out all • a list of important technical assumptions and explicitly articulate our constraints, designs. Without restraint, however, ar- • a high- level summary of key func- chitecture descriptions can become long- tional requirements, winded treatises on a system’s design. In • a prioritized list of quality the course of being thorough, we often attributes, inadvertently obfuscate the architectural • a brief explanation of design deci- vision in documents that consequently sions, including a rationale and aren’t read. tradeoffs, An architecture haiku is a “quick- • a list of architectural styles and pat- to-build, uber-terse design description” terns used, and that lets you distill a software- intensive • only those diagrams that add mean- system’s architecture to a single piece of ing beyond the information already paper.1 Creating an architecture haiku is on the page. more than just an exercise in terse docu- mentation. To write an effective haiku, An important key to success is to fo- you must focus on only essential design cus on the most essential ideas for each decisions and rationale. Much like its item on this list. If something isn’t im- poetic cousin, an architecture haiku fol- portant, don’t include it. If an idea re- lows strict conventions and can express quires more detail, don’t skimp—but a mountain of information with a tiny don’t overdo it. The point isn’t to omit footprint. or reduce critical information but to highlight it. Removing noise that might What Is an Architecture Haiku? otherwise drown out the most important An architecture haiku aims to capture ideas helps shine a spotlight on them. the architecture’s most important de- Architecture haiku creates a cogni- tails on a single piece of paper. Placing tive trigger that facilitates the recall of extreme constraints on the architecture essential contextual information about description forces architects to focus a design decision. Rather than fully de- on the design’s most important aspects. scribing a decision using comprehensive With only one page to work with, there prose and diagrams, assume the reader simply isn’t space to waste on extrane- already has much of the required knowl- ous details. edge, and focus on the critical details.2 For an architecture haiku to be com- Two of the most common examples prehensive, Fairbanks recommended of a cognitive trigger are architectural that it include1,2 styles and patterns. With a single word

2376-113X0740-7459/15/$31.00/15/$31.00 © 2015 © IEEE 2015 IEEE Published by the IEEE Computer Society MAY/JUNE 2015 | IEEEAugust SOFTWARE 2015 35 27

s3pra.indd 35 4/3/15 3:17 PM THE PRAGMATIC ARCHITECT

or phrase—for example, “layer” or description. In any case, the objec- ware architecture dialect, and some “pipe and lter”—you can reference tive is the same: record suf cient engineers weren’t familiar with cer- a wealth of knowledge that doesn’t information so that team members tain concepts. For example, some need to be repeated in your docu- can recall essential design decisions engineers were familiar with the mentation. Less formally, architects based on previous collaborations or 4+1 view model, whereas others pre- often use homegrown metaphors3 or on knowledge from other sources. ferred Software Engineering Insti- even refer to systems the team has tute viewpoints, and still others used previously built, to the same effect. Effectively Using IEEE terminology. Some engineers Any common reference point—such Architecture Haiku talked about nonfunctional require- as a whiteboard discussion, a frame- While using architecture haiku, my ments, and others discussed quality work, an argument, or even other project teams at IBM discovered attributes. We quickly resolved these published material—can be a cogni- how to consistently create useful differences, but not before creating tive trigger that connects an essential one-page architecture descriptions. some confusion that was occasion- ally ampli ed by the sparse language of a haiku. Architecture haiku relies heav- An architecture haiku aims to capture ily on domain- speci c vocabulary and cultural norms within a team to the architecture’s most important details build cognitive triggers. So, readers on a single piece of paper. must be educated in basic software architecture concepts to understand implied assumptions in the haiku. This includes a basic understanding of architectural drivers; quality attri- decision to the context and back- My teams were experienced but bute scenarios; the use of structures, ground supporting it.2 small—typically, three to ve engi- architectural styles, and patterns; For example, an architecture neers with an average of at least ve and how to identify and evaluate de- haiku might provide a “take- away years’ software industry experience. sign tradeoffs. The team must also lesson” from a collaborative white- The teams always worked directly agree on a vocabulary. board discussion, the details of with customers, so the customer’s which might be stored as raw notes architectural experience and docu- Explore First, Then Record Decisions and whiteboard photos. In many mentation requirements often in u- Creating an architecture haiku cases, a couple of sentences or a enced how a team approached design doesn’t replace design exploration, few bullet points will get the point and documentation. nor does it magically transfer knowl- across. From a team perspective, an Although architecture haiku was edge from one teammate to another. architecture haiku should compre- extremely effective, it wasn’t the A good haiku will act as a medium hensively describe the whole system right tool for every project or situ- for recalling essential information for small or routine designs. For ation. Using it effectively requires about design decisions such as pre- large or extremely complex systems, some thought and practice. Here, I vious discussions and collaborative an architecture haiku might describe describe our best advice for creating whiteboard sessions. Without this only a subcomponent for which a effective architecture haikus. context, an architecture haiku is just team is responsible. Or, it might a terse document. provide an overview at the highest Start with a Shared Understanding You can create context by collab- level to help create a common vision When we rst learned about archi- oratively exploring the design space among distributed teams. You might tecture haiku, we thought it was with stakeholders. Collaborative even try creating a haiku of haikus, a great idea—but there were some exploration lets multiple stakehold- opting to use single- page descrip- problems. Although we were well ers walk through the design process tions for each viewpoint that comes versed in enterprise search concepts, and arrive at a shared understanding together to create a comprehensive not everyone spoke the same soft- of the design. Then, the haiku be-

28 36 IEEE SOFTWAREComputingEdge | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE August 2015

s3pra.indd 36 4/3/15 3:17 PM THE PRAGMATIC ARCHITECT`

comes a lightweight monument to those creative insights, a re- minder of what you decided to build and why. In our experience, an ar- chitecture haiku is excellent for communication and recall but terrible for exploration. The biggest problem we ex- perienced was deadlock. Ar- ti cially constraining design activities to a single page too early constricted creativity and didn’t leave breathing room to explore alternatives. We found that the best strategy is to ex- plore rst—collaboratively when possible—then record decisions in the haiku, updat- ing it as you learn more about the architecture.

Treat the Haiku as a Living Document One bene t of constraining an architecture haiku to a single page is that it can pro- vide guidance in a way that can easily evolve as the team learns more about the system being built. Figure 1 shows the haiku we used to describe the Velocity Monitor, a soft- ware tool that monitors the crawling and indexing status of search collections. This tool’s scope was relatively small but included several in- teresting integration points FIGURE 1. An architecture haiku that we printed out and then annotated as we learned more with other systems. about the system and re ned the architecture.2 We recorded design decisions in this haiku as brief prose, in- cluding rejected choices. It included that some decisions could be im- Use the Haiku as an Outline a diagram of the most informative proved, so we altered the design ac- for Future Documentation view of the architecture because the cordingly. Updating the haiku was Using an architecture haiku as a re- design didn’t exploit any architec- simply a matter of scribbling notes call mechanism for established ratio- tural patterns. and scratching out elements on the nale, context, and decisions requires Note the annotations on the page. page. Such changes are expected and that the readers remember informa- As construction began, we learned should be embraced. tion. Although this is usually easy

www.computer.org/computingedge MAY/JUNE 2015 | IEEE SOFTWARE 37 29

s3pra.indd 37 4/3/15 3:17 PM THE PRAGMATIC ARCHITECT

for project teams, there are risks to points. Small fonts are too dif cult formation relevant to the architec- consider, such as long- term recall to read and defeat the purpose by ture, provides clear guidance for of information, turnover, and proj- allowing for too much text. construction, and encourages col- ect transition. Following a template makes it eas- laboration. Combining architecture Refreshing teams owing to turn- ier to quickly discern the documenta- haiku with traditional documenta- over or project transition is fairly tion’s salient points and helps provide tion is a clear winner. Although archi- common. In the former case, en- guidance to the haiku writers. We’ve tecture haiku in its most literal form gineers might simply no longer be distributed our template as two Pow- is a useful tool, it also offers a chance available to consult on a project be- erPoint slides: one with the MegaVista for general reection on architecture cause they’ve moved on to new roles example (see the sidebar “Architecture documentation practices. The num- or organizations. In the latter case, Haiku for the MegaVista Project”) and ber of pages used is less important a project might be transitioned to a the other with the tips shared in this than designing documentation that’s new team for maintenance or future article. You can access the template right for your team and situation. work. Over months or years, mem- at www.neverletdown.net/2015/03 Whether you use architecture haiku ories decay, people forget speci cs, /architecture- haiku.html. as the only documentation or simply and the effectiveness of the cognitive It’s easy to shrink the font and as a litmus test for how well the ar- triggers captured in an architecture cram words onto a page. Producing chitecture is understood, the goal is haiku decreases. a highly valuable, information- dense always to create high- value documen- The simplest way to mitigate resource that people actually want tation that maximizes awareness and these risks is to write a more tradi- to read is more dif cult and much understanding across the team. tional architecture description be- more rewarding. In conclusion, fore the team disbands. This docu- mentation aims to capture ideas Design for your team referenced in the haiku that might hen I was in high school, Less is more when describing exist only as an oral history within my calculus teacher let Your architecture. the team. W us bring a single page Once you’ve created an ar- of notes to the nal exam—an of- chitecture haiku, writing a tight, cially sanctioned “cheat sheet.” I References well- organized architecture descrip- spent weeks preparing it, carefully 1. G. Fairbanks, “Architecture Haiku,” blog, 2011; http://georgefairbanks.com/architecture tion becomes much easier. By creating selecting concepts I thought would - haiku. the haiku rst, the team has already be on the exam, including complex 2. M. Keeling, “Creating an Architecture identi ed the essential information, equations, proofs, and examples. On Oral History: Minimalist Techniques for Describing Systems,” presentation at the much like an outline. Furthermore, exam day, much to my surprise (but 8th Software Eng. Inst. Architecture Tech- the haiku can serve as an executive not to my teacher’s), I hardly used my nology User Network Conf. (SATURN 12), 2012; http://resources.sei.cmu.edu summary or be included in the ap- cheat sheet at all. Creating it was the /library/asset- view.cfm?assetid=20330. pendix of a longer document. Using best study guide I could have used. In 3. M. Keeling and M. Velichansky, “Making the haiku in this way can help achieve many ways, architecture haiku is a Metaphors That Matter,” Proc. 2011 Agile Conf. (AGILE 11), 2011, pp. 256–262. balance among agility, delivery speed, cheat sheet for your architecture. 4. D. Lef ngwell and D. Widrig, Manag- and the need for documentation. Philippe Kruchten said, “If, in- ing Software Requirements: A Uni ed stead of a fully robust process, I Approach, Addison- Wesley Professional, 1999, p. 169. Create a Template were permitted to develop only one This tip might seem obvious, but it’s document, model, or other artifact important. To promote communi- in support of a software project, a MICHAEL KEELING is a software engineer at cation within the team, our haikus short, well- crafted Vision document IBM. Contact him at [email protected]. follow the same basic template. This would be my choice.”4 The intent of template promotes basic graphic de- architecture haiku is very much in sign practices, including the use of this spirit. Selected CS articles and columns This article originally appeared in white space and alignment. We also Architecture haiku helps your are also available for free at IEEE http://ComputingNow.computer.org.Software, vol. 32, no. 3, 2015. don’t allow fonts smaller than 10 team focus on the most essential in-

30 38 IEEE SOFTWAREComputingEdge | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE August 2015

s3pra.indd 38 4/3/15 3:17 PM THE PRAGMATIC ARCHITECT`

ARCHITECTURE HAIKU FOR THE MEGAVISTA PROJECT

Clearly listing the tradeoffs in the design helped us with decision making during implementation. Because the team was expe- rienced in building search applications, it was suf cient to list the key architectural patterns used in the design. Diagramming was essential when we collaborated around whiteboards before creating the haiku. However, it added little value to the haiku itself, so we didn’t include it.1

MEGAVISTA GUIDES SEARCH • Crawlability—A batch of up to 900 metadata updates A publicly consumed search solution based on the Veloc- are published to the database and reflected in search ity Search platform that will help users nd companies of within 3 minutes. interest. • Queryability—An average- sized result set can be cal- culated within 2 seconds of Engine receiving the query. Business Drivers • Scalability—The size of the data source increases • Better search encourages listed companies to pur- beyond current capacity, and the system can be easily chase advertising, metadata supplements, and paid expanded to deal with this. listings. • Faster results for users and advanced search options Design Decisions with Rationale (such as refinement and spelling suggest) bring more • Database must be crawled as multiple views (vice- users to the site. JOINed) to avoid stressing it too much. Currently 1.6 Key Tradeoffs million companies, each with dozens of metadata • Crawlability over Maintainability—Need to split the fields. Metadata joined via Virtual Document (company data source across multiple search collections, dis- ID = vse- key). tributed across several servers. Incidentally promotes • Company website must be crawled and website con- Scalability. tent made searchable under the company (i.e. return a • Crawlability and Queryability over Configurability— single results with all content searchable as the same Highly configurable system reduces speed of crawl document). Website data joined with metadata via and query. Virtual Document (company ID = vse- key). • Flexibility/Development Speed over Cost—Stakehold- • Full recrawl / week, DB refresh / 30 sec. if no crawl ers are not 100 percent on all features and have a running. Full recrawl will pick up changes made to strong desire to go live as soon as possible. company websites (external data). 30- sec. refresh • Modifiability over Maintainability—IT will maintain the enables catchup for metadata crawls on DB updated system and know databases, not Engine, so when they every 60 seconds at most. make a change it should be detected and reflected. • Collections divided by company ID. Dividing allows maximum crawl throughput, using company ID Architecture Styles and Patterns Used (e.g. collection A has IDs 1–10) allows us to control 3- tier (data, crawl, query) partitioning. Source- Selector—promotes reliability • Paid listings and keyword weighting factors used for Query Redundancy—promotes availability relevancy calculation will come from the database (not Virtual Documents—all data crawled Engine configuration). This will allow the business unit Document Enqueue—for website data to make changes quickly using their existing tools. Collection Sharding—promotes crawlability Crawler Clone—promotes availability Geolocation Lookup—promotes maintainability/modi ability Reference 1. M. Keeling, “Creating an Architecture Oral History: Minimalist Tech- Top Quality Attributes niques for Describing Systems,” presentation at the 8th Software Eng. Inst. Architecture Technology User Network Conf. (SATURN 12), 2012; Crawlability > Queryability > Scalability http://resources.sei.cmu.edu/library/asset- view.cfm?assetid=20330.

www.computer.org/computingedge MAY/JUNE 2015 | IEEE SOFTWARE 39 31

s3pra.indd 39 4/3/15 3:17 PM Editor: Grady Booch IBM, grady@ ON COMPUTING computingthehumanexperience.com

Then a Miracle Occurs

Grady Booch

DEVELOPING a software-intensive they sometimes turn out very differ- way. If you’re really successful, you’ll system is like raising a child. ent from what you rst expected. be asked to make a sequel, and you As Will Pleasant- Ryan observed, Developing a software-intensive might even turn a small indie project both babies and code have smells, system is like producing a movie. into a large money-making franchise. you get used to changing require- Tony DeRose of Pixar had much Developing a software-intensive ments, you have to take the long to say about this simile,2 as did the system is like releasing a new drug. view, you can’t do it alone, and even- good folks in the early agile com- Pedram Alaedini and his col- tually you have to let go.1 I would munity.3 Both software development leagues observed that software de- add to Will’s most excellent simile and lmmaking require the skills of a velopment and drug development that, although you might think you diverse set of stakeholders who must are “highly complex, rely on multi- know everything up front, you cer- work together intensely for short disciplinary teams, and usually come tainly don’t, and therefore you end bursts of time. Talent matters, and as in late and over budget. In addi- up discovering a lot of things along such you must often deal with strong tion, they are often judged based on the way. Furthermore, in this age of personalities. Although the bones of the same quality factors: reliability, cognitive systems, you also have to the delivered artifacts might be clear, safety, and ef ciency.”4 both teach them and give them the opportunities exist for creatively piv- I would add that in both cases, the skills to learn on their own. Finally— oting along the way to tell the right stakes are high: your efforts might as they all probably should anyway— story at the right time in the right improve the lives of millions, but you might also cause some deaths along the way. Developing a software-intensive system is like writing a novel. J.J. Merelo gave us a riff on this comparison.5 Both tasks are creative endeavors. Both require collabo- ration. Both must “ nd their own voice, but at the same time rely on the tropes of the genre and on plot lines that have been there for mil- lennia” (in the world of software, we call these patterns). Both must appeal to their particular audi- ence. Both are full of surprises and contain many little languages. And while they must adapt themselves to the medium, their very presence changes the medium itself. Developing a software-intensive system is like dating. The delightful book Dating De- sign Patterns6 explored this rich

32 12 IEEE SOFTWAREAugust 2015 | PUBLISHED BY THE IEEEPublished COMPUTER by the SOCIETYIEEE Computer Society 0740- 7459/15/$31.002376-113X/15/$31.00 © 2015 © 2015 IEEE IEEE

s4onc.indd 12 6/11/15 3:54 PM ON COMPUTING

simile. Surprise Statefulness, In- have to rely on your own instincts. mon ways to build certain things. terested Listener, Decorated Visi- Sometimes—quite often, actually— On the other hand, sometimes you tor, and Fifth Position Break are all you’ll try one direction but have have to wedge existing components patterns found in dating and well- to backtrack and try another. You in unnatural ways to get them to do structured software. might lose some people along the what you want. The results might Developing software is like mak- way. You might even fail and never be clumsy, but mostly they’ll be ing a work of art. make your destination. But if you do good enough. Jonathan Wallace provided some succeed, you’ll reap the rewards of Developing a software-intensive interesting insight on the matter.7 being the rst, and others will soon system is like building with Legos Art springs from the mind of the cre- follow you. If you fail but the jour- and having your own 3D printer to ator, as does software. Both might ney is still interesting, then you’ll make custom blocks. be rendered on a literal blank page or might have a patron who dictates certain characteristics. Most art (and software) is bound by the mate- rials at hand, but great art (and great If some hint of exotic lands captures you, software) creates and de nes its own medium. Art builds on the funda- you must nd a new way. mental physics of light, the founda- tions of color theory, the chemis- try of materials, and the cognitive and emotional nature of the human mind. Software builds on logic, have succeeded in showing others The same rules I just mentioned mathematical theory, the physics of part of the way. apply, but this time you can craft hardware, and human needs. Both Developing software is like teach- your own parts. Most will be one- art and software might themselves ing cats to walk in a line. offs. But, if they prove particularly be works of beauty. It’s not easy: cats and developers useful, you might nd yourself rep- Developing a software-intensive are often quite independent crea- licating the custom component over system is like the travels of Lewis tures that want to do things their and over, to the point where others and Clark. own way, on their own time, with want to use it. If you stay close to home, you minimal ceremony. But if you offer Developing a software-intensive might be quite content walking the the right incentives (a nice piece of system is like building a dog house. same path every day. This is the sh for the cats, the vision of making Here, the Nike development pro- bread and butter of most life and something Really Cool for the devel- cess is suf cient: Just do it. If the re- most software. In well-understood opers), then you’ll nd them collabo- sults are good enough, you’ll end up domains, the journey is predictable, rating beyond reason. with a dry, happy dog. If the results the risks are known, and the out- Developing a software-intensive are a failure, you can just tear down comes are generally satisfying. system is like building with Legos. the old doghouse and start from However, if some hint of exotic I loved building with Legos as a scratch or break the old one apart lands captures you, you must nd kid. Back then, you’d get just a box and put it back together in a new a new way. If the rewards are high of random blocks, and you’d use way. Failing that, you can always get but the path unmapped and partic- your imagination to build whatever a new, more accepting dog. ularly dangerous, rarely will you go came to mind. These days, most Developing a software-intensive on your own. Others must accom- Legos come in a kit, often with spe- system is like a city growing old. pany you, especially those with the cial parts but always with detailed Your city probably started gen- same spirit of adventure. Although instructions. On one hand, having erations ago as a modest outpost you can equip yourself with the best standard parts is nice: you don’t along some interesting terrain. It knowledge and the best equipment, have to reinvent everything, and grew because it was a useful place— you know that along the way you’ll you can always fall back on com- economically viable, rich with

www.computer.org/computingedge JULY/AUGUST 2015 | IEEE SOFTWARE 13 33

s4onc.indd 13 6/11/15 3:54 PM ON COMPUTING

This article originally appeared in IEEE Software, vol. 32, no. 4, 2015.

natural or human resources—and oriented languages changed every- Indeed, we’ve just begun. Soft- a place that attracted others to live. thing, yielding incremental and it- ware is the invisible writing that Time passes, as it tends to do, and erative methods—the precursor to whispers the stories of possibility to suddenly you nd yourself living in today’s agile methods. our hardware, yielding computing a 100-mile city badly in need of new From the outside, from the pub- systems of exquisite complexity and things to keep it viable: a new transit lic’s viewpoint, developing software- promise. system, an upgraded sewer system, intensive systems looks either very And we, as insiders to computing, and special services for a changing simple or incredibly mysterious. have the privilege of making the pos- population. Problem is, no matter Given the recent emphasis on teach- sible manifest. what you do you can’t just start over ing programming to every K–12 (too much legacy), and you can’t just student, you might be left with the apply the Nike development pro- impression that everything is just a References cess (too many stakeholders with Simple Matter of Programming. Of 1. W. Pleasant- Ryan, “Six Ways Developing Software Is Like Being a Parent,” blog, concerns far more diverse than you course, computing insiders know 6 Sept. 2014; http://spin.atomicobject could ever imagine). Change takes that this simply isn’t true. Simi- .com/2014/09/06/development-and time, money, and patience. However, larly—especially to the public fed on -parenting. 2. T. DeRose, “The Connection between if you fail to change, your city will a diet of television and movies with Movie Development and Software Devel- die. Guaranteed. incendiary topics, dubious science, opment,” Proc. 2013 Int’l Conf. Software Eng. (ICSE 13), 2013; http://dl.acm.org Developing quality software- and questionable timelines—it would /citation.cfm?id=2486901. intensive systems that matter and seem that all software happens when 3. “SoftwareAsFilmMaking,” 2012; http:// systems that endure and make a you put bright people in a room, give c2.com/cgi/wiki?SoftwareAsFilmMaking. difference is all of these things. them a lot of venture capital, and 4. P. Alaedini, B. Ozbas, and F. Akdemir, “Agile Drug Development: Lessons from It’s also none of them. then wait until a miracle occurs. the Software Industry,” Contract Pharma, As I re ect back on the history Developing a software-intensive 14 Oct. 2014; www.contractpharma.com /issues/2014-10- 01/view_features/agile of software engineering, some clear system isn’t like that at all, and we, -drug- development- lessons- from- the patterns emerge. In the earliest as insiders, have a responsibility to -software- industry. days—the dawn of digital comput- tell the stories of computing in an en- 5. J.J. Merelo, “Five Reasons Why Writing Is So Much Like Software Develoment,” ing in the ’30s and ’40s—we’d see gaging, truthful way. blog, 30 May 2013; https://medium small teams of systems people (back .com/i-m- h- o/ ve-reasons- why- writing -is- so- much- like- software- development then, software was so very mixed - 6d154a43719c. up with hardware). Personal pro- ne parting thought. The 6. E. Gordon et al., Dating Design Patterns: cesses tended to dominate. From eld of software engi- Elements of Reusable Object Oriented Paired Programming, Solveig- Haugland, the ’50s through the ’70s, the pro- O neering might seem to be 2003. gramming priesthood arose, giving largely settled: we think we know 7. J. Wallace, “Is Software Art or Engineer- us the dogma of structured meth- the essentials, and everything that ing?,” The Ethical Spectacle, Nov. 1999; www.spectacle.org/1199/software.html. ods and waterfall processes. Don’t might follow is simply a variation on get me wrong: I’m not using these some agility- at- scale best practices. terms in disparaging, emotional If you believe that, you are so GRADY BOOCH is an IBM Fellow and one of ways. They were quite reasonable very wrong. UML’s original authors. He’s currently developing in their time, given the nature of The future will bring us systems Computing: The Human Experience, a major trans- media project for public broadcast. Contact him at the software- intensive systems we of breathtaking complexity and im- [email protected]. built. In the ’80s, with the rise of portance. The advent of machine personal computing, we saw a split: learning changes how we grow sys- personal processes were reinvented tems because we must not only build for these personal things, and the software but also train the sys- larger teams grew (with outsourc- tem. The evolution of quantum com- See www.computer.org/ ing as a new feature) at the other puting and neuromorphic computing software-multimedia for multimedia content end. By the ’90s, the presence of challenges the very way we program related to this article. the Internet and the rise of object- our devices.

34 14 IEEE SOFTWAREComputingEdge | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE August 2015

s4onc.indd 14 6/11/15 3:54 PM IT TRENDS EDITOR: Irena Bojanova, University of Maryland University College, [email protected]

reamstime.com Internet of Cores

Saeid Abolfazli and Zohreh Sanaei, YTL Communications and Xchanging Malaysia

© Tadeusz Ibrom | D Irena Bojanova, University of Maryland University College

everaging global hetero- located in few geographical plac- over or underutilized, and people geneous cloud-based re- es far from the majority of users, could do infinite processing using sources,1 mobile devices, whose service utilization origi- scattered but connected resources and cyber-physical sys- nates long wireless network latency. as they prefer. Ltems (CPSs) for smart and socially Also, accessing such resources The Internet protocol stack networked systems2 is among sev- necessitates Internet connectivity, and massive infrastructure can eral efforts to alleviate resource which can be a hurdle in disaster technologically enable global con- deficiencies in the global Internet and emergency situations, such as nectivity of people and things, but of Things (IoT), or Internet of the 2011 tsunami in Japan. resource discovery and addressing Anything. Currently, giant data- The current computing prob- is a problem with current connec- centers are provisioned to furnish lem is due not only to insufficient tivity. Internet source and desti- computing and storage resources, computing and infrastructure re- nation addresses are needed to while mobile devices are incorpo- sources, but also to imbalanced communicate and to consume re- rated as sensing, interacting, and distributed resources. For a better sources. This limitation removes service delivery points. In this set- understanding of the problem, we autonomy from things and brings ting, the computing and storage correlate the relationship between the technology to humans’ atten- capabilities of a few billion mobile data or processes and resources to tion (as opposed to Mark Weiser’s devices, including smartphones, the water (resource) and Earth (de- vision of invisible computing that tablets, and car-mounted comput- mand) on a global scale. Although will be hidden in the background ers, are overlooked because such water covers more than 70 per- of humans’ lives5). devices are mostly viewed as sens- cent of the Earth, climate change ing and interacting end points or and human impact have imbal- Internet of Cores mobility enablers. Increasingly anced its distribution. Under such Our envisioned Internet of Cores proliferating cloud and social net- an imbalanced water distribution, (IoC) will mitigate these problems. working service providers, such as frequent flooding and drought This “glocalized” (globally scaled, Facebook and Google, will thus are visible in different parts of the locally customized) elastic cloud- have to endlessly expand their world. If all the giant, small, and based infrastructure platform infrastructures by purchasing tiny water sources worldwide were consists of a hybrid set of hetero- acres of land, racks of servers, and connected, excess water from one geneous granular computing and megawatts of electricity to operate place due to massive rain could be storage resources accessible via datacenters, which obviously isn’t pushed to another dry area to avoid the Internet and Ethernet through environmentally friendly.3 drought. Similarly, if all computing diverse wired or wireless commu- Furthermore, giant cloud data- and storage resources worldwide nication and networking technolo- centers feature coarse location could be connected and accessed gies. Glocalization allows globally granularity,4 meaning that they’re on demand, no resource would be accessible resources to be utilized

2376-113X/15/$31.00 © 2015 IEEE Published by the IEEE Computer Society August 2015 35 1520-9202/15/$31.00 © 2015 IEEE Published by the IEEE Computer Society computer.org/ITPro 5 IT TRENDS

Google Loon Facebook drone

On-premise cloud cores

On-premise University cloud cores Coffee shop surrogate cores Company

Off-premise cloud cores Internet

3G WiMAX

On-premise cloud cores Telco-connected On-premise cloud of mobile cores cloud cores

Firewall Radiological research

Ad hoc center cores Healthcare center Smart Glass core

Figure 1. The Internet of Cores. In everywhere computing at a global scale, heterogeneous cores from on- premise and off-premise clouds, cloudlets, and mobile and vehicular computing resources would build a highly elastic and available infrastructure platform that’s globally integrated with the Internet of Things.

in local settings with lower network source consumer applications are computing at a global scale (in line latency. Hence, in the Internet’s centrally built in the server and with that of the IoT and CPS), which absence, the resources in a vicinity are sent to distributed resource can be further extended by focusing are accessible via varied low-laten- providers for execution. Service on computing and storage resource cy Ethernet means. Ethernet con- consumption requests in the IoC provisioning in emergency and low- nectivity can be any Internet-less can be sent from any consumer access situations. link between consumers and pro- worldwide without being centrally The IoC is a complement to IoT viders—for instance, a private link stored in a node. Figure 1 illus- architectures and particularly to between mobile users and mobile trates the connected-everywhere the US National Institute of Stan- service providers to access either computing environment at the dards and Technology (NIST)’s other mobile devices or providers’ global scale the IoC envisions. vision of cyber-physical cloud comput- resources. Integration of such het- A successfully adopted IoC plat- ing (CPCC).2 Glocalized comput- erogeneous granular resources lays form would integrate every comput- ing and storage resources enable the base for a globally scaled IoT. ing and storage device regardless of real-time and low-latency - Furthermore, in the IoC, both type, capability and capacity, loca- tions of the IoT and CPS. The IoC resource consumers and provid- tion, ownership, accessibility, or fea- inherits elasticity, virtualization, ers are highly distributed, whereas tures as long as there is a desire to and pay-as-you-use principles with solutions such as grid com- participate in resource sharing. The from cloud and sensing, and con- puting6 or SETI@Home,7 the re- IoC’s ultimate goal is everywhere nectivity from the IoT.

36 ComputingEdge August 2015 6 IT Pro May/June 2015 IoC-enabled systems can oper- and medium-sized enterprises Tourist Family in a Typhoon ate in various architectural modes, not only in storing their data in Imagine Alex and his family spend- including ad hoc, peer-to-peer cloud-based resources, but also ing a holiday at the seashore in Japan (using P2P, Ethernet, or telecom- in decreasing the chance of data when a typhoon hits the beach, sep- munications networks), central- exposure to competitors, given arating family members and push- ized, and hybrid.8 Depending on that small, meaningless data ing them to different remote islands. the environment, communication chunks would be spread around While Alex tries to locate them, each facilities, and connectivity levels, the globe. stressed-out, injured family mem- each core can change roles from ber requires on-demand computa- service consumer to service provid- Low Latency tional resources to translate signs er or service arbitrator (who man- The IoC would enable service con- and speech for communication with ages the whole system). Wireless sumers to utilize nearby computing local rescuers. In the absence of a communications would take place resources instead of distant ones, cellular network, accessing Google using Bluetooth, wireless LAN, and whose utilization generates latency. speech and text translation is impos- cellular technologies, whereas Accessing distant cloud resources sible. In this scenario, Alex’s separat- wired connectivity would enable is associated with long latency, par- ed family members can build an ad thing-to-thing communications. ticularly for wireless clients, due hoc sensing, communication, com- to manifold intermediate hops puting, and storage cloud with local Benefits of IoC between service consumers and residents to perform required tasks.9 Successful integration of the IoC providers. Such communication la- with current architectures, partic- tency increases data access delay or High-Performance ularly NIST’s CPCC, would yield remote computation time, leading Scientific Computing several significant benefits, some the client devices to consume more Research and publication in sci- of which we examine next. energy. ence and engineering are a rapidly

Efficient Resource Allocation Heterogeneous pools of computing and storage resources provided by In the absence of IoC resources, assigning low- the global IoC would enable efficient intensity tasks to rich computing resources leads resource allocation to the given tasks based on inhomogeneous resource to resource underutilization. requirements. Scattered (global, continental, national, regional, and local) resources would be accessible Green Computing emerging trend in which research and consumable by centralized, hi- Computing devices are rapidly out- universities and institutes invest erarchical, and P2P communica- dated by technology advancements, considerable money in equipping tion models. In the absence of IoC leaving behind a huge number of their high-performance scientific resources, assigning low-intensity antiquated devices with a few cores, computing platforms. Despite tasks to rich computing resources gigabytes of RAM and storage, and these investments, researchers are leads to resource underutilization. a few hundred milliwatts of battery usually queued for resources due storage. Moreover, underutilized to the imbalance between requests Improved Content computers are barely running at and the supply of such resources. Security and Privacy full capacity because they’re used Incorporating hundreds to thou- Integrating a couple of billion mostly for Web browsing, account- sands of highly heterogeneous computing devices worldwide ing, or playing music, or are wait- computing devices owned by stu- into the IoT and CPS would ing idle to serve customers. The IoC dents and staff into the high-per- create an opportunity for stor- would bring such resources back formance computing platforms in ing fine-grained, replicated data into the computing cycle toward universities could facilitate and chunks globally instead of all in global green computing. expedite R&D efforts. a single warehouse—that is, if we The premises of university can maintain content vulnerabil- Use Cases campuses and institutes are usu- ity, availability, and security. Such Integrating cores in the IoC can ally Wi-Fi enabled and provide highly distributed storage might be beneficial in a wide range of free electricity to residents for their benefit parties such as small domains. computers and mobile devices. www.computer.org/computingedge 37 computer.org/ITPro 7 IT TRENDS

Therefore, it’s highly feasible and due to the capital and operational system, API, and feature hetero- practical to utilize such resources as costs of computing. The IoC can geneities among the multitude high-performance computing plat- alleviate this problem by providing of cores in the IoC necessitate forms, not only to expedite high- on-demand resources from ad- standardization. performance scientific computing, ministrators, employees, and even but also to increase resource utili- users to store and process big data Big Data Processing zation of residents’ devices. Unlike in real time, a feature that is un- Although the IoC will provide previous works, including SETI@ available in cloud and grid com- tremendous storage and comput- Home7 and grid computing,6 the puting models. ing resources to store and process IoC isn’t only focusing on high- large volumes of data, software performance computing at a global Challenges in Realizing solutions and algorithms that can scale, but also on a local scale. The the IoC Vision perform high-performance dis- IoC strives to provision on-de- Several social and technical im- tributed big data computing on mand, unrestricted, and uncondi- plications, particularly those we this scale are a nontrivial challenge. tioned resources via any possible next describe, need to be ad- The IoC demands highly distribut- communication technology under dressed before the IoC can be ed big data processing techniques both centralized and decentralized successfully implemented in with a low communication and architectures, something that isn’t practice. computing footprint.

Persistent Elastic Communications Incentivizing resource sharing by individual Persistent communications in the owners is necessary because the IoC is based on IoC refers to the ability to commu- nicate with a desired node us- the pay-as-you-use principle. ing any possible communication technology from a pool of hetero- geneous communication technol- currently available. Current sys- Global Hybrid Resource ogies and mediums with minimum tems are considering desktops and Scheduling user interference. The term “elastic” laptops, whereas the IoC consid- Global hybrid resource scheduling is inspired by cloud computing’s re- ers every single device capable of (GHRS) is essential in schedul- source elasticity. So, in elastic com- performing computation, includ- ing indexed and discovered re- munication, network capacity is ing car-mounted computers, smart sources on a global scale. The expected to expand as traffic grows watches, and smart coffee mugs. IoC requires hybrid scheduling, in an on-demand fashion. Realizing including both centralized and persistent elastic communications Mobile Analytics decentralized resource schedul- requires an integrated middleware Highly profitable mobile telecom- ing, to fulfill users’ computing and also traffic balancing solutions munications providers perpetu- and storage requirements any- similar to big data stream mobile ally struggle to gain insight both where, anytime. If connected to computing10 on a global scale to into their networks and about the Internet, resource consumers automatically select the most appro- subscribers to successfully adapt could choose a centralized sched- priate networking technology that their services to better serve and uler, whereas consumers can per- provides communication among ultimately retain subscribers. Us- form P2P discovery if centralized nodes despite existing heterogene- ers are constantly performing var- scheduling is either impossible ities and inconsistencies. ied voice and data transactions via or costly. their mobile communication net- Global Core Naming works in a mostly pay-as-you-use Interoperability In the future, each core will require a fashion. Such a business model Interoperability among highly unique, public, global static iden- necessitates that vendors keep heterogeneous and diverse com- tification number (GSID) that’s track of entire user and network puting nodes in the IoC is one of accessible independent from any activities to respond to complaints the most significant technologi- specific communication technol- and inquiries. However, storing cal and standards challenges to ogy. Although landline numbers, and computing such big data puts realizing the IoC vision. Exist- IPv6 numbers, and international vendors under serious constraints ing hardware, platform, operating mobile station equipment identity

38 ComputingEdge August 2015 8 IT Pro May/June 2015 (IMEI) numbers are globally unique latency, which is nontrivial to real- Framework for Exploiting Adjacent (except possibly fake IMEIs), their ize. The envisioned IoC promises Service-Based Mobile Cloudlets,” uniqueness is limited to certain to cope with the scale and fulfill Proc. IEEE Int’l Conf. Cloud Computing technologies or communication increasing computing demands. Technology and Science (CloudCom), networks. To realize this vision, we must an- 2014, pp. 793–798. swer questions such as how do we 10. J.S. Enzo Baccarelli et al., “Energy- Social Trust and Incentive keep track of billions of resources, Efficient Dynamic Traffic Offloading The IoC will comprise a huge num- how do we efficiently allocate the and Reconfiguration of Networked ber of individuals who own typically most appropriate local resource Datacenters for Big Data Stream more than one core. Without trust to the given task, what are the in- Mobile Computing: Review, Chal- among members of this society, centives for resource sharing, and lenges, and a Case Study,” IEEE Net- this concept can’t become reality how do we secure such a system work, to appear, 2015. due to the high impact of resource and establish trust among users? 11. J. Seigneur, “Social Trust of Virtual sharing among individuals.11 More- We are eager to see the IoC suc- Identities,” Computing with Social over, incentivizing resource sharing cessfully implemented in the near Trust, Springer, 2009, pp. 73–118. by individual owners is necessary future. 12. H.G.K. Hummel et al., “Encour- because the IoC is based on the aging Contributions in Learning pay-as-you-use principle of cloud References Networks Using Incentive Mecha- computing. Besides the financial 1. S. Abolfazli et al., “Cloud-Based nisms,” J. Computer Assisted Learning, cost of electricity to perform com- Augmentation for Mobile Devices: vol. 21, 2005, pp. 355–365. puting and storage, owners risk Motivation, Taxonomies, and Open sharing their resources with strang- Challenges,” IEEE Comm. Surveys Saeid Abolfazli is a research lead and ers. Thus, it’s impractical to expect and Tutorials, vol. 16, no. 1, 2014, data scientist at YTL Communications people to share their resources and pp. 337–368. and Xchanging Malaysia, where he leads accept this risk without any incen- 2. E.D. Simmon et al., A Vision of Cyber- various scientific and analytic R&D ac- tive. Successful IoC deployment Physical Cloud Computing for Smart Net- tivities for WiMAX and LTE networks. necessitates extrapolating incen- worked Systems, US Nat’l Inst. of Stan- His main research interests are mobile tive mechanisms in e-learning12 to dards and Technology interagency/ cloud computing, cloud-based mobile the crowd and personal computing internal report 7951, Aug. 2013. augmentation, and big data analytics for areas. 3. J. Letzing, “Facebook Data Center mobile users. Contact him at abolfazli@ Is Boon for Oregon Town,” Wall ieee.org. International Governance Street J., 21 Jan. 2011. and Regulation 4. Z. Sanaei et al., “HMCC: A Hybrid Zohreh Sanaei is a research lead and The IoC requires setting inter- Mobile Cloud Computing Frame- data scientist at YTL Communications national rules and regulations, work Exploiting Heterogeneous and Xchanging Malaysia. Her main re- particularly data sovereignty. In Resources,” Proc. IEEE Mobile Cloud search interests are mobile cloud comput- the global IoC, user data and some Conf., to appear, 2015. ing, distributed computing, and big data sensitive data might be stored in 5. M. Weiser, “The Computer for the analytics for mobile users. Contact her at data warehouses outside countries 21st Century,” IEEE Pervasive Com- [email protected]. in which it is banned in the cur- puting, vol. 1, no. 1, 2002, pp. 19–25. rent setting. Some countries don’t 6. F. Berman, G. Fox, and A. Hey, Grid Irena Bojanova is a professor and pro- allow certain data to move beyond Computing: Making the Global Infra- gram director of information and technol- their boundaries, which is known structure a Reality, Wiley, 2003. ogy systems at University of Maryland as the data sovereignty issue. 7. D.P. Anderson et al., “SETI@home: University College. You can read her Inter- An Experiment in Public-Resource net of Things blog and her cloud computing Computing,” Comm. ACM, vol. 45, blog at www.computer.org. Contact her at hings are increasingly con- no. 11, 2002, pp. 56–61. [email protected]. necting to the Internet for 8. Z. Sanaei et al., “Hybrid Pervasive T enhanced quality of life. Mobile Cloud Computing: Toward However, successful deployment Enhancing Invisibility,” Informa- of IoT systems globally demands tion—An Int’l Interdisciplinary J., vol. highly scalable, on-demand com- 16, no. 11, 2013. ThisSelected article CS originally articles appearedand in puting resources distributed 9. S. Abolfazli et al., “RMCC : A IT Professional,columns are available vol. 17, forno. free 3, 2015. at across the globe with the least RESTful Mobile Cloud Computing http://ComputingNow.computer.org. www.computer.org/computingedge 39 computer.org/ITPro 9 SOFTWARE TECHNOLOGIES

Designing Resource- Aware Cloud Applications

Reiner Hähnle, Technical University of Darmstadt Einar Broch Johnsen, University of Oslo

Realizing the full potential of virtualized computation—the cloud—requires rethinking  software development. Deployment decisions, standpoint. One such quality is elasticity: businesses can pay for and their validation, can and should be moved computing resources only when they’re needed, avoiding major up- up the development chain into the design phase. front investments for resource pro- visioning; the client application can add processing power, memory, s data storage and processing move to the and additional virtual machines on the ‚y as needed. The cloud, our interactions with computers are un- cloud also oƒers a scalable virtualized platform for data dergoing dramatic transformation. The cloud, processing that can be shared among multiple devices—if as a network of virtual machines, has no xed a service uses cloud- based processing, its capacity can be locationA and is only accessed remotely. Although many adjusted automatically as new users arrive. Thus, another continue to use a desktop PC to access cloud- based data key cloud feature is agility: new services can be quickly and applications, people increasingly rely on their smart- and ‚exibly brought to market at minimal cost, without phones, tablets, and other mobile devices. initial investments in hardware. Despite serious data- privacy concerns, several qual- With these key advantages, cloud computing is rap- ities make cloud computing compelling from a business idly gaining popularity throughout the world. Currently, there are more than ‡.ˆ million cloud computing–related jobs in the US and more than Œ million worldwide.Ž In the Selected CS articles and columns are also available EU, cloud computing is projected to create Ž.“ million jobs ‡ for free at http://ComputingNow.computer.org. and grow the economy annually by ”•– billion by Ž–Ž–. However, inconsistent reliability and insu˜cient control

40 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE 72 COMPUTER PUBLISHED BY THE IEEE COMPUTER SOCIETY 0018-9162/15/$31.00 © 2015 IEEE

r6sof.indd 72 5/22/15 10:46 AM EDITOR MIKE HINCHEY Lero—the Irish Software Research Centre; SOFTWARE TECHNOLOGIES [email protected]

of resources present signicant barri- 120 ers to the industrial adoption of cloud 100× computing. To overcome these bar- 100 riers and gain control of the cloud’s 80 virtualized resources, client services must become resource aware. 60

40 RETHINKING SOFTWARE 15× DEVELOPMENT 20 6.5× The virtualization of computation has 1× 0 transformed how we interact with, Design Implementation Testing Maintenance share, and manage data, but taking Development phases full advantage of cloud computing re- quires us to rethink how we design and Figure 1. Relative costs to fix software defects at each phase of the development pro- develop software. cess in a static infrastructure. (Source: IBM Systems Sciences Institute) The elasticity of software executed in the cloud gives designers control over the execution environment’s re- 40× 120× 100× 120× source parameters, such as the num- 120 ? ? ber and kind of processors, memory, 100 storage capacity, and bandwidth. Para- meters can even be changed dynami- 80 cally at runtime. Thus, cloud- service 60 clients can not only deploy and run software, but they can also fully con- 40 trol the tradeos between incurred 15× 20 6.5× costs to run the software and the qual- 1× 0 ity of service (QoS) delivered. Design Implementation Testing Deployment Maintenance Traditionally, software design is Development phases based on specic assumptions about deployment, including the size of Figure 2. Relative costs to fix software defects at each phase of the development data structures and the amount of process in an elastic virtualized infrastructure. (Source: E. Albert et al., “Engineering RAM and number of processors re- Virtualized Services,” Proc. 2nd Nordic Symp. Cloud Computing Internet Technologies quired to execute it. However, be- [NordiCloud 13], 2013, pp. 59–63) cause of the cloud’s transformative eect on computation, software now must be designed for scalability from additional economic losses associated to detect and x deployment errors— the beginning or else it will later re- with delayed time to market, lost cus- such as failure to meet service- level quire extensive design changes. tomers, and bad public relations. agreements (SLAs)—as early in the de- Later changes to software can be The ratios in Figure ‡ are for static velopment process as possible, prefera- fatal because of the relative increase deployment, but it’s reasonable to ex- bly during the design phase. in cost to x defects during succes- pect even more signicant costs when To maximize cloud computing’s sive development phases. As Figure ‡ xing defects in elastic virtualized en- potential, software development de- shows, the IBM Systems Sciences Insti- vironments due to the additional com- mands a new methodology that mod- tute estimated that, compared to x- plexity of resource management. Fig- els deployment during the design ing a defect during design, it costs Š.‹ ure Ž presents a conservative estimate phase and facilitates detection of de- times more to x during implementa- of the ratios in an elastic environment: ployment errors early and e“ciently tion, ‡‹ times more during testing, and it can cost between Œ and ‡ŒŒ times through the use of software tools such ‡ŒŒ times more during maintenance. more to x defects during deployment as simulators, test generators, and These costs don’t take into account than during design. It’s thus essential static analyzers.

www.computer.org/computingedge 41 JUNE 2015 73

r6sof.indd 73 5/22/15 10:46 AM SOFTWARE TECHNOLOGIES

modify resource parameters, as Fig- Legal contract ure „ shows. The cloud API isn’t iden- SLA Service contract tical to the APIs commonly o€ered by cloud providers, but is instead an Client layer abstract interface to the provisioning layer. Using an executable language, such as Abstract Behavioral Speci- Š Provisioning layer cation (ABS), it enables design- phase modeling of client behavior to simu- late di€erent client- side provisioning Figure 3. Conceptual layers of a deployed cloud service. Functionality is represented schemes and observe their impact on in the client layer. The provisioning layer makes resources available to the client layer cost and performance. Creating such and determines available memory, processing power, and bandwidth. The service level an executable model is feasible during agreement (SLA) specifies what resources the provisioning layer should make available the design phase. to the client service and includes both a legal and a service contract. Second, to connect an SLA to the client layer, a formal semantics is given to service contract aspects of the SLA. This would allow, at design Legal contract layer time, analysis of client behavior such as resource consumption and worst- Formal service contract Formal methods case performance vis- à- vis the SLA; “early analysis” test- case generation; and functional Simulation Executable model of client layer Ž “early modeling” verication. This process is highly au- ‘ Cloud API Runtime monitoring tomated, for example, in ABS. Design- “late analysis” time analysis makes the assumptions Provisioning layer about the cloud API explicit. The cloud API also permits instrumentation of deployed applications with monitors Figure 4. Conceptual layers of a resource-aware deployed cloud service. The service that ensure compliance with the ser- contract is formalized and statically checked against an executable client model at vice contract at runtime. design time. The client model can access an abstract interface to the provisioning layer in the form of a cloud API, thus enabling simulation. The cloud API also permits BENEFITS OF RESOURCE instrumentation of deployed applications with monitors that ensure compliance with AWARENESS the service contract at runtime. Making deployment decisions during the design phase can help shift con- trol from the provisioning layer to CONTROLLING DEPLOYMENT and bandwidth. The SLA species the client layer and enables the client IN THE DESIGN PHASE what resources the provisioning layer service to become resource aware. Our analysis presents a software engi- should make available to the client This provides numerous attractive neering challenge: how to introduce service. A typical SLA has two compo- opportunities. deployment decision validation into nents: a legal contract stating the mu- the modeling phase of the software de- tual obligations of the client service Fine-grained provisioning velopment chain without convoluting and software developer, and conse- As in other metered-industry sec- the design with deployment details. quences in the event of a breach by ei- tors such as telephony and electric- With a cloud- based service, devel- ther party; and a service contract that ity, business models for cloud- based opers typically design its functionality details the technical parameters and resource provisioning are increas- rst, then determine which resources cost gures for the o€ered services. ingly ne grained. Selecting the best are needed and how they’ll ultimately We propose connecting these cur- software model is highly complex, be provisioned through an SLA, as rently distinct conceptual layers to which thus far has beneted resource Figure  shows. Functionality is rep- better control deployment in the de- providers. Design- time analysis and resented in the client layer. The provi- sign phase. comparison of deployment decisions sioning layer makes resources avail- First, the client should have access make it possible to optimize provi- able to the client layer and determines to the provisioning layer through sioning schemes for end users, such available memory, processing power, a special cloud API to observe and as spot pricing.

42 ComputingEdge August 2015 74 COMPUTER WWW.COMPUTER.ORG/COMPUTER

r6sof.indd 74 5/22/15 10:46 AM Tighter provisioning other details about the project, at www ”. E.B. Johnsen et al., “ABS: A Core Better proles of the client layer’s re- .envisage- project.eu. Language for Abstract Behavioral source needs will help cloud provid- Specication,” Proc. th Int’l Symp. ers avoid over- provisioning to comply ACKNOWLEDGMENT Formal Methods for Components and with their SLAs. Better usage of re- This work was supported in part by EU Objects, LNCS ‘š”ˆ, Springer, –“’’, sources means that more clients can be project FPˆ-‘’“”•– Envisage: Engineering pp. ’Ÿ––’‘Ÿ. served with the same amount of hard- Virtualized Services. ‘. E. Albert et al., “Engineering Virtual- ware in the datacenter, without violat- ized Services,” Proc. nd Nordic Symp. ing SLAs and incurring penalties. REFERENCES Cloud Computing Internet Technologies ’. R. Buyya et al., “Cloud Computing (NordiCloud ’£), –“’£, pp. ”š–‘£. Application-specific and Emerging IT Platforms: Vision, ˆ. E. Albert et al., “Formal Modeling resource control Hype, and Reality for Delivering of Resource Management for Cloud Through design-time analysis of Computing as the ”th Utility,” Future Architectures: An Industrial Case scalability, the client layer can better Generation Computer Systems, vol. –”, Study Using Real-Time ABS,” J. leverage the cloud’s elasticity. Know- no. ‘, –““š, pp. ”šš–‘’‘. Service-Oriented Computing and ing beforehand the load thresholds for –. L. Columbus, “Where the Cloud Com- Applications, vol. •, no. Ÿ, –“’Ÿ, scaling up deployment, cloud- services puting Jobs Will Be in –“’”,” Forbes, pp. £–£–££š. providers can avoid breaking SLAs and ’– Dec. –“’Ÿ; www.forbes.com/sites disappointing end users’ expectations. /louiscolumbus/–“’Ÿ/’–/’–/where -cloud-computing-jobs-will-be-in-–“’”. This article originally appeared in Application-controlled elasticity £. European Commission, “European Computer, vol. 48, no. 6, 2015. Autonomous, resource-aware ser- Cloud Computing Strategy,” Digital vices that run their own resource- Agenda for Europe: A Europe –“–“ management strategy are possible. Initiative, updated –ˆ Feb. –“’”; REINER HÄHNLE is a professor and dean of the Computer Science Such services could monitor loads on http://ec.europa.eu/digital-agenda Department at the Technical virtual machines as well as end- user /en/european-cloud-computing University of Darmstadt. Contact him trac, and thus could make decisions -strategy. at [email protected] darmstadt.de. about the tradeos between the QoS Ÿ. B.W. Boehm and P.N. Papaccio, delivered and the incurred cost. The “Understanding and Controlling EINAR BROCH JOHNSEN is a professor in the Department of service could interact with the provi- Software Costs,” IEEE Trans. Soft- Informatics at the University of Oslo. sioning layer through an API to dy- ware Eng., vol. ’Ÿ, no. ’“, ’š••, Contact him at einarj@ifi.uio.no. namically scale up or down, or it could pp. ’Ÿ‘––’Ÿˆˆ. even request or bid for virtual ma- chine instances with given proles in a future virtual resource marketplace.

he eciency and performance of cloud- based services could stay connected. Tbe improved by moving deploy- ment decisions up the development chain. In addition, resource- aware services could give the client better control of resource usage and thereby comply with SLAs more inexpensively. Formal methods for early analysis, | @ComputerSociety | @ComputingNow executable models of client behav- ior for early monitoring, and runtime | facebook.com/IEEE ComputerSociety | facebook.com/ComputingNow monitors for late analysis are key ele- ments to realizing this vision. Concrete | IEEE Computer Society | examples of these elements are being Computing Now implemented as part of the EU FPˆ proj- | youtube.com/ieeecomputersociety ect “Envisage: Engineering Virtualized Services” and are described, along with

www.computer.org/computingedge 43 JUNE 2015 75

r6sof.indd 75 5/22/15 10:46 AM Innovations in Ubicomp Products Editor: Albrecht Schmidt n University of Stuttgart n [email protected]

Connected Tools in Digital Design

Christian Weichel, Jason Alexander, Abhijit Karnik, and Hans Gellersen, Lancaster University

EDITOR’S INTRO measure those features so that they can inform a particular design. These tools, until now, have been analog tools, The Internet of Things has become a mainstream topic. Many ideas and concepts discussed in pervasive and ubiquitous computing over the last two decades are now because users must manually read a commonly accepted. Here, the authors give us a glimpse of the potential when we value from them (for example, from a make tools part of the Internet of Things. Their prototypes aren’t yet products. How- veneer scale or a display) to incorporate ever, in looking at the potential for reducing errors and saving time, I expect many the value into a design. In particular, connected tools to hit the market in the next few years—not only in engineering but also in other domains such as medicine, cooking, and agriculture. The examples when using CAD software, or design- provided show impressively how tools, once connected, offer new opportunities. ing in any other virtual environment, The idea of bridging the digital and physical is intriguing, and many technolo- users often employ these tools to get a gies get us closer to this vision. Some of the ideas, although they’ve been around sense of the size of what they’re design- for a while, are still inspiring. It might be a good time to read (or re-read) the book Mirror Worlds: Or the Day Software Puts the Universe in a Shoebox—How It Will Hap- ing. How big is the box shown on the pen and What It Will Mean, by David Gelernter (Oxford, 1993). Also see this issue’s screen in the real world? related Spotlight department, “The Mirror World: Preparing for Mixed-Reality Living.” — Albrecht Schmidt BRIDGING THE INPUT GAP With digital design, these analog, dis- connected tools create an inconvenient s digital fabrication and digital The interfaces and environments used design experience. Every interaction A design become more and more for designing these artifacts are typi- with physical features requires us to pervasive, the physical tools we use in cally tied to a computer screen and are shift our attention from the design conjunction will have to catch up. With thus removed from the physical world. environment to the physical world and the Internet of Things, cyberphysical This separates the physical nature of back. The measured value must be systems, and Industry 4.0 in our midst, the fabricated artifacts from the vir- manually transported from the mea- connecting and integrating measure- tual environments in which they were surement tool or vice versa. These con- ment tools into design processes is a designed. However, during the design text switches are time consuming and logical step. Here, we describe the rst of a fabricable artifact, physical fea- disruptive to the design workow. steps in that direction, coming from tures (such as size and angle) play an This disconnection has been recog- a variety of communities: academics, important role, because the artifact will nized by measurement tool vendors makers, and industry alike. In par- be subject to that physicality once fabri- and makers. Both communities are ticular, we present our spatio-tangible cated. Furthermore, fabricated artifacts exploring and producing computer- (SPATA) tools for fabrication-aware often interact with previously existing connected tools—for example, calipers design. objects—for example, holding, encas- that can unidirectionally transfer mea- ing or decorating them. sured value to a computer. An example DIGITAL DESIGN AND In digital fabrication, as well as in is Mitutoyo; they sell data cables for FABRICATION design and engineering, physical fea- their measurement tools that act as Digital fabrication, such as 3D printing tures play an important role. Many virtual keyboards. Measurements are and laser-cutting, lets users quickly cre- tools, such as calipers, rulers, and directly entered into the computer, and ate physical artifacts from digital les. protractors, have been developed to these cables are advertised as a means

44 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE 18 PERVASIVE computing Published by the IEEE CS n 1536-1268/15/$31.00 © 2015 IEEE to make repetitive data-entry tasks more ef cient.1 Because the input is the same as from a keyboard, it works with any software. The maker community uses an Arduino to connect to a cheap traditional caliper, read its value, and integrate that into a 3D design environ- ment.2 This is just a starting point for connected tools and, in our research, we explore how to extend this concept. (a) (b) SPATIAL-TANGIBLETOOLS SPATA is a system that introduces tan- gible tools for fabrication-aware design 3 (SPATA tools), a digital adaptation Figure 1. The two spatial-tangible (SPATA) tools next to their original counterparts. of two commonly used measurement (a) calipers for size in-/output and (b) the protractor for angle in-/output. tools: calipers for measuring length, and bevel protractors for measuring angle. The SPATA tools can measure require physical measurements taken SPATA supports the creation of boxes their respective value (length or angle), from existing objects. from a prescribed series of real-world but are also actuated so that they can To reduce the need to switch between measurements (width, height, depth, actively present the value in the physical the virtual and physical world, the inte- and so on). The measurements can be world: the calipers have a self-actuated grated tools support those tasks in the performed in rapid succession using lower jaw that can physically represent respective design environments. By the button on the SPATA tool, so users length; the protractor can move its partially ofoading control to the mea- can create a new cube with no context blade to output an angle (see the red surement tools, task execution becomes switch (see Figure 2). A similar sequence parts shown in Figure 1). more uid and convenient. For exam- exists for cylinders: rst measuring the Both tools can bidirectionally trans- ple, to model a box-shaped object (such diameter, then height. After a primitive fer—input and output—their value as an enclosure) using SPATA, users can has been created, SPATA stays in this between the physical and virtual world. measure all three dimensions (width, mode, enabling a series of primitives to Users can measure a physical object, height, and depth) in sequence without be built on top of each other. Elsewhere, and the measured value is automati- having to put down the SPATA calipers we describe a use case in which this cally transferred to the design environ- or manually type in measurements. workow integration reduced the num- ment. Conversely, length, distance, and To further support design tasks, ber of context switches by 74 percent.3 angle measured in the virtual environ- SPATA tools can sense their orienta- Another common design environ- ment are automatically transferred to tion, display additional information ment type is mesh-based 3D modeling, the physical world and presented by the (such as estimated fabrication time or which is a general-purpose modeling SPATA tools. For example, to get an the amount of required material), and paradigm. It’s often used to create impression of the size of an object a user have a button built in. We combine organic and artistic models in tools, is designing, you can measure the object these capabilities to provide a more such as Autodesk Mudbox, , or in the design environment and have the integrated and convenient design expe- ZBrush. The smallest unit of manipu- SPATA calipers tangibly output the size rience when designing for the physical lation is a vertex or an edge of the 3D in physical space. world. model. Among other things, SPATA can SPATA integrates closely into virtual be used to scale models in these envi- environments used to design fabricable INTEGRATION WITH DESIGN ronments, bringing, for example, the artifacts—namely, mechanical com- ENVIRONMENTS model to a certain size based on a single puter aided design (mCAD), mesh- Modern mCAD systems, such as dimension. The application scenario in based modeling, and 2D design. When Autodesk Inventor or SolidWorks, are the related sidebar demonstrates more designing new objects in these envi- based on 2D sketches that are extruded of the integration available. ronments, users create shapes (such as or revolved into solid 3D objects. When primitives like boxes, cylinders, or rect- drawing sketches or creating these GENERALIZING BEYOND angles), manipulate them, and combine objects, users need to constrain differ- FABRICATION them into new forms. Those tasks, in ent dimensions, often using physical The SPATA concept—automated mea- a fabrication-aware context, often values, such as length and angle. surement transfer and integration into

www.computer.org/computingedge 45 APRIL–JUNE 2015 PERVASIVE computing 19 INNOVATIONS IN UBICOMP PRODUCTS INNOVATIONS IN UBICOMP PRODUCTS

Figure 2. Creating a box (from left to right): select the ground plane, measure width, height, and depth.

APPLICATION SCENARIO

In this scenario, we want to create a ower vase that will be 3D printed. To model the vase, we use a mesh-based design envi- ronment that supports vertex-based modeling, sculpting, and constructive solid geometry. For artistic modeling, open input is often used instead of a mouse; we follow this practice. We start the design process by creating a new cylinder. The vase needs to be correctly sized so that owers t in it and it can be placed on a desk. Using the SPATA calipers and their ability to globally scale, we scale the cylinder until it is 8 centimeters 1 2233 high. Using local scaling, we scale the diameter of the vase to 4 centimeters (see Figure A1). Next, we add the decorative features by drawing on the cylinder using the pen. We use the SPATA calipers, which we now hold in our nondominant hand, to rotate the model so that we can draw on all sides (see Figure A2). This way, we don’t have to change the mode from drawing to rotating; use the pen to draw and the SPATA tool to rotate. Sculpting the shape has changed its size as well. Using 45 Blender’s built-in measurement tool, we measure the vase model. This causes the SPATA calipers to output that size in the Figure A. Creating a vase. (1) We start with a cylinder, scaled physical world (see Figure A3). This way we can compare the to 8 centimeters using the SPATA calipers. (2) We sculpt size against the ower, or get a feel for the dimensions of the vase we’re creating. decorative features, using the SPATA tools for orientation. To make the vase more interesting, we want it to stand (3) We check the size of the model and (4) explore different slightly angled. To explore different angles, we use the SPATA ower-hole angles. protractor. During this exploration, our focus is on the SPATA tool, which gives us additional, fabrication-specic feedback. Lastly, we cut off the bottom to create a at surface for the When we use a too steep angle, we’ll be warned when the cur- vase to stand on and add the ower hole. We then send it to a rent angle will make the fabrication take longer and be more 3D printer. The resulting vase ts the ower as designed and expensive (see Figure A4). doesn’t need support structures to print (see Figure A5).

design environments—generalizes Physical features besides length and display the current ink color on to tools other than calipers and pro- and angle could also be considered. its back. tractors. On different scales, differ- For example, an integrated measure- The need for integrating spatial fea- ent tools are used. HandSCAPE,4 the ment tool for material stiffness could tures extends beyond design for fab- digital measurement tape, for exam- be used to design multimaterial 3D rication. In computer supported col- ple, could also output its value using printed objects. Adobe sells tangible, laborative work, or whenever there is an additional motor. Alternatively, a integrated tools (a pen and a ruler) a spatial/temporal division between folding ruler could be augmented to for Desktop Publishing and sketch- users, SPATA could be used to trans- support input and output of not only ing (www.adobe.com/uk/products/ fer spatial features. For example, two length but also the angle along its ink-and-slide.html). The pen can spatially disconnected users could joints. pick up colors from the environment exchange the screen-size of the new

ComputingEdge August 2015 20 46PERVASIVE computing www.computer.org/pervasive INNOVATIONS IN UBICOMP PRODUCTS

tablet they’ve bought. In a temporally www.mitutoyo.com/press_releases/ Jason Alexander is a lec- disconnected scenario, users could get new-mitutoyo-usb-input-tool. turer in Human-Computer an impression of the size of an object 2. M. Thalheimer, 2013, “Arduino Reads Interaction at Lancaster offered in an online store, or measure Digital Caliper,” blog, 2013; https:// University, UK. He has a par- parts of their body to order a custom- sites.google.com/site/marthalprojects/ ticular interest in designing home/arduino/arduino-reads-digital- made product. caliper. systems that bridge the vir- tual-physical divide. Contact him at j.alexander@ 3. C. Weichel et al., “SPATA: Spatio- lancaster.ac.uk. Tangible Tools for Fabrication- onnected and integrated design Aware Design,” Proc. Ninth Int’l C tools have the potential to make Conf. Tangible, Embedded, and Abhijit Karnik is a lec- digital design not only more convenient Embodied Interaction (TEI), turer of human-computer 2015, pp. 189–196; http://doi.acm. but also easier to use. Through close org/10.1145/2677199.2680576. interaction at the Lancaster integration into design environments, University, UK. Contact him we can lower the barriers for new users. 4. J. Lee et al., “HandSCAPE: A Vectoriz- at [email protected]. ing Tape Measure for On-Site Measur- Future work will need to explore this ing Applications,” Proc. SIGCHI Conf. potential and go beyond traditional Human Factors in Computing Systems tools. Connecting new tangible interac- (CHI), 2000, pp. 137–144; http://doi. Hans Gellersen is a profes- acm.org/10.1145/332040.332417. tion technologies (such as shape-chang- sor of interactive systems at ing displays) with digital design envi- Lancaster University’s School ronments will likely have a profound of Computing and Commu- impact on how we design things. Christian Weichel is a nications. Contact him at PhD student in the School [email protected]. of Computing and Com- REFERENCES munications at Lancaster Selected CS articles and columns 1. Mitutoyo America Corp., “New Mitu- University. Contact him at Thisare article also available originally for free appeared at in toyo USB Input Tool,” 3 Aug. 2011; [email protected]. IEEEhttp:// PervasiveComputing Computing,Now.computer.org. vol. 14, no. 2, 2015.

IEEE Pervasive Computing explores the many facets of pervasive and ubiquitous computing with research articles, case studies, product reviews, conference reports, departments covering wearable and mobile technologies, and much more.

Keep abreast of rapid technology change by subscribing today!

www.computer.org/pervasive

www.computer.org/computingedge APRIL–JUNE 2015 PERVASIVE computing47 21

TOM EMRICH Consultant

Mobile, Wearables, and Emerging Tech ROCK STARS OF

TIM MOORE Director of Wearable WEARABLES Technologies, Rochester Optical

PANKAJ KEDIA

Senior Director & Business Lead, Smart WearablesQualcomm

23 September 2015 Brazos Hall What Technologies Are Needed for Austin, TX Wearables? What Markets are Emerging? Stake Your Claim in the Fast-Growing Future of REGISTER NOW Wearables. Early Discount Pricing Now Available! At this must-attend event of 2015, top industry experts give you computer.org/ actionable solutions for wearable success. wearables You’re invited. INTERVIEW Editor: Gary McGraw, [email protected]

true with trying to produce a pro- Silver Bullet Talks with gram or something that you really want to behave a certain way or look a certain way. Maybe it works out, Brian Krebs maybe it doesn’t.

Reporting does have this thing— Gary McGraw | Cigital well, should have this thing—called fact-checking, which it used to be better at. I know you’re extremely careful with that. Hear the full podcast at www.computer.org/silverbullet. Show links, notes, Fact-checking is increasingly a lux- and an online discussion can be found at www.cigital.com/silverbullet. ury in journalism: having somebody looking over your shoulder, some- body to question your assumptions about things. As a journalist, you get yourself into trouble really quickly if machine in the house impacted your you’re not taking your assumptions career? at the door as oen as possible. As a kid, I spent a ridiculous amount of time tying up our phone Systems often break in surpris- lines at home working on an Apple ing ways. So if you can get to the II and then an Apple II Plus. I was assumptions that the architect, the on the bulletin boards, these text- designer, or the engineer was mak- based communities, downloading ing and make them disappear, the all kinds of stu. systems just crumble. at’s a very high-level technique but a very use- I think the idea of growing up ful one. around a machine and doing a little Who knew that there were such bit of coding and really understand- parallels? rian Krebs is a reporter and ing how something like that works B blogger who runs the world- helps to ground any sort of report- I’ve been working with Richard Dan- famous website KrebsOnSecurity ing in technology. A lot of people zig, who used to be the Secretary of .com. Krebs was a reporter for e don’t have that, so maybe that’s an the Navy, on getting Washington, Washington Post before forming advantage for you. DC, to understand cybersecurity. Krebs on Security; he has wri en People think of what they see in He has a deeply disturbing view of thousands of pieces for the Secu- the movies about reporters run- MUD [mutually unassured destruc- rity Fix blog and many front-page ning around, chasing down politi- tion] versus MAD [mutually assured stories. His book Spam Nation was cians. For the most part, reporting destruction]. e notion is that if we released in November 2014. is boring as all get out, and it’s data- have cyberkinetic capability and intensive work. Half the time you can make a second strike possibil- You were an Apple II guy way back put all your blood, sweat, and tears ity go away, in the nuclear realm it’s in the early ’80s, and so was I. In into something, and it turns out much more likely that people will do fact, my machine led indirectly to to be a pile of nothing. You’ve got a first strike, which is really, truly, my work in software security. Do nothing to show for it, and it’s frus- deeply disturbing. I had never really you think that growing up with a trating. e same thing is probably thought of it until he expressed it

2376-113X/15/$31.00 © 2015 IEEE Published by the IEEE Computer Society August 2015 49 1540-7993/15/$31.00 © 2015 IEEE Copublished by the IEEE Computer and Reliability Societies January/February 2015 7 INTERVIEW

there that we were assuming was About Brian Krebs always going to work properly!” I rian Krebs was a reporter for e Washington Post until 2009, think that got those guys on the B when he started his blog, KrebsOnSecurity.com, which focuses stick. e rest of the world and many on cybercriminals, mostly centered in Eastern Europe, who profit other disciplines, retail for example, o malware, spam, frauds, and heists. Krebs became interested in haven’t quite gotten the message, computer security after his home network was overrun by a Chinese although they’ve been getting huge hacking group in 2001. He began learning all he could about writing wake-up calls lately, I suppose. code and hacking, and even taught himself Russian. Krebs was the I still don’t think they have got- first to report on the Stuxnet virus and the massive Target data ten the message. I don’t care what © Kristof Clerix breach, and he broke the news of hacks and fraud at Adobe Systems, business you’re in, if you’re mak- Experian, and Neiman Marcus. His book Spam Nation: e Inside Story of Organized Cybercrime— ing widgets or selling retail goods from Global Epidemic to Your Front Door was released in November 2014 and is now a New York or shipping cruise missiles. I think Times best seller. if the people who run the organi- zation haven’t undergone a criti- cal shi in thinking about how they protect their systems, they’re clearly in a paper that he wrote for than 25 speaking engagements and probably way more compromised CNET. What do you think of the risks a book tour. Many of the companies than they know. You can usually and the hype surrounding cyberwar I’ve spoken at have been Fortune tell which companies have a clue versus the reality of the cybercrime 500 companies. It’s been really inter- about this, because the board or that you’re steeped in every day? esting to hear the questions they’re the people in charge of operations I think a lot of what gives Washing- asking and hear the answers they’re are asking, above all, one very criti- ton pause about taking the whole giving me in response to my ques- cal question, which is how much of cyber issue seriously is that every- tions, which are essentially trying to our scarce IT security resources are body’s been holding their breath for get a sense of how clued in the lead- we spending trying to keep the bad a long time for some big a ack that’s ership within that organization is guys out versus guring out when going to rock the various services. about their reliance on technology, they get in as quickly as possible to computer systems, and information stop the bleeding. e cyber Pearl Harbor. security. e point I try to get across Right. We’ve been in a cyberwar to these organizations with varying e issue in computer security is with our adversaries for many years degrees of success is that if you look that measuring security is a di- now, and it’s only starting to dawn at any modern business, it runs 100 cult thing to do. It’s something I’ve on a small cadre of folks in DC percent on information technol- been working on for about 20 years, about how badly it’s gone for us over ogy, whether the people who run and I think that we’re making some the last few years. We are the world’s that company want to acknowledge progress, but there’s no magic x-ray most technology-dependent nation, that. at’s the truth these days. If machine where you could x-ray your and our vulnerabilities reect that. the technology breaks down, every- IT infrastructure and say, “All right, So just because we haven’t seen that thing stops. But you wouldn’t oen we’re good to go,” and that makes it cyber Armageddon a ack, it doesn’t notice from looking at what com- a challenge to talk to boards about. mean that we’re not already moving. panies invest inIT security It comes back to something we relative to their overall dependence talked about earlier, which is I want to compare it to cybercrime. If on it. And I’m not just talking about assumptions. Having that kind of you look at the root cause of all this money. It’s not a spending issue. It’s vigilance really does mean having stu, it’s very similar. So if we build a priority issue. some smart people who are empow- smarter, it will help us with cyberwar ered within your organization, who defense, or making sure that cyber- e data you get back from that sort understand the technology and war doesn’t happen, and help us of thing diers by business vertical understand the dependence on it, address the cybercrime problem. pretty vastly. e people in finan- and are empowered to ask questions You’re right in that both of the cial services were really woken up that make people uncomfortable. problems stem from an under- by Sarbanes-Oxley, which made appreciation of how much we rely them wonder where those account- Let’s shift gears a little. Malware on these technologies. Last year ing numbers came from. “Holy cow, plays a central role in the things was a busy year for me. I had more there’s a huge pile of software under you cover, but most malware is

50 ComputingEdge August 2015 8 IEEE Security & Privacy January/February 2015 parasitic—the result of bad soft- systems stop working, you can’t get of that, in the tech publications ware. Why do you think the popu- access to critical information, and online that cover this stu, there’s a lar press tends to ignore security people die. It’s a real concern. lot more competition for the same engineering, software security, and eyeballs, so they’re pushing their any solutions to our never-ending I want to push on the reporting angle reporters to produce three, four, parade of hacks, and gleefully talks one more time. Why can’t old media ve, and sometimes six stories a day. about the next hack all the time? support in-depth security reporting I’m probably not the best person to of the sort that you do? Do you think at’s where the fact-checking goes answer this question because I’m e Washington Post will recover away. always pointing out the problems. from cutting most of its technology e fact-checking starts to break It’s a lot more fun to point out the ranks, including yourself, but a lot of down. Not only that, but you can problems than it is to try to suggest other people, too? Or are we going forget about enterprise reporting. It solutions with a straight face. have a jillion “so-and-sos on such- doesn’t happen in that environment. and-such” that are super in-depth For me it was an existential thing. I I think the world thinks about com- but not part of a big juggernaut? was freaking out when they elimi- puter security with a little too much e traditional media, which I like nated my job at the Post. I didn’t Hollywood thrown in and not quite to call the “dead tree edition,” does really know what else to do except enough, “We need some of those a pre y good job of understanding continue what I was doing. But then people from Volvo that are think- who their target market is. In the I thought, “Well, you know, as long ing about safety to work on this,” case of my former employer, they as I’m good at this and people want as opposed to the NASCAR watch- correctly identied that their target to read what I have to say, I’ll gure ers that are covering spectacular market cares more about national it out at some point.” And I think crashes. Do you have any good ways security than they do about tech- I have, to some degree. I guess my of getting the general public inter- nology or cybercrime. I think the focus initially was how to dierenti- ested in solutions? Post has really tried to make its ate myself. How do I not get caught It would be nice if we had some- mission Washington focused; they up in the story of the day? And then thing in place that would make want to put a policy slant on stu, I said, “ere’s the answer. Just don’t companies care a li le bit more and they want to tell stories that shape the story of the day. Just go about shipping code that wasn’t help explain those issues through write stu that you can’t get any- Swiss cheese. Any sort of liability the lens of Washington, DC. It’s where else.” for that isn’t going to happen. I’ve not that the other things aren’t said this before; I still believe it. important; it’s just that they may Let’s talk about the retail vertical. I Not much changes in that regard not be priorities for them, which is think it’s pretty clear to everybody until we start to be able to mea- ne. at was part of the reason we that retail’s kind of hosed. Now that sure the fact that people are dying had a fundamental disagreement you’ve given them some religion, do because of poor soware security. over this issue. you think they’ll go about their recov- ery correctly? What’s your view of how We talked about that in Washing- I just think the technology desk they’ve done since the big breaks? ton. People at the FDA, at the advi- is way thinner than it used to be. It’s kind of a mixed review. Some of sory board that I was talking to, I remember when I was doing the them have go en the wrong mes- were talking about medical records original Java security cracking back sage. ey’ve expedited plans to and patient records and data. I in the mid ’90s, and there were some move to chip readers and things asked, “What if a medical device was extremely good reporters who knew like that. But that doesn’t really used to kill someone?” And that sur- their stu deeply. But when you look address the underlying problem of prised them. around at the tech press today, you unencrypted card data, and it’s just e scary thing about the medical don’t see that same deep bench. a giant target on your back. It’ll be and computer security intersect is ere are a couple things I want interesting to see these companies that, like most things in informa- to touch on there. One is that a lot pay a lot of lip service to things tion technology, it’s not enough just of major publications, a few years like end-to-end encryption that to protect these things; you have to back, made a hard-target eort to can actually help shi the threat to keep them working. You have to keep gure out what they were good at, somebody else. But when it comes them available. You have to keep and then outsource the rest of it down to implementing these them up. In the context of healthcare, to somebody else. So tech cover- things, they always screw it up, and it’s way more important. If critical age tends to be a casualty. On top then they gure out ways to cut www.computer.org/computingedge 51 www.computer.org/security 9 INTERVIEW

corners or save money. At the end payment.” So if they have any reti- of a clue the government has on of the day, that kind of approach cence about requiring customers these topics have security clearance. is actually pre y good at shiing to use a PIN, well, we don’t want to the risk to somebody else, but it’s stop them from accepting that less- I think people hide behind that and also really expensive. Retailers will secure solution. it’s a bunch of hooey. do anything to keep from spend- e government likes to over- ing money on security. I still think ere’s a reason for that, too, which classify everything. ey like to most retailers look at a cash register is that Visa has been managing risk pretend they’re the vanguards and and think of it as physical security. for years to nine basis points of fraud that they alone see the true nature ey really don’t consider these (or less), and that’s why they can eat of the threat out there. I think that things that traditionally have been all the fraud, or they can make the has probably, more than anything, the bailiwick of physical security retailers eat their chunk. So fraud stood in the way of most of the rest to be at all related to cybersecurity. is costing the economy but it’s not of the world having a be er realiza- And, of course, there is no dier- costing Visa directly, as long as tion of just how screwed they are. ence anymore. they’re managing their fraud expo- sure properly. So you’re not seeing any sort of way So these point-of-sale systems have I’m sure they would disagree, but I out that’s any better than what I’m important design and seeing. I’m pretty discour- engineering and imple- e government likes to over- classify aged by the government’s mentation aspects that approach to security have to be done right. everything. ey like to pretend they’re engineering. I’m not kid- Right, and they set these the vanguards and that they alone see ding when I say they’re things up and say, “Who five years behind. Five cares? I mean, they can’t the true nature of the threat out there. years is an eternity when connect to the Internet.” it comes to tech. Imagine Well, that’s not really a what your phone looked speed bump. long ago came to the conclusion that like five years ago. the credit card industry is a bit like We went through this period where Why do you think the US is rushing Vegas. ey’re running the house. the government stopped investing to adopt chip and signature (ver- It’s their rules, their casino, and you in innovation and building a be er sus chip and PIN) when we all know can blame the guy si ing next to you mousetrap when it comes to pro- it’s very silly? Even if we did chip for playing the cards that he did or gramming and advancing the state and PIN, nobody’s listening to Ross not, but everybody does that. ey of the art. I hope that’s starting to Anderson about randomness. What just point the ngers at somebody change in the other direction, but can we do to get these people to do else and say, “It’s this guy’s problem.” I think the government long ago this right going forward? And the card associations are laugh- ceded that to the private sector. is is not a new technology by ing all the way to the bank. Not to say that the private sector is any stretch. We’re massively play- a whole lot more advanced, but at ing catch-up in this country, which Let’s talk about something even least there’s a market out there for should tell you something about worse. In my view, when it comes to helping the infrastructure providers our willingness and preparedness to building security in, the government and important companies protect go the extra mile. is way behind, maybe five years or themselves a li le be er. more—especially the contractors. In Do you think they even understand terms of the kind of security that you e last question’s an easy one. Writ- the di erence between chip and PIN do—intel and operational security in ing books is a labor of love. Tell me and chip and signature? the cybercrime world—do you see about writing Spam Nation. Did you I think they probably and rightly the same lag, or is the government in have a good time? assume that most consumers don’t fact up with everybody else, leading Parts of it, yeah. Right when I le care. So why should they? I asked the charge? the Post, all this information on Visa this very same question and at’s a really hard question to spammers and malware writers fell they wouldn’t give me an answer answer because the people who’d into my lap. I’m like, “Okay, well, on the record, but they basically be able to answer it generally don’t this will be a book at some point.” I said, “We don’t want to do anything talk to people like me. Most of these just couldn’t see clearly through to to impede the acceptance of the guys that actually know how much the other side, because it was this

52 ComputingEdge August 2015 10 IEEE Security & Privacy January/February 2015 Mount Everest of information. I’m than I would like, but all in all it was he Silver Bullet Podcast with not one of those reporters to whom a lot of fun.  is is a good example: T Gary McGraw is cosponsored the writing aspect of things comes I work in an area where my training by Cigital and this magazine and is naturally. When I rst started writ- at the Post actually has been invalu- syndicated by SearchSecurity. ing for the Post and rst started able. Writing about technology for ge ing taken seriously and ge ing a general audience is hard. Writ- Gary McGraw is Cigital’s chief tech- good treatment in the paper, I had ing about security and not totally nology o cer. He’s the author of one of those editors who was an screwing it up and ge ing it to be So ware Security: Building Secu- old-fashioned newsman, kind of a understandable by mere mortals is rity In (Addison-Wesley 2006) grouchy guy, but a fantastic individ- darn near impossible. and eight other books. McGraw ual. I’ll never forget, he called me received a BA in philosophy from into his o ce and he says, “Brian, You’re doing a great job at it, so the University of Virginia and a you’re a pre y good reporter, but thank you for doing what you’re dual PhD in computer science you’re a god-awful writer. But don’t doing. We need more people that and cognitive science from Indi- take that the wrong way. Most can do that sort of thing. Other- ana University. Contact him at reporters aren’t both of these things wise, those of us who are trying to [email protected]. at once; they have to work at one or get this accomplished won’t get the the other.” And he was right. resources and authority we need to Selected CS articles and columns  e writing part of things is get stu done. People have to under- Thisare article also originallyavailable for appeared  ee at in sometimes more challenging for me stand the problem. h p://ComputingNow.computer.org.IEEE Security & Privacy, vol. 13, no. 1, 2015.

AU JESSE HARRINGTON Chief Maker Advocate, Autodesk ROCKGET MORE, FOR LESS. OF BRIAN GAFF Partner, McDermott Will STARSInterested in geing a digital3D subscription to & Emery, LLP another IEEE Computer Society magazine? With a digital subscription, you’ll get videos, podcasts, and interactive links to the latest articles— all delivered via email at the half-year member PRINTINGsubscription price of just $19.50 per magazine. This rate expires 10 August 2015. You’ll also PAUL BRODY get free access in the Computer Society Digital VP & Global Industry Library to previous issues of the magazines you Leader of Electronics, IBM subscribe to.

Subscribe now by clicking “Subscription options” under the magazine titles at computer. REGISTER NOW org/subscribe.3D Printing Will Actually Change the World! Are you Ready? 17 March 2015 Early Discount Pricing Now Available! The Fourth Street Summit Center computer.org/3dprinting San Jose, CA www.computer.org/computingedge 53 www.computer.org/security 11 CHRIS CALVERT Global Director, HP ROCK STARS OF Enterprise Solutions Products

ACHS MARCUS H. S Senior Vice President, CYBER Chief Security Of cer (NERC) SECURITY SOOHOO DR. SPENCER CSO/Director, Scienti c Computing Cedars-Sinai Medical Center

27 October 2015 The Fourth Street Summit Center San Jose, CA Win the New Cybersecurity War with the New Rock Stars of Cybersecurity REGISTER NOW Early Discount Pricing Now Available! Cybercrime is no longer a matter of credit card breaches. Cybercriminals are now trying to take down countries as well computer.org/ as top companies. Keep your organization safe. Come to the premier, one-day, high-level event designed to give real, cyber2015 actionable solutions to these cybersecurity threats.

Learn from and collaborate with the experts—

RockStarsCybersecurity_full_093015_ma.indd 222 6/25/15 7:20 PM Innovations in Ubicomp Products Editor: Albrecht Schmidt n University of Stuttgart n [email protected]

Crowdfunding for Ubicomp Products: Interviews with Amanda Williams and Khai Truong

Albrecht Schmidt, University of Stuttgart

n the pervasive computing research listings at Kickstarter.com and Indi- although it’s great to get a unique piece I community, many of us build pro- egogo.com, you’ll nd many ideas that of technology that only a few hundred totypes—systems and prototypes can weren’t successful. Central to under- people around the world have, in many be a central part of research papers. standing whether a concept could be cases, it requires patience (because of Demo sessions at conferences showcase turned into a viable business is deter- timelines that aren’t met) and hidden new ideas for devices and systems using mining how much a customer would be costs (such as import taxes). often crudely built prototypes, but these willing to pay for the product or service To learn more, I asked Amanda Wil- help us study the user experience. Such and whether that amount covers the liams and Khai Truong to share their prototypes generate excitement among cost of building the product. Addition- experience with crowdfunding (see the fellow researchers, who might then state ally, achieving successful funding is related sidebar). Both are active research- that “this should really be a product” only the start. In particular, for those ers in our community who have created or “people would certainly want to buy ideas that involve physical goods, the successful crowdfunding projects. The this.” Nevertheless, few concepts shown inventors then must source the com- full interviews are available in my blog.1 as prototypes at conferences directly ponents, manufacture at scale of 100 transition into products available in the to 1,000, and deliver the product to WILLIAMS: BUILDING CLYDE market, usually because the process of various countries. Often, their initial Williams and her colleagues ran a kick- turning something into a product isn’t costing was awed; they simply didn’t starter campaign for a smart, program- easily achieved by individuals. factor in all costs. Even for buyers, mable lamp named Clyde (see Figure 1). Recently, however, crowdfunding has started opening doors, enabling AMANDA WILLIAMS AND KHAI TRUONG more people to create products for a potentially global audience (see the Amanda Williams is cofounder and CEO of Fabule Fabrications. “Crowdsourcing Platforms” sidebar). It She’s in charge of creating beautiful interactions, beautiful gives developers and researchers a plat- hardware, and customer development. She has worked at Xerox form to interact with potential custom- PARC, Adobe, Intel Research, and Microsoft Research. Williams ers directly and to see whether people has a BS in symbolic systems from Stanford University and a PhD in information and computer sciences from UC Irvine. Indecisive- want to buy the product. Furthermore, ly, she loves both qualitative user research and hardware design. it makes it possible to produce niche Contact her at [email protected]. products for specific user groups or bootstrap a company with an initial Khai Truong is an associate professor at the University of Toronto. His research lies at the intersection of HCI and ubiquitous com- product. Over the last few years, many puting—speci cally, examining the mutual impact of usability interesting products have become avail- and technical constraints on the design of applications and inter- able that would have been unlikely to action techniques for novel, off-the-desktop computing systems hit the market without this instrument. that might be commonplace in 5 to 10 years. Truong received his PhD in computer science from the Georgia Institute of Technol- Yet crowdfunding isn’t a silver bul- ogy. Contact him at [email protected]. let. If you look closely through the

2376-113X/15/$31.00 © 2015 IEEE Published by the IEEE Computer Society August 2015 Published by the IEEE CS n 1536-1268/15/$31.00 © 2015 IEEE PERVASIVE computing55 79 INNOVATIONS IN UBICOMP PRODUCTS INNOVATIONS IN UBICOMP PRODUCTS

CROWDFUNDING PLATFORMS start-up funding focuses on software companies, and designing software is There are many crowdfunding platforms, and technology products are only a small very different from making a product portion of the items presented. Examples of platforms that support campaigns that includes both hardware and soft- and products are www.kickstarter.com and www.indiegogo.com. There are also ware. Software costs mainly comprise platforms that target (micro)-investors, such as www.crowdcube.com. For a detailed overview, see “Democratizing Entrepreneurship: An Overview of the Past, Present, the developer’s time, so US$25,000 to and Future of Crowdfunding.”1 $50,000 in seed funding can get you There is also a wide variety of crowdfunding platforms. Some target a certain started. She goes on to say that “this country or region, while others are for speci c products (such as games) or cam- is virtually impossible for a hardware paigns (such as art or music). Yet others have speci c aims, such as boosting business in local communities or in developing regions of the world. Choosing the right plat- start-up, no matter how disciplined the form is important, and depending on what should be funded, the biggest platform founders are, because they will have might not always be the best one. to deal with the costs of materials, Funding goals for products are typically set at a point where the inventors assume manufacturing, and shipping physical they have a break-even point. Here, too, there are differences between the platforms and the strategies people use. Some platforms only provide funding if the goal is products.” met. Other platforms leave it to the person running the campaign as to whether or Another issue is certi cations, which not to try to do it with less money. Furthermore, because the listings in some crowd- “are a signi cant cost and a real hurdle funding platforms use the percentage of funding received as a measure for popularly, for people who don’t have prior manu- some ask for a very low number in order to appear massively overfunded. facturing experience.” She said that the REFERENCE “costs vary depending on the product, but I think it’s pretty rare to be able to 1. Z.D. Kaufman, T.W. Kassinger, and H.L. Traeger, “Democratizing Entrepreneurship: An Overview of the Past, Present, and Future of Crowdfunding,” Bloomberg BNA do this well for less than $100,000, and Securities Regulation & Law Report, vol. 45, no, 5, 2013, pp. 208–217; http://ssrn.com/ even that is a stretch for all but the easi- abstract=2211698. est hardware projects.” This is why it is hard to nd investors and why crowdfunding offers a good alternative. “It can provide the money you need to cover non-recoverable expenses, and if it goes well, it shows potential investors that you have a mar- ket for your product.” Yet her experience shows that crowd- funding is not without risk. “It’s also extremely common for rst-time proj- ect creators to underestimate their expenses.” She said that while people worry that their campaign will fail, that’s not the biggest problem. “The worst outcome is if it succeeds [and] Figure 2. The bottom view of Clyde, showing the Arduino compatible you take on the obligation to deliver Figure 1. Clyde, a programmable lamp. circuit board. what you promised [but] then run out of money without delivering.”

According to Williams, “Clyde is a words, you can change the personal- Testing Your Idea unique, jelly sh-like desk lamp that ity by changing the sensors attached. Williams and her team tested the water does both bright task lighting and Clyde is Arduino compatible and open for their ideas at Maker Fairs, and the colored ambient lighting.” She fur- source, so it can also become a start- feedback reshaped the product they ther explains that “he comes equipped ing point for learning to program (see created significantly. They moved with environmental sensors that auto- Figure 2). from a LED solder kit to a lamp that matically detect changes, and he reacts also appealed to a less technical audi- to the changes, so whether you want Why Crowdfunding? ence. The month prior to their Kick- him to be ‘touchy feely’ or ‘afraid of When I asked Williams why she used starter campaign, they were accepted the dark,’ you can change his person- crowdfunding, her answer was multi- into a hardware accelerator program ality without programming.” In other faceted. First, she explained that most (HAXLR8R) and spent four months

ComputingEdge August 2015 80 56PERVASIVE computing www.computer.org/pervasive INNOVATIONS IN UBICOMP PRODUCTS

in Shenzhen to develop their final are time consuming for the rst few to Williams, “protecting our IP wasn’t a product. months, which is dif cult because, as huge deal for us, but it can be for others. In describing the experience, Wil- Williams puts it, “customer support is At $150,000, we were below the thresh- liams said “we had access to fabrica- never really an engineer’s favorite task.” old of interest for most copycats to try tion techniques that we couldn’t have Furthermore, she said that although to reverse engineer our product—if we’d afforded back home. We could cheaply it’s great to already have customers in raised more than half a million, I’d have CNC [computer controlled milling] or place at the idea stage, it also adds a lot been a lot more worried.” vacuum cast really professional-looking of pressure. “Most backers are really Also, they made their product open prototypes, the kind of thing that you supportive. They back campaigns not source, because preventing copying could imagine on a store shelf. We could just to acquire an end product, but to wasn’t a huge priority. For those who also prototype more sophisticated elec- engage with the process of invention need to prevent copying, she under- tronics much faster.” and design and production. So you can stands that patents don’t always work Their Kickstarter campaign, which get great feedback from people regard- and offered two suggestions. The rst lasted from May through June 2013, ing what features they want you to pri- was to “move fast. Invent new things raised almost US$150,000—more than oritize.” However, Williams explained faster than people can copy your old triple the stated goal. that “even if people are nice, you feel things.” Second, she said “don’t make the weight of your promise to give them incredibly simple pure-hardware prod- Manufacturing, Shipping, what they want, and you feel pretty ucts. Those are the easiest things to and Support awful about every delay.” copy.” She went on to add that “the Once the campaign succeeds, more hardest thing for a competitor to steal work rolls in. Williams recalls, “because Viable Niche Products is a fantastic user community.” of our inexperience, we underestimated Crowdfunding can really change how how much work was still required to we make ubiquitous computing prod- New Ideas design for manufacture, set up a test ucts. It will allow niche products to And what’s next? “Manufacturing plan the factory could follow, nalize become economically viable. Accord- Clyde to ful ll our Kickstarter cam- and purchase everything on the bill of ing to Williams, “1,100 was a pretty paign was a marvelous learning experi- materials, design supplementary mate- good number to produce. If we’d been ence. Once we nished that project, we rials like packaging and manuals, test required to do a minimum order quan- realized it had given us a ton of ideas for for electromagnetic compatibility, and tity of 10,000, it just wouldn’t have hap- tools that we wished we’d had during ship to 30 different countries.” She pened, but this way, about 1,000 people the manufacturing process.” Williams noted that during this time, “we had to get a neat little product that powerfully explained that “effective collabora- re-design our board, because the micro- appeals to them.” tive tools for manufacturing just didn’t processor we were using suddenly shot It’s exciting to see that this could seem to exist yet, at least not in any up in price.” She said that in hindsight, bring the market nearer to research. form usable to the increasing number “a lot of this stuff looks obvious, but Williams said that “this new set of capa- of start-ups and small-scale creators our experience wasn’t really atypical bilities makes the boundary between that need them.” for rst-time product creators.” They research and product development a lot So she’s now working on an exciting shipped Clyde in July of 2014—six more porous. You could conceivably new project for a hosted Bill of Materials months later than initially planned. do a run of a hundred or so devices for management tool (see fabule.com). The Williams further explained that this a research project, and deploy them in Bill of Materials is a keystone document isn’t the end. “One typically thinks that the wild for validation.” This can help that is an absolutely crucial point of shipping is the nish line, but the real- reduce the risk. “Universities and indus- communication between a creator and ity is, that’s when you start seeing a lot trial research labs spin off research proj- their manufacturer at all stages of pro- of customer support work.” She said ects into start-ups sometimes; crowd- duction—from prototyping to sourcing that because Clyde is a computational funding and small-run manufacturing to assembly and testing and subsequent product, “you have to answer questions can allow you to validate these projects manufacturing runs. According to Wil- about the setup, the drivers—if anyone before taking a big risk on them.” liams, “Right now, everyone is using wants to plug it in to program from their Excel, spending hours doing tedious computer—how the sensors work, how Move Fast and error-prone revisions and maintain- to assemble it, and so on.” She also said With crowdfunding, inventors make ing multiple parallel copies for differ- that the product can get held up in cus- their ideas public long before they have ent purposes and different audiences.” toms, or sometimes packages go missing a product. Are there precautions one can With their new product, they will offer and need to be replaced. These things take to avoid competition? According a means for collaboratively using a Bill

www.computer.org/computingedge JULY–SEPTEMBER 2015 PERVASIVE computing57 81 INNOVATIONS IN UBICOMP PRODUCTS INNOVATIONS IN UBICOMP PRODUCTS

Finally, Truong says that crowdfunding provides “feedback about the product/ idea from the potential users while the development of the product is still occur- ring. That can help to shape the product.”

From Idea to Product The product came out of working with students in an HCI course at the Univer- sity of Toronto. The initial ideas were centered on a gesture-based keyboard. This project showed that by using a dis- ambiguation approach, it was possible to handle the imprecisions well. According to Truong, “using an iterative design pro- cess over the course of a year, we contin- ued to develop, evaluate, and re ne the prototype in numerous ways, including dramatically improving the disambigu- ation algorithm and supporting more input gestures.” He said that the most Figure 3. The Minuum onscreen keyboard. This text-input method reduces a full-size interesting part of the work “was the dis- keyboard down to a single row of keys. ambiguation engine’s ability to support imprecise typing.” He explained that he of Materials. Inventors and designers keys on this reduced-sized keyboard.” had “attempted another start-up a few receive product guidance in terms of He thus created a product with a back- years earlier on the 1Line Keyboard how to list and specify the materials they end that has “a disambiguation engine [where he] stumbled into an interesting need, and some information is automati- that predicts what the user is typing user problem: how to give the user more cally lled in. Manufactures receive the without requiring the user to always hit screen space while typing.” The Minuum information in the “right” format and the exact keys in the word that they are keyboard embodies these two concepts. can then add comments and suggest typing.” He explains that “by reducing One of the reasons they decided to changes. The aim is to minimize the text entry to being simply selection of go with crowdfunding was to get addi- effort needed to create the lists and to keys placed on a single row, this same tional funding for doing the develop- reduce errors during collaboration. mode of typing can be carried over to a ment. “Basically, we had been working variety of other platforms and devices.” in stealth mode.… It wasn’t a nished TRUONG: CREATING AN product, but it was close. This meant that ONSCREEN KEYBOARD Bene ts of Crowdfunding we could afford to ask for not a huge Truong had a successful Indiegogo Besides the nancial bene ts of crowd- amount of money from the crowdfund- campaign to fund parts of the devel- funding, Truong sees several other rea- ing campaign to complete the product.” opment of a new type of onscreen key- sons that might not be obvious at rst. Timing is dif cult. Even for running a board: Minuum (see Figure 3). As Tru- “One advantage with crowdfunding campaign, many things need to be pre- ong explains, “Minuum is a text-input is that it is full of people who want to pared: “We had to start to put together method that reduces a full-size key- support new ideas. In a sense, these are a website; develop the concept video; board down to a single dimension, or people who are likely to be early adopt- bring on people to help with marketing, row, of keys. For onscreen keyboards, ers of the technology.” communications, and press releases; and this reduces the amount of space that A second advantage is “the buzz so on. I remember we had set the launch would be taken up by the input method, that it provides for the product.” Tru- date to be early in the year, but we ended giving more real estate to the rest of the ong says that for Minuum, during the up delaying it because getting all these application.” (For more information, crowdfunding campaign, “YouTube vid- materials ready took a signi cant effort.” see http://minuum.com.) eos about the product were watched by Furthermore, there is a big difference The challenge is letting users still type over a million people.” Then the media between a research prototype and a prod- quickly, because, as Truong says, “it “caught wind of the campaign and uct that can be released to potentially becomes harder for them to precisely hit helped to promote awareness as well.” hundreds of thousands of people. As

ComputingEdge August 2015 82 58PERVASIVE computing www.computer.org/pervasive INNOVATIONS IN UBICOMP PRODUCTS

This article originally appeared in IEEE Pervasive Computing, vol. 14, no. 3, 2015.

Truong describes, “coding and testing of on the market and see if people might people who believe in the idea to share the product, tracking of bugs… is quite buy the product.” Crowdfunding lets some of that cost.” He said that it also important and requires a lot of resources, companies “get insight into whether such helps demonstrate the market size, including time. So while it seemed like a customers exist already.” He said that which helps the company grow. lot of time often goes by before a product during the campaign, “funders will dis- Yet as Williams explains, there’s still actually gets released after we hear about cuss features that they are excited about a lot of work involved. “While I think it initially, it’s primarily because taking it and what they want and hope to have crowdfunding is giving us a lot of oppor- from a concept or research prototype to a included in the product.… All of this tunities we didn’t have before, I don’t deliverable product still requires a signi - information helps us to understand user think it’s exactly bringing about a uto- cant amount of development, testing, and requirements and prioritize features.” pian world of easy hardware.” She says debugging.” that although it’s easier, it’s not easy. “Manufacturing even a small run of User Feedback s Truong sees it, crowdfunding 1,000 or so requires a skill set that’s really The interaction with the customers is A can change how we make ubiqui- distinct from research and prototyping in very tight in a crowdfunding model, and tous computing products by letting us ways that we often fail to appreciate until it clearly has an impact on the product. “take concepts that we have done some we’re deep into the process.” According to Truong, “user feedback basic research and development on and at any stage of development is always turn them into actual products.” Previ- valuable. The most important one that ously, we would have had to rst secure REFERENCE crowdfunding provides is whether the funding. “Even if we knew an idea potential users nd the overall concept could work and be turned into a prod- 1. A. Schmidt, “Crowdfunding—Inter- appealing.” He says this differs from uct, could we nd people who believed views with Amanda Williams and Khai Truong,” blog, 1 June 2015; traditional product development, where in us enough to fund that development? http://albrecht-schmidt.blogspot. you build the product and then “put it Crowdfunding allows for enough com/2015/06/crowdfunding.html.

ADVERTISER INFORMATION NEWSLETTERS

Advertising Personnel Stay InformedSouthwest, California: on Hot Topics Mike Hughes Marian Anderson: Sr. Advertising Coordinator Email: [email protected] Email: [email protected] Phone: +1 805 529 6790 Phone: +1 714 816 2139 | Fax: +1 714 821 4010 Southeast: Sandy Brown: Sr. Business Development Mgr. Heather Buonadies Email [email protected] Email: [email protected] Phone: +1 714 816 2144 | Fax: +1 714 821 4010 Phone: +1 973 304 4123 Fax: +1 973 585 7071 Advertising Sales Representatives (display) Advertising Sales Representatives (Classified Line) Central, Northwest, Far East: Eric Kincaid Heather Buonadies Email: [email protected] Email: [email protected] Phone: +1 214 673 3742 Phone: +1 973 304 4123 Fax: +1 888 886 8599 Fax: +1 973 585 7071

Northeast, Midwest, Europe, Middle East: Advertising Sales Representatives (Jobs Board) Ann & David Schissler Email: [email protected], [email protected] Phone: +1 508 394 4026 Heather Buonadies Fax: +1 508 394 1707 Email: [email protected] computer.org/newsletters Phone: +1 973 304 4123 Fax: +1 973 585 7071

www.computer.org/computingedge JULY–SEPTEMBER 2015 PERVASIVE computing59 83 INSIDE TECHNOLOGY

Descaling Your Scrum

Jim Coplien, Scrum Foundation

very now and then I must remove scale Meanwhile, of course, a topic like scaling agile from my tea kettle. It accumulates with is a newly drilled well of consulting, training, and E use and slows the heating of the water yes, even certifi cation. over time. It may change the fl avor of the water a Why do so many companies scale up instead bit but doesn’t make a lot of diff erence other than of lean down? Often it’s because they’re afraid the creating lime. competition might outperform them. In addition, The same basic principle applies when busi- in the contemporary software market, there is an nesses scale their organizations. A successful unspoken principle that more features are better. business accumulates more and more staff when When many enterprises realize great profi ts, there is enough money to go around. Many fi rms they share the wealth by hiring more employees. then descale when hard times come. Angry Birds Many of the new workers end up taking roles that developer Rovio Entertainment laid off 14 percent don’t add value to the production process. In our of its staff in October 2014, cutting back to 700 book Organizational Patterns of Agile Software employees. It’s hard to not compare the company Development, Neil Harrison and I call these “dead- to rival Supercell, which earned fi ve times Rovio’s beat roles.” Our research found that these roles are revenue with only 132 staff members. common in many large organizations. In fact, at Now, scaling agile is all the rage, perhaps least one of my Japanese clients calculates man- because large late-adopter companies are now agers’ bonuses in part on the basis of the number coming on the Scrum scene with the misconcep- of people reporting to them. This type of incentive tion that they must paint Scrum onto all of their for scaling up is the antithesis of lean. thousands of engineers. And such companies David Graeber, professor of anthropology at rarely stand still but instead are always looking the London School of Economics and Political Sci- to grow. ence, says that most jobs in a modern economy

60 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE represent deadbeat roles. He claims they don’t start small and grow to feed more mouths as they add real value but just keep people employed in give into social pressures and the belief that there is an economy that has become so effi cient as to not power and success in growth. But small is beauti- require “full-time” workers. ful. If you start small, stay small. You should be very Scaling staff can make sense for endeavors in afraid if a consultant off ers to help you scale. which work is perfectly able to be partitioned. If I’ll continue these thoughts in the next Com- 10 people can transport one stone for the pyramid, putingEdge issue. then 100 can transport 10 stones. Coordinated work, on the other hand, has Jim Coplien is a partner with the Scrum Foundation, a a sweet spot beyond which hiring more people provider of certifi ed Scrum training and consulting. generates more coordination costs than the addi- He is also a partner with Gertrud & Cope, a Danish tional horsepower can cover. Adding people to company that specializes in agile and lean software work on one system means more teams, which development. Coplien was a pioneer in practical means more handoff s between teams. Thus, 20 object-oriented design in the early 1990s and is an people can’t sort a deck of cards faster than fi ve author and trainer in the areas of software design people can. Intellectual work in complex domains and organizational improvement. requires coordination that lowers the sweet spot, and the sweet spot is already very low in software development. Selected CS articles and columns are also available for free at http://ComputingNow.computer.org. Most organizations―like my Japanese client―

www.computer.org/computingedge 61 CAREER OPPORTUNITIES

CLOUDERA, INC. is recruiting for our Visio 2010, Windows Server 2008, Mi- PROGRAMMER ANALYST - design, San Francisco, CA o ce: Engineering crosoft IIS 7.0. Must be willing to travel develop, test & implement application Manager: manage & mentor a team of and reloc. Reqs MS in comp sci, eng or s/w utilizing knowledge of C#, Micro- software engineers for professional rel. Mail resumes to Code Ace Solutions soft Sharepoint Server 2013, Windows & technical growth including having Inc. 50 Cragwood Road, Ste 217, South Sharepoint Services(WSS) 3.0, Share- weekly 1:1s, doing career development, Plainfi eld, NJ 07080. point designer 2013,2010, Oracle, Mi- managing expectations & performing crosoft SQL Server, Visual Studio.NET quarterly performance reviews. Mail re- SIEMENS PLM SOFTWARE INC. has 2010, WCF Services, Web services, sume w/job code #33224 to: Cloudera, an opening in Maryland Heights, MO XML, XSLT, XSD, XPATH, & Win- Attn.: HR, 1001 Page Mill Rd., Bldg. 2, for Applications Developer to lead & dows 00/NT. Must be willing to travel & Palo Alto, CA 94304. manage large projects & develop highly reloc. Reqs MS in comp sci, eng or rel. scalable OO applications using Core Mail resumes to Strategic Resources PROGRAMMER ANALYST: Design, Java and J2EE technologies. Email re- International, Inc. 777 Washington Rd, develop, test & implement software sumes to [email protected] & refer Suite 2, Parlin, NJ 08859. applications using knowledge in C++ to Req#145417. EOE. ,Matlab ,OBIEE 10.1.x or Later, Oracle BI BMC SOFTWARE INC. has the follow- Publisher, Informatica Power Center 8.x, ENGINEER: Broadcom Corporation, ing openings: Staª Sales Operations Oracle10g/9i, PL/SQL, UNIX, UNIX the leading provider of highly inte- Analyst, Req#15001478 in Houston, TX Scripting, BI Apps 7.9.6.x, DAC, SQL De- grated complete system-on-a-chip to develop new reporting solutions for veloper, SQL Server 2005 and Windows solutions for digital and satellite ca- Global Services; and Principal Product 2003 Server. Must be willing to travel & ble set-top boxes, cable and DSL mo- Developer Req#15001479 in San Jose, reloc. Reqs MS comp sci, eng or related. dems, residential gateways, high speed CA to perform product design and de- Mail resumes to Nartal Systems, Inc. 2650 transmission area networking, home velopment in relation to CLM. Mail re- Route 130, Suite # E, Cranbury, NJ 08512. and wireless networking, cellular and sumes to Attn: Req # of interest, Olivia terrestrial wireless communications, Delgado, BMC Software, 91 East Tas- PROGRAMMER ANALYST. - Design, VoIP gateway and telephony systems, man Drive, San Jose, CA 95134-1618. develop, deploy, test & implement ap- broadband network processors, and plication s/w in Agile environment uti- server solutions seeks all levels of En- SOFTWARE ENGINEER MULT. Open- lizing knowledge of C#,VB.NET, ASP. gineers/Scientists in Irvine, CA, Santa ings) sought by Nexius Insight, Inc. in NET 5.0, MVC 5.0 Javascript, Angular Clara, CA, San Jose, CA, Sunnyvale, CA Reston, VA w/a MS in Info Systms or JS,WCF, EF6, Winforms, WPF, Visual San Diego, CA, Matawan, NJ, Chandler, rltd. Work on Bus. Intelligence tools, incl Studio 2013, Sql Server 2008, T-Sql, MS AZ, Duluth, GA, Andover, MA, Edina, Tableau for Data visualization. Work on MA, Federal Way, WA, Horsham, PA Dbase dvlpmt, incl writing queries. Load and Austin, TX: Test (ENG472), Prod- Data. Prep web servers, incl installation uct Engineering (ENG476), RF/Wire- of Java, Apache Tomcat servers, & Java less (ENG484), Hardware Development prgmg. Resp for deployment of web (ENG502), Electronic Design (ENG506), based UT prgm in Sprint project. Work IC Design (ENG507), Software De- on data manipulation & dvlpmt for diª er- Willis-Knighton Health System velopment (ENG510), Software Appli- ent demo projects. Mail resumes to Nex- cations (ENG514), Software Systems ius Insight, Inc., 1301 Central Expressway in Shreveport, LA has an opening (ENG516), Software Quality Assurance S., Ste 200, Allen, TX 75013 Attn: HR. for a fulltime Database Admin- (ENG518), Systems Design (ENG520), Firmware (ENG521), Product Applica- DIR, PRACTICE SVCS. (NY, NY & locs istrator to plan, design, support tions/Systems Integration (ENG584), throughout the US) Mnge team of Svc DSP (ENG509), Confi guration/Release Arctcts & Cnsltnts charged w/dsgn & and maintain databases of MS (ENG519), Packaging (ENG524), Design dlvrng access control & DLP solutions. SQL and Oracle; manage secured (ENG537), Field Applications (ENGS87), Mnge sta ng eª orts & annul targets & Layout Design (ENG0313), Product/ act as SME for tech & sales inquiries. accesses; develop backup and Prod. Line Manager (ENG586), Systems/ REQ: Bach Deg or for equiv in CS or Database Administrator (ENG641), Ap- Bus or rel fi eld + 5 yrs of prog exp in recovery strategies; and monitor plications Programmer (ENG6555), and job &/or rel occup. Will accept a Mas- Process Development (ENG526), Sales/ capacity and troubleshoot to en- ter’s deg or for equiv in CS or Bus or Business Development (ENG567), IT rel fi eld + 3 yrs of exp in job &/or rel oc- sure performance. A MS in Com- Security Analyst (ENG658); Business cup. Must have exp w/CA DataMinder Systems Analyst (ENG646); Product solution def, archtre, dsgn & implmntn; puter Science or BS + 5 years re- Development (ENG558); Engineering CA Privileged Identity Mgr solution def, Systems Analyst (ENG533) Compliance lated experience is required. archtre, dsgn & implmntn. Engaging in Engineer (ENG463); and Manager En- sales process invlvng access control & terprise Application (ENG347) (Oracle, data loss prevention solutions; Mngng Please visit the career page on SAP, Baan, etc). Education/experience solution specifi c def, archtre, dsgn & requirements vary by position/level. implmntn of access control & data loss our website, www.wkhs.com, to Some positions may require domestic prevention solutions; Freq visits to un- and/or international travel. Must have anticipated client sites; Wrk fr home apply for this position. unrestricted right to work in U.S. Mail anywhere in US. Send resume to: Al- all resumes to HR Ops Specialist, 5300 thea Wilson, CA Technologies, One CA California Avenue, Bldg. 2 #22108-B, Plaza, Islandia, NY 11749, Refer to Req- Irvine, CA 92617. Must reference job uisition #103841. code.

62 August 2015 Published by the IEEE Computer Society 2376-113X/15/$31.00 © 2015 IEEE 116 COMPUTER PUBLISHED BY THE IEEE COMPUTER SOCIETY 0018-9162/15/$31.00 © 2015 IEEE CAREER OPPORTUNITIES

PROGRAMMER ANALYST - design, de- CALIFORNIA STATE UNIVERSITY, EAST BAY velop, test and implement Oracle EBS FACULTY EMPLOYMENT OPPORTUNITY Applications utilizing knowledge of Sql, DEPARTMENT OF COMPUTER SCIENCE PL/Sql, Workflow, BI Publisher, OAF/ADF, FULL-TIME TENURE-TRACK OAA Position No. 15-16 CS-DATA/CLOUD/CORE-TT ( 2 Positions) java, Spring, Hybernate, Unix and mod- ules INV, WIP, BOM, ASCP, DEMANTRA, THE UNIVERSITY: California State University, 4. Advise Computer Science students. GL, OAH, FA, AR, TCA, PO and OMr.Must East Bay is known for award-winning programs, 5. Participate in departmental activities such as be willing to travel & reloc. Reqs MS in expert instruction, a diverse student body, and curriculum development, assessment, out- comp sci, eng or rel. Mail resumes to Ni- a choice of more than 100 career-focused elds reach, etc. tya Software Solutions Inc. 9690 South of study. The ten major buildings of the Hayward 6. Develop and continue ongoing research activ- Hills campus, on 342 acres, contain over 150 300, Ste 319, Salt Lake City, Utah 84070. ities, service and leadership. classrooms and teaching laboratories, over 177 specialized instructional rooms, numerous com- RANK AND SALARY: Assistant Professor. Salary PROGRAMMER ANALYST: design, de- puter labs and a library, which contains a collec- is dependent upon educational preparation and velop, test & implement application s/w tion of over one million items. The University also experience. Subject to budgetary authorization. utilizing knowledge of n-tiered distrib- has campuses in Contra Costa County, Online, DATE OF APPOINTMENT: Fall Quarter, 2016 uted software applications, EDI, ASP. and in Oakland, California. With an enrollment of NET, MVC, C#, LINQ to SQL, LINQ to approximately 13,000 students and 600 faculty, QUALIFICATIONS: Applicants must have a Ph.D. in application, Stored Procedures, JavaS- CSUEB is organized into four colleges: Letters, Computer Science by September 2016. Applicants cript, J Query, HTML5, CSS, and AJAX, Arts, and Social Sciences; Business and Eco- who can teach undergraduate and master’s level Angular JS, Telerik, Web Services, nomics; Education and Allied Studies; and Sci- courses in most or all of the core subject matter in SOAP, WSDL, XML, XSLT processing, ence. The University offers bachelor’s degrees in computer science. Candidates should demonstrate AGILE, Test Director, Unix & Windows 50 elds, minors in 61 elds, master’s degrees experience in teaching, mentoring, research, or 00/NT. Must be willing to travel & reloc. in 37, and 1 doctoral degree program. http:// community service that has prepared them to con- Reqs MS in comp sci, eng or rel. Mail www20.csueastbay.edu/ tribute to our commitment to diversity and excel- lence. Additionally, applicants must demonstrate a resumes to Strategic Resources Interna- THE DEPARTMENT: The Department of Computer record of scholarly activity. This University is fully tional, Inc. 777 Washington Rd, Suite 2, Science has over 20 full-time faculty members, committed to the rights of students, staff and fac- Parlin, NJ 08859. with a wide range of backgrounds and interests. ulty with disabilities in accordance with applicable The faculty is committed to teaching its under- state and federal laws. For more information about SENIOR CONSULTANT F/T (Fishkill, graduate and Master’s level students. In a typical the University’s program supporting the rights of NY) Position involves travel to various quarter, the Department will offer over 30 under- our students with disabilities see: http://www20 unanticipated worksites up to 100% of graduate and about 20 graduate classes. Class- .csueastbay.edu/af/departments/as/ es are offered both in day and evening. Classes the time anywhere in the United States. APPLICATION DEADLINE: The deadline for ap- are generally small, with many opportunities for Must have Master deg or the foreign plications is October 31, 2015; review of ap- faculty-student contact. The Department offers equiv in Comp Sci, Comp Engg, or re- plications will begin November 1, 2015. The a variety of degrees: B.S. in Computer Science lated with one (1) yr of exp designing, position, however, will be considered open un- (with possible options in Networking and Data building, or fixing & supporting integra- til lled. Please submit a letter of application, Communications, Software Engineering, or Com- tion interfaces that meets business re- which addresses the quali cations noted in the puter Engineering), and M.S. in both Computer quirements using SAP BW/BI, Business position announcement; a complete and current Science and Computer Networks. Currently, Objects Web Interface reports, Crystal vita at https://my.csueastbay.edu/psp/pspdb1 there are more than 350 undergraduate majors reports, BEx Query designer, Cross /EMPLOYEE/HRMS/c/HRS_HRAM.HRS_CE.GBL and over 350 students in the M.S. programs. module expertise in SAP FI/CO, FI-SL, Additionally, please email graduate tran- FI-GL, LO, HR, SCM and CRM in fairly DUTIES OF THE POSITION (2 positions current- scripts, 3 letters of recommendation, 3 refer- large size environments. Provide com- ly available): Teaching courses at B.S. and M.S. ences, a statement of teaching philosophy, and prehensive consultation to business levels, curriculum development at both levels, evidence of teaching and research abilities to unit & IT management and sta§ at the and sustaining a research program. Please note the Computer Science Search Committee to this highest technical level on all phases of that teaching assignments at California State email: [email protected]. University, East Bay include courses at the Hay- application. Respond timely to issues A detailed position announcement is avail- ward, Concord and Online campuses. In addition reported. Responsible for Full Life Cycle able at: http://www20.csueastbay.edu/about to teaching, all faculty have advising responsibil- Implementation includes GAP analysis, /career-opportunities/ requirement gathering, blue printing, ities, assist the department with administrative and/or committee work, and are expected to as- NOTE: California State University, East Bay hires development, testing and reporting of sume campus-wide committee responsibilities. only individuals lawfully authorized to work in the Business Objects suite of products. Pro- United States. All offers of employment are con- The ideal candidate for this position is able to: vide leadership in recommending and tingent upon presentation of documents demon- implementing continuous process im- 1. Teach a wide range of computer science strating the appointee’s identity and eligibility to provement, education and training re- courses including most or all of the core sub- work, in accordance with the provisions of the quirements to management sta§. Send ject matter at both the undergraduate and Immigration Reform and Control Act. If you are resume: Novisync Solutions, Inc., Re- graduate level. (considering all areas of com- considered as a nalist for the position, you may cruiting (SM), 300 Westage Bus Ctr Dr, puter science, capable of teaching in emerg- be subject to a background check. Ste 350, Fishkill, NY 12524. ing areas). As an Equal Opportunity Employer, CSUEB 2. Support offerings for undergraduate C.S. stu- does not discriminate on the basis of any protect- SAILPOINT TECHNOLOGIES INC. has dents including teaching courses, developing ed categories: age, ancestry, citizenship, color, an opening in Austin, TX for Software the undergraduate curriculum, and engaging disability, gender, immigration status, marital Engineer to maintain & integrate Sail- undergraduate students in research. status, national origin, race, religion, sexual ori- Point IdentityNow with existing apps. 3. Support offerings for graduate C.S. students entation, or veteran’s status. The University is Interested applicants mail resumes to – teaching courses, guiding M.S. theses, de- committed to the principles of diversity in em- Attn: A. Krupa (SP14), SailPoint, 11305 veloping the graduate comprehensive exam- ployment and to creating a stimulating learning Four Points Drive, Bldg 2, Ste 100, Aus- ination, etc. environment for its diverse student body. tin, TX 78726. www.computer.org/computingedge 63 AUGUST 2015 117 CAREER OPPORTUNITIES

TECHNICAL LEAD F/T (Poughkeepsie, Avenue s/ware for medical products; testing, and implementation of software. NY) Position involves travel to various Visual Studio; Passolo; Perforce; OTO- • Web Analysts: (728.1383) Formulate unanticipated worksites up to 100% of suite Vestibular balance suite & OTO - and apply mathematical modeling and the time anywhere in the United States. suite for knowl sharing purposes. To other optimizing methods to develop Must have Bach deg or the foreign equiv apply, send resumes & cvr ltr to Dan and interpret information. • BI Develop - in Engg, Electronic Engg, Electrical & Connelly, Manager, HR at dconnelly@ ers: (728.1571) Participate in sourcing, Electronics Engg or related w/5 yrs of gnhearing.com. organizing, maintaining, and standard- progressive exp in managing & leading izing large volumes of data through de- a team of 3 developers in application CLOUDERA, INC. is recruiting for our velopment of innovative tools, reporting analysis, design, development, imple- Palo Alto, CA o¬ce: Solutions Consul- dashboards, and well-organized. • Data mentation and testing of Java/J2EE- tant: Work with Cloudera customers Scientists: (728.1418) Apply advanced based software applications through to install & implement CDH platform & analytic techniques such as machine full product development life cycle develop solutions on the Cloudera in- learning, data mining, and statistical and release process. Provide project frastructure. Mail resume w/job code modeling to design and implement plan estimation and rollout strategy #36233 to: Cloudera, Attn.: HR, 1001 mathematical models and algorithms to in collaboration with the project man- Page Mill Rd., Bldg. 2, Palo Alto, CA solve marketing problems. • Directors, ager. Mentor the junior team members 94304. Technology: (728.299) Build and man- by providing technology knowledge age a geographically distributed tech- transition. Create design documents, nology through subordinate managers BUSINESS ANALYSTS in McLean, VA data conversion documents, technical and direct reports who support tech- sought by established IT firm. Qualified specifications, class diagram flowchart nology needs of core brand or function. candidates will have Master’s degree in based on requirements session. Take 10% Travel to various unanticipated sites Comp. Sci./Electrical Eng. field and 12 ownership of the system and program - throughout the United States and inter- months as Systems Analyst, Program- ming documentation. Manage produc- nationally required. mer Analyst, or related position. Will ac- tion tickets workload among develop - cept candidates with Bachelor’s degree ers and resolve them in timely fashion. in Comp. Sci./Electrical Eng. field and 5 EXPEDIA, INC. currently has openings Provide subject matter expertise and years of relevant experience in the men - for the following opportunities in our implement the code using following tioned occupations. Experience with San Francisco, CA o¬ce (various/lev- tools/technologies: Java/J2EE, Serv- databases and data warehousing con- els/types): • Software Engineers: (728. lets, Java Server Pages, Hibernate, En - cepts required. Position subject to re- SWE-AUG-SF) Design, implement, and terprise Java Beans, AJAX methodol- location to various unanticipated o¬ce debug software for computers including ogy, Web Services, JDBC, Oracle, SQL and client sites throughout U.S. Send re - algorithms and data structures. Send Developer, IBM Websphere, IBM Ratio - sumes to: HR Department, Supremesoft your resume to: Expedia Recruiting, 333 nal Application Developer and Eclipse. Corporation., 8201 Greensboro Dr., Ste. 108th Avenue NE, Bellevue, WA 98004. Send resume: Indotronix Int.l Corp., Re - 300, McLean, VA 22102. Must reference position & Job ID# listed cruiting (RC), 331 Main St, Poughkeep- above. sie, NY 12601. APPLICATION SUPPORT MANAGER. Bimbo Bakeries USA, Inc. has open- HOTWIRE, INC. currently has openings PROGRAMMER ANALYST - design, de- ings for the position of Application for the following opportunities in our velop, test & implement application s/w Support Manager in Ft. Worth, TXto San Francisco, CA o¬ce (various/lev- utilizing knowledge of C#, Microsoft Biz- develop annual audit plan. Requires BS els/types): • Software Engineers: (728. Talk Server 2010, BAM, Oracle, MS SQL + 5 yrs exp. Apply & submit resume to: SWE-AUG-HOT) Design, implement, Server, Visual Studio.NET 2010, WCF https://careers.bimbobakeriesusa.com and debug software for computers in- Services, Web Services, XML, XSLT, /opportunities. Search for Job ID14989. cluding algorithms and data structures. XSD, XPATH, Unix & Windows 00/NT. • Business Analysts (Operations Re- Must be willing to travel & reloc. Reqs search Analysts): (728.1603) Formulate EXPEDIA, INC. currently has open- MS in comp sci, eng or rel. Mail resumes and apply modeling and other optimiz- ings for the following opportunities in to Strategic Resources International, ing methods to develop and interpret our Bellevue, WA o¬ce (various/lev- Inc. 777 Washington Rd, Suite 2, Parlin, computer data sets. • Senior Release els/types): • Software Engineers: (728. NJ 08859. Engineers: (728.1700) Deploy and co - SWE-AUG) Design, implement, and ordinate releases, patches/fixes/config- debug software for computers includ- R&D MANAGER sought by GN Hearing uration changes, and updates to multi- ing algorithms and data structures. • Care Corporation (dba GN Otometrics ple Hotwire application environments. Database Developers: (728.DBD-AUG) North America) in Schaumburg, IL. Man- Send your resume to: Hotwire/Expedia Coordinate changes to computer data- age & dvlp all research & dvlpmt func- Recruiting, 333 108th Avenue NE, Bel- bases, test and implement the database tions & sta§ w/in North American R&D levue, WA 98004. Must reference posi- applying knowledge of database man- Team. Serve as project mgr for all proj- tion & Job ID# listed above. agement systems. • Reporting Analysts: ects running & in pipeline. Direct s/ware (728.1557) Formulate and apply math- team incl. Architects, S/ware Engrs, H/ ematical modeling and other optimiz- SR. DATA ANALYST. Pattonair USA, Inc. ware Engrs, & oversee dvlpmt of all s/ ing methods to develop and interpret has openings for the position of Sr. Data ware for Otometrics’ vestibular & audi- information that assists management Analyst in Ft. Worth, TX to perform in- ological measurement products. Reqs: with decision making. • Oracle Test An- ventory based data set-ups assuring Master of Engg or foreign equiv. deg alysts: (728.1399) Create and execute data integrity & periodic data validation. in Comp Sci & Engg, + 2 yrs exp. dvlpg test cases, and report and track test Requires Masters + 2 or Bach. + 5 yrs & supporting new s/ware applications execution and defect metrics using test exp. Apply & submit resume to: http:// & products for vestibular & audiologi- and defect management tools. • Manag- www.pattonair.com/EN/Careers/Pages/ cal measurement using: Agile Product ers, Engineering: (728.585) Responsible default.aspx select “Vacancies” option Lifecycle Mgmt s/ware; DevSuite Ap- for architecture, design, construction, then select “Americas”. plication Lifecycle Mgmt s/ware; Grand

64 ComputingEdge August 2015 118 COMPUTER WWW.COMPUTER.ORG/COMPUTER CAREER OPPORTUNITIES

WEBSPHERE ADMINISTRATOR - An- lze, dsgn, dvlp, implmnt, suprt & mantain s/w utilizing knowledge of Oracle, SQL Server, Java, J2EE, Web Sphere, Web Logic & Unix. Must have knowledge in WAS ND installation and Clustering. Must be willing to travel & reloc. Reqs MS in comp sci, sci, business Eng, or rel. Juniper Networks is recruiting for our Sunnyvale, CA office: Mail resumes to: HR, Parsetek Inc, 14117 Software Engineer #34550: Design, imple- Software Engineer #33959: Design software Robert Paris CT Chantilly, VA, 20151. ment, test and maintain software features modules on large distributed (multi-core) for Juniper’s networking platforms such as Linux/FreeBSD/netBSD in (JUNOS). embedded environments. Implement net- PROGRAMMER ANALYST: Analyze, work security software such as SSL proxy, develop, implement, and test software Services Management Specialist Staff web security, application security and appli- applications utilizing knowledge of #32201: Act as a designated advocate for cation service components using network/ SQL, PL/SQL, Oracle DB, Oracle Appli- post-sale account support coordination. system/cloud security technology including cations(11i/R12) , reports & form builder Work closely with the customer and multiple Firewall, UTM, IPS, ALG, AV, VPN, SSL, PKI, (6i/10g), SDLC, OA framework, Oracle internal organizations to ensure effective im- etc. plementation of Customer Support. Workflow, SQL * Loader, GAP Analysis, Software Engineer #33162: Gather system re- FTP, Test Procedures, Cases, Scripts ASIC Engineer #28304: Work on verification quirements from product managers, custom- and Plans. Preparing the AIM docu - of ASIC chip used for switches and routers. ers, development engineers, system testers, ments. Must be willing to travel & re - Perform test environment design, test plan- and other customer advocates. Translate location. Requires MS Comp Science, ning and test development for block level requirements into high quality code for se- and chip level logic units. Engineering or related. Mail resumes curity data plane and maintain high quality software and associated artifacts. to Nitya Software Solutions Inc. 9690 Technical Mktg. Spec. Sr. Staff #21315: Per- South 300, Ste 319, Salt Lake City, form technical marketing related work for Software Engineer #35185: Design and de- Utah 84070. Juniper’s switching product line focused on velop tools to establish a stable and efficient datacenter products and solutions. development environment, and release pro- cesses for scalable application deployment. EVENTBRITE, INC. is looking for Prin- Software Engineer #30529: Use routing Implement tools and processes required to knowledge in the management of routes cipal Software Engineers in San Fran- establish an efficient and productive devel- across various next hop types and optimize cisco, CA to develop iOS and Android opment environment. applications. Resume to HR, Job# EB09, jemalloc, kevent, and other FreeBSD libraries to enhance routing infrastructure for maxi- Software Engineer #30239: Define routing Eventbrite, Inc. 155 5th St Fl 7, San Fran- mizing scale and performance of the various cisco, CA 94103. requirements for all of company’s products supported routing protocols. covering all routing protocols, including IGP, BGP, Multicast, and MPLS signaling proto- Technical Support Engineer #35156: Provide cols, and services including Layer 3 VPNs, GLOBLZTN ARCHTCT (Austin, TX) Gthr in-depth diagnostics and root-cause analy- Layer 2 VPNS, and VPLS. & anlyze localization info. Crte detailed sis for network impacting issues on Juniper dsgns based on reqs & resolve dsgn routing products (Internet backbone rout- ASIC Engineer #5029: Perform physical flaws. Align cross func teams to sol ers) to large Internet Service Provider and/or design implementation of ASICs, includ- archtctre. Cert high lvl & detailed dsgn enterprise customers. ing block level and fullchip floor planning, docs crted by other archtcts & advise placement and routing, timing closure and Test Engineer #31928: Develop test plans to physical verification. Handle physical design dvlpmnt grps on tech matters. REQ: 5 verify functionality/Requests for Comments implementation of blocks and partitions. yrs exp in job &/or rel occup. Must have (RFCs) implemented for particular features exp w/ Engng in archtctrl dsgn of glbl of BGPM MPLS, and EVPN routing protocols. Software Engineer #29449: Develop web- enterprise IT sol across mult systms; Execute test plans to identify any issues in based, high performance and large scale MS SharePoint Search or FAST Search; implementation and ensure that the rout- network application platforms and suites MS Bus Connectivity Svcs Connector ing protocols adhere to RFCs or functional that maximize the value of enterprise and Frmwwrk, 3rd pty plug-ins such as BAIn- specs. the service-provider customers’ investment in network infrastructure. Perform business sight, SharePoint Custom claim pro- Hardware Engineer #33093: Contribute in a requirement analysis and high level software vider, & SharePoint Client Object Model; team oriented centralized Service Interface design. SharePoint content processing & query (SI) organization performing system signal rules; SharePoint content mgmt sys; Full integrity design with exposure to new and Technical Support Engineer #18196: Provide life IT dvlpmnt cycle; MS SharePoint; Pr- different cutting edge technologies. Perform Level-3 technical support on company cam- analysis and design, and understand tradeoffs vdng tech guidance to project teams.: pus and data-center products. Document all in designing interconnect solutions ranging actions taken toward resolving customer re- Send resume to: Althea Wilson, CA from chip to chip, board to board, backplane Technologies, One CA Plaza, Islandia, ported issues on company products in con- and chassis to chassis interconnect. tract tracking database. NY 11749, Refer to Requisition #104141.

Juniper Networks is recruiting for our Durham, NC office:

ASIC Engineer #35188: Create test specifica- Verilog and UVM language tools, and create tions for ASIC design and sub-system verifi- tests to ensure correct ASIC RTL operations. VISIT COMPUTER cations. Create test benches by using System ONLINE Mail single-sided resume with job code # to Juniper Networks Attn: MS 1.4.251 WWW.COMPUTER.ORG 1133 Innovation Way /COMPUTER Sunnyvale, CA 94089

www.computer.org/computingedge 65 AUGUST 2015 119 CAREER OPPORTUNITIES

Apple Inc. has the following job opportunities in Cupertino, CA:

Software Engineer Applications (Req# Firmware Engineer (REQ#9VJSXN) 9SKVA6) Des & dev SW for cust sys 9GASY7) Des & dev SW sys to sup ex- Des & dvlp Firmware/SW for embed- group in service mngmnt domain. ist & new product features in cloud & ded accessories. Test Engineer (REQ#9D2VJF) Ops big data comp space. Travel req. 20%. Systems Design Engineer (REQ# lead RF test engineer resp for planning ASIC Design Engineer (Req#9QE3KK). 9EZ28B). Evaluate the latest iPad, & execution of New Product Intros to Respon for validation & characteriza- iPhone and iPod HW systems. Travel worldwide mfg sites. Travel req. 30%. tion of analog IP used in silicon chips req’d 30%. Engineering Project Lead (REQ# for mobile apps. Software Engineer Applications (REQ# 9TG32D) Dev, create, implmnt, & Development Engineer (Req#9FKMNB). 9F7TNG) Des & dvlp rich web apps. support the web app dev of Sales Train- Detect and respond to information secu- ing App using large-scale & high-perf Systems Design Engineer (Req#9F- rity threats against Apple. objct-oriented internet techs. DW2H) Des & dvlp Over-the-Air Software Engineer Applications (Req# (OTA) measrmnt sys. Software Engineer Applications 9M4U5P). Des & dev OSX/iOS apps (REQ#9KPQWT) Dsgn, dev, & de- IS&T Technical Project Lead & frameworks for Identity Manage- ploy data warehouse & analytics solu- (REQ#9NMSLP). Maintain portfo- ment Systems. tions for multiple bus. groups at Apple. lio of Busi Intel tools that enable SDE Software Engineer Applications (Req# business team for reporting. Software Development Engineer 9SV6BQ). Des & dev software for re- (REQ#9U33P6) Conduct wide variety Software Development Engineer tail point-of-sale systems. of TTS activities, incl linguist analy- (REQ#9Q7KYV). Dev & write test sis, stat modlng, signal prcssng, & Software Engineer Applications (Req# plans for Maps services’ features. voice dev. 9TP4QG) Resp for dsgn, architect, & Software Quality Assurance Engineer implmnt of Apple’s Contact Center Engineering Project Lead (Req# (REQ#9P92AU). Provide end-to-end operation and mgmt tools solutions. 9JXUFM) Lead end-to-end support test automation solutions for key plt- exp worldwide for 1+ feature-sets w/ Software Engineer Applications (Req# frms & apps. in iCloud, Apple ID, iMessage, Face- 9NRTNR). Supp & maintain custom Hardware Development Engineer Time, or Game Center. developed frameworks & infrastructure. (REQ#9G9TBL) Develop hardware Software Development Engineer Software Engineer Systems (Req# and verify Mac/iOS systems. (Req#9NM33C). Resp for the bring-up 9F4VZ5). Design & develop test & ASIC Design Engineer (Req#9E5UH2) & devlpmnt of next gen Macintosh calib infrastructure for various Bio- Read specs of HW blocks & write the platforms. metric Sensor. test plan to test the design. Mechanical Design Engineer Software Development Engineer (Req# Software Engineer Applications (REQ#9EHN9N). Set priorities & de- 9F4SKJ) Des & dvlp Cellular SW (REQ#9RDTGU) Prep functional termine risk mitgtn plans using an un- features. spec during proj req’s stage & concep- drstndng of tech details of cross-func- Software Engineer, Applications tualize optimal & scalable sol’s. tional issues & risks in manfctrng. (REQ#9LA364). Des, dev & sup softw Sr. Software Engineer (REQ#9RF28L) Travel req’d 30%. for gift card sys’ms . Design and develop enterprise busi- Software Engineer Applications Software Engineer Systems (REQ ness applications. (REQ#9EYW47). Design and develop #9MHVD9). Respon for design, de- Software Engineer Applications PKI and cryptographic services. velop & support of iCloud Report en- (REQ#9LKTV5) Des & dev web based Senior Software Engineer (Req# terprise web app. soltn’s for customer facing, online sup- 9P346W). Design, build & test serv- Software Development Engineer (REQ# port apps. er-driven mobile e-commerce app sw 9JANWR). Ensure 24/7 availb of Siri Software Engineer Applications on the Apple iOS platform. Hadoop based backend. (REQ#9KT2LY). Des, dev, & deply Hardware Development Manager Software Development Engineer SW apps for data-warehsng & busin (Req# 9EYU6S) Lead & grow a team (REQ#9QCQCH). Perfm end-to-end intel projs in Apple IST Mktg Dept. resp for dvlping robust validation solu- dev of web app proj’s for multi Opera- Hardware Development Engineer tions & automation infrstructre for tions groups. (REQ#9R34UN). Dev & qual adv lith touch prdcts. Travel req’d 20%. Software Engineer Applications (REQ# ion batt tech for prtble pwr cons apps. Mechanical Design Engineer (Req#9B- 9JPUG8). Research, des, dev, impl’t, & Travel reqd: 20%. N3BB). Supp prod dvlpmnt by driving debug big data reporting platform. Senior Software Engineer (REQ# the dvlpmnt of 1 of the key process

66 ComputingEdge August 2015 120 COMPUTER WWW.COMPUTER.ORG/COMPUTER CAREER OPPORTUNITIES

dvlpmnt focus areas across iPod and Virtual Machine Engineer (REQ# Operations Engineer (Manufacturing) iPhone. Travel req’d 25%. 9DPNZF) Dev & maintain all aspects (REQ#9E8QUP). Des & dev xtures of JavaScript Core JavaScript Virtual for electronics assembly & measure- Systems Design Engineer (REQ# Machine, including the interpreter, ment. Travel req’d 40%. 9D9VWS). Dev object-oriented SW just-in-time compiler, garbage collec- used in the manufacturing processes Software Engineer Applications tor, & runtime library. of Apple products. Travel req’d 25%. (REQ#9XJVVW). Des, implmnt, & Software Engineer Applications debug speci c modules of a SW sys to ASIC Design Engineer (REQ# (REQ#9NVTE7). Des & dev SW sol’s allow users to interact w/large data- 9DLTBA). Responsible for physical de- for world wide POS systems. sets on a server via a variety of client sign and implementation of partitions. apps running on MacOS, iOS & other Software Development Engineer Hardware Development Engineer platforms. (REQ#9H3TRU). Design and opti- (Req#9GQ4MC). Research, design, mize the Swift compiler. Software Development Engineer develop & launch next-gen Sensing (REQ#9D2SVD) Dsgn & dvlp low lvl Technologies. Travel req 20%. Software Engineer Applications SW for cntrlling pwr mgmt. features (REQ#9MFUUZ). Des, dev, implmnt, Software Development Engineer of new chipsets & platforms. maintn & opr lg scale distrib’d sys. (REQ#9PFR9T). Design & imple- ment device drivers for peripheral de- Information Systems Engineer (REQ# Apple Inc. has vices across all iOS HW platforms. 9QE3HD). Wrk w/key global & re- the following job gional biz users, BPRs & ext’d IS&T Software Development Engineer teams to drive & implement strategic (REQ#9EP3PA). Dsgn, implmnt, & opportunity in Austin, SCM sol’s @ Apple. maintain compiler support for debug- TX: ging app & sys SW. Software Engineer Systems (REQ# 9SL38V). Dsgn, dev, & support highly Software Development Engineer Systems Engineer (REQ#9H7T5L) available & high-performance entr- (REQ#9U55BR). Dsgn & dev low- Build & tblsht comp serve sys. prse Hadoop solutions & admin of level pwr mgmt SW. Hadoop clusters for iCloud Reprtng. Apple Inc. has Software Engineer Systems (REQ# Software Development Engineer 9D5QU5). Rsrch, dsgn, dev, & debug the following job (REQ#9UFPPB). Des, implem, & sup OS kernels, device drvrs, framewrks, tools & compon’s for local data qual opportunity in San & libraries on embedded systs. monitoring & veri cation. Francisco, CA: Software Development Engineer Software Engineer, Systems (REQ# (REQ#9RGVGH) Dvlp & dbg boot 9S4QDH). Des dev & sup highly avail Software Development Engineer FW & HW fr nxt gen. Mac pdcts. & high perform enterprise Hadoop (REQ#9E2PBJ). Create SW test plans Hardware Development Engineer sol’s & admin of Hadoop clusters for & exec black/white box fnctnl & perf (REQ#9FV4TT). Respon for design, iCloud Reporting. tests. develop & validation of radio base- Software Development Engineer band hw circuits & sys for wireless (REQ#9D2NDG). Perform SW eng’g comm dvcs. speci c to translation & localization Engineering Manager (REQ#9DCTDF). of Siri & other cloud-based SW user Design mech & elec interconn comp. & interfaces into foreign languages. prod. for iPhone and iOS devices. Travel Software Development Engineer required 15%. (REQ#9A639A) Bld, anlyze, & test Software Engineering Technical SW to imprve prfrmnce of Siri srvce. Refer to Req# Writer (REQ#9N8UQR). Create in- Firmware Engineer (REQ#9LUTHN) structional documentation to develop & mail resume to Dsgn & dvlp rmware for wrlss audio software platforms. Apple Inc., ATTN: L.M. prdts. 1 In nite Loop 104-1GM Software Development Engineer Software Quality Assurance Engineer (REQ#9L5M8T). Dsgn & dvlp OS lvl Cupertino, CA 95014. (REQ#9PUMNS) Des crte & exec’t netwrkng SW acrss range of prdcts. Apple is an EOE/AA m/f/ test suites & test cases to qualify Maps disability/vets. Software Engineer Applications Core services (REQ#9E5VLE). Research & dev Hardware Development Manager large-scale Cloud-based productivity (REQ#9E52CA). Des & dev display app suite. panels & integrate Apple’s prod’s.

www.computer.org/computingedge 67 AUGUST 2015 121 CAREERCAREER OPPORTUNITIES OPPORTUNITIES

ADVERTISER INFORMATION • AUGUST 2015

Advertising Personnel Phone: +1 508 394 4026 Fax: +1 508 394 1707 Debbie Sims: Advertising Coordinator Email: [email protected] Southwest, California: Phone: +1 714 816 2138 | Fax: +1 714 821 4010 Mike Hughes Email: [email protected] Chris Ruo : Senior Sales Manager Phone: +1 805 529 6790 Email: cruo @computer.org Phone: +1 714 816 2168 | Fax: +1 714 821 4010 Southeast: Heather Buonadies Advertising Sales Representatives (display) Email: [email protected] Phone: +1 201 887 1703 Central, Northwest, Far East: Eric Kincaid Advertising Sales Representatives (Classieds & Jobs Board) Email: [email protected] Phone: +1 214 673 3742 Heather Buonadies Fax: +1 888 886 8599 Email: [email protected] Phone: +1 201 887 1703 Northeast, Midwest, Europe, Middle East: David Schissler Email: [email protected]

Cisco Systems, Inc. is accepting resumes for the following positions: CARMEL, IN: Solutions Architect (Ref.# CAR10): Responsible be required to various unanticipated locations throughout the United for IT advisory and technical consulting services development and States. delivery. Telecommuting permitted and travel may be required to SAN JOSE/MILPITAS/SANTA CLARA, CA: User Centered various unanticipated locations throughout the United States. Design Engineer (Ref.# SJ386): Responsible for the development COLUMBIA, MD: Software Engineer (Ref.#: COLU1): Responsible of software artifacts to deliver software releases of the company’s for the de nition, design, development, test, debugging, release, services and products. IT Engineer (Ref.# SJ7): Responsible enhancement or maintenance of networking software. for development, support and implementation of major system functionality of company’s proprietary networking products. Hardware DENVER, CO: Network Consulting Engineer (Ref.# DEN3): Responsible for the support and delivery of Advanced Services to Engineer (Ref.# SJ5): Responsible for the speci cation, design, company’s major accounts. Telecommuting permitted and Travel may development, test, enhancement, and sustaining of networking be required to various unanticipated locations throughout the United hardware. Planning Manager (Ref.# SJ789): Coordinate and States. develop large engineering programs from concept to delivery. Deploy technical solutions to large cross functional groups. Network ISELIN/EDISON, NJ: Network Consulting Engineer (Ref#: ED2): Consulting Engineer (Ref.# SJ107): Responsible for the support and Responsible for the support and delivery of Advanced Services to delivery of Advanced Services to company’s major accounts. Travel company’s major accounts. may be required to various unanticipated locations throughout the RESEARCH TRIANGLE PARK, NC: Customer Support Engineer United States. User Experience Designer (Ref.# SJ587): Identify (Ref.# RTP1): Responsible for providing technical support regarding user interaction requirements and develop user experience interface the company’s proprietary systems and software. Network Consulting speci cations and guidelines. Business Architect (Ref.# SJ361): Engineer (Ref.#: RTP954): Responsible for the support and delivery Coordinate Invoice-To-Cash related programs with focus on revenue of Advanced Services to company’s major accounts. Telecommuting related initiatives based on Oracle Platform. Travel may be required to permitted. various unanticipated locations throughout the United States. ROSEMONT, IL: Network Consulting Engineer (Ref.# ROSE15): PLEASE MAIL RESUMES WITH REFERENCE NUMBER TO Responsible for the support and delivery of Advanced Services to CISCO SYSTEMS, INC., ATTN: M51H, 170 W. Tasman Drive, Mail company’s major accounts. Telecommuting Permitted and Travel may Stop: SJC 5/1/4, San Jose, CA 95134. No phone calls please. Must be legally authorized to work in the U.S. without sponsorship. EOE. www.cisco.com

68 ComputingEdge August 2015 122 COMPUTER PUBLISHED BY THE IEEE COMPUTER SOCIETY 0018-9162/15/$31.00 © 2015 IEEE CAREER OPPORTUNITIES CAREER OPPORTUNITIES

Hitachi Consulting Corp. The following openings are for Dallas, TX & various unanticipated worksites throughout the U.S. & require up to 100% domestic travel to various & unanticipated client/project worksites: Program/Project Manager/Req#29592 work w/ business & technical teams to drive critical business initiatives & deliver large enterprise projects in retail commerce & e-commerce domain; Software Engineer/Req#29594 design & implement end-to-end solution in consumer goods/life sciences industries; Functional Lead-SCM Mgmt/Req#29595 provide functional/technical expertise related to solution offerings to support deliverables and/or project objectives for Oracle Applications SCM domain; Software Engineer/ Req#29599 design & implement end-to-end solution in ERP solution architecture; Service (Solution) Architect/Req#29604 execute Oracle implementation, testing & support projects & consult re: best Oracle supply chain option; Service Architect/ Req#29606 provide functional/technical expertise related to solution offerings to support deliverables and/or project objectives & develop, design & implement enterprise level, large scale, scalable apps using .NET C# & ASP.Net; Architect/Req#29608 analyze, design & gather business reqs & develop e-commerce solutions using WebSphere Commerce Serve & Oracle; Senior Consultant/Req#29610 solution design & perform SAP ABAP development & implementations; Database Administrator/ Req#29611 applications DBA for Oracle EBS 11i & R12; Software Engineer/Req#29613 design & implement end-to- end solution in ERP solution architecture; Software Engineer/Req#29596 design & implement end-to-end solution in ERP solution architecture; Software Engineer/Req#29605 design, develop, test & deploy end-to-end solutions for implementation, upgrade & support engagements in relation to Oracle ERP solution architecture; SharePoint Architect/Req#29607 design, develop & implement scalable & extendable customized SharePoint enterprise solutions; Programmer Analyst/Req#29597 design & conduct changes in application systems related to apps programming in Oracle SOA suite; Programmer Analyst/ Req#29598 application programming in Oracle Financials; Software Engineer/Req#29600 design of end-to-end technical solutions & software development/engineering; Software Engineer/Req#29601 design & implement end-to-end solution in ERP solution architecture & Oracle EBS; Software Engineer/Req#29602 design & implement end-to-end solution in ERP solution architecture; Software Engineer/Req#29612 design & implement end-to-end solution using Microsoft .Net development; Software Engineer/Req#29615 design & implement end-to-end solution involving custom development solutions using Microsoft technologies; Project Manager/Req#29616 implement Agile (scrum) development methodology & MS web application design & development; Senior Consultant/Req#29617 solution architect for web apps using MS based technologies; Software Engineer/Req#29618 design end-to-end technical solution in ERP solution architecture; Programmer Analyst/Req#29621 involved in analysis, design & build phases of projects in relation to Oracle Fusion, Oracle Apps R12 & 11i & Oracle Financials; Software Engineer/Req#29619 design of end-to-end technical solutions & develop, test & deploy solutions for implementation, upgrade & support engagements involving ERP solution architecture; Manager, Software Engineering/Req#29620 leading cross functional teams in global delivery model or NShore model & managing enterprise-level large scale projects/products; Senior Consultant/Req#29622 analyze & gather customer’s business reqs & defi ne business data reqs & create reports to integrate w/ the SAP non/SAP data; Senior Consultant/Req#29623 senior system analyst for ERP-SAP implementation; Software Engineer/Req#29624 design & implement end-to-end solution w/ functional & technical component w/in the MS technology stack; Software Engineer/Req#29625 design & implement end-to-end solutions w/ technical deployment involving ERP Solution Architecture; Senior Consultant/Req#29626 analysis, architecture, design & development of data warehouse & BI solutions & MS BI full life cycle implementations; Business Analyst/Req#29627 assess the data quality for patterns, value ranges, record completeness & conformity to data standards using various profi ling strategies & facilitate workshops for understanding data fl ows & lifecycle, data owners & data quality mgmt. processes to defi ne data governance methods & procedures; Senior Consultant/Req#29628 develop business solutions utilizing MS SharePoint & MS SQL Server & BI tools; Senior Consultant/Req#29629 analyze & gather customer’s business reqs & develop & review functional & technical specifi cations & interfaces using MS technologies; Business Analyst/Req#29630 implement Oracle ERP systems & analyze customer business process & design the solution in Oracle ERP environment; Manager/Req#29631 develop strategies, drive execution & planning of the support mechanism for roll out of e-commerce apps; Software Engineer/ Req#29633 analyze specifi cation & design of end-to-end technical solutions in SAP; Software Engineer/Req#29632 design & implement end-to-end solution & Enterprise Architecture integration.

The following opening is for Chicago, IL:

Software Engineer/Req#29614 design of end-to-end technical solutions including install & upgrade of Oracle EBS from 11i to R12 & requires up to 75% domestic travel.

Interested applicants mail resumes to Attn: Reuben Job, Hitachi Consulting, 7979 Gateway Boulevard, Suite 220 Newark, CA 94560 & refer to Job/Req# of interest. www.computer.org/computingedge COMPUTER 0018-9162/15/$31.00 © 2015 IEEE PUBLISHED BY THE IEEE COMPUTER SOCIETY AUGUST 2015 69123 CAREER OPPORTUNITIES

CLASSIFIED LINE AD SUBMISSION DETAILS: Rates are $425.00 per column inch ($640 minimum). Eight lines per column inch and average five typeset words per line. Send copy at least one month prior to publication date to: Debbie Sims, Clas - sified Advertising, Computer Magazine, 10662 Los Vaqueros Circle, Los Alamitos, CA 90720; (714) 816-2138; fax (714) 821- 4010. Email: [email protected].

In order to conform to the Age Discrimination in Employment Act and to discourage age discrimination, Computer may re- ject any advertisement containing any of these phrases or similar ones: “…recent college grads…,” “…1–4 years maximum experience…,” “…up to 5 years experience,” or “…10 years maximum experience.” Computer reserves the right to append to any advertisement without specific notice to the advertiser. Experience ranges are suggested minimum requirements, not maximums. Computer assumes that since advertisers have been notified of this policy in advance, they agree that any experience requirements, whether stated as ranges or otherwise, will be construed by the reader as minimum requirements only. Computer encourages employers to offer salaries that are competitive, but occasionally a salary may be offered that is significantly below currently acceptable levels. In such cases the reader may wish to inquire of the employer whether extenuating circumstances apply.

Help build the next generation of systems behind Facebook's products. Ooyala Inc. has openings in our Santa Clara, CA location for: Facebook, Inc. currently has openings in Software Engineer (6688.33) Build interactive data visualizations using the latest Menlo Park, CA (various levels/types): web technologies, including D3 & CoffeeScript, working with terabyte-scale datasets; Associate Product Specialist (6688.75) Design & build a new tool (billing & Data Engineer, Analytics (4219J) Responsible for data warehouse plans for a product or tooling) that will optimize packages for hundreds of customers worldwide; Associ- a group of products. Design, build, and launch new data ate Product Specialist (6688.52) Design & build a new tool (billing & tooling) that models in production and new data extraction, will optimize packages for hundreds of customers worldwide, further defining transformation and loading processes in production. Ooyala as a trusted partner; Data Engineer (4566J) Design, develop, test and launch new reports and Ooyala Inc. has openings in our Plano, TX location for: dashboards into production, and provide support to reports and dashboards running in production. QA Manager (6688.80) Build & lead a team of QA Engineers & Software Developers Data Scientist (830J) in Test responsible for delivering world class products using agile practices in a SaaS Apply your expertise in quantitative analysis, data mining, and the presentation of data to see beyond the environment & at web scale; Backend Developer (6688.76) Review requirements & numbers and understand how our users interact with translate them to high level design. our core products.

Mail resume to: Facebook, Inc. Attn: SB-GIM, 1 Hacker Send resume to HR, 4750 Patrick Henry Drive, Santa Clara, CA 95054. Way, Menlo Park, CA 94025. Must reference job title Must ref. job code above when applying. and job# shown above, when applying.

70 ComputingEdge August 2015 124 COMPUTER WWW.COMPUTER.ORG/COMPUTER CAREER OPPORTUNITIES

Linkedin Corp. Linkedin Corp. has openings in our Mtn View, CA location for: Software Engineer (All Levels/Types) (6597.962, 6597.1032, 6597.959, 6597.1254, 6597.1332, 6597.901, 6597.286, 6597.662, 6597.791, 6597.1356, 6597.582, 6597.978, 6597.1020) Design, develop & integrate cutting-edge software technologies; Senior Manager, Software Engineering (6597.128) Create & own the strategic roadmap for the team; Engineering Manager (6597.1194) Lead a team of Software Engineers in conducting architecture, design, & implementation work; Associate Web Developer (6597.792, 6597.646) Own the front-end development for one or more products; Manager, Software Engineering (6597.553) Work across the entire stack from the data layer to the distributed service layer & the front-end presentation tier to optimize the user experience on mobile devices; Sr. Information Security Engineer (6597.579) Protect infrastructure, applications, & members by identifying new vulnerabilities & responding to existing vulnerabilities within the organization; Senior Product Manager (6597.1012) Conduct analysis of the competitive environment, customers, & product metrics to determine the right feature set to drive engagement & usage on LinkedIn; Information Security Engineer (6597.941) Responsible for identifying new vulnerabilities & responding to existing vulnerabilities within the organiza- tion.

Linkedin Corp. has openings in our Sunnyvale, CA location for: Software Engineer (All Levels/Types) (6597.928, 6597.770, 6597.683, 6597.1306) Design, develop & integrate cutting-edge software technologies; Test Engineer (6597.929) Design & develop automated test suites, continuously design creative ways to break software, & identify potential bugs; Senior Database Engineer (6597.596) Evaluate & implement of new functionality, performance tuning, root-cause analysis, & issue resolution across complex database environments; Manager, Software Engineering (6597.567) Create & deliver compelling products & end user experiences in the search & analytics domain with focus on building software platforms; Manager, Database Engineering (6597.75) Administer Oracle database systems & related environments from development to production; Systems Engineer (6597.854) Improve Operations Teams’ efficiency by developing, identifying, & deploying tools to improve the manageability & support ability of the production, staging, reporting, & corporate environments; Manager, Systems Engineering (6597.288) Lead a team of up to 6 Solutions Architects & Developers to design, develop & integrate cutting-edge software technologies; Associate Web Developer (6597.992) Own the front-end development for one or more products.

Linkedin Corp. has openings in our San Francisco, CA location for: Software Engineer (All Levels/Types) (6597.1075, 6597.818) Design, develop & integrate cutting-edge software technologies; Technical Consultant (6597.953) Analyze clients’ business needs & recommend the appropriate technology solutions; Technical Services Manager (6597.915) Oversee the technical support of company customers; Quality Assurance Engineer (6597.1347) Work with agile team members in estimating test effort using SCRUM & Kanban methodologies. Position allows for telecommuting; Technical Solutions Architect, Sales Systems (6597.839) Responsible for the analysis, design, & development of sales systems projects in conjunction with other members of Sales Systems teams. Limited travel required to other company worksites in the Bay Area.

Linkedin Corp. has openings in our Calabasas, CA location for: Enterprise Data Warehouse Architect (6597.1339) Build a leading edge enterprise data warehouse encompassing the entire life cycle, including data integration, transformation, logical & physical design, security, backup, & archival strategies implementing industry best practices. Software Engineer (All Levels/Types) (6597.1342) Design, develop & integrate cutting-edge software technologies.

Please email resume to: [email protected]. Must ref. job code above when applying. www.computer.org/computingedge 71 AUGUST 2015 125 2016 Richard E. Merwin Distinguished Service Award CALL FOR AWARD NOMINATIONS Deadline 15 October 2015

ABOUT THE MERWIN AWARD The highest level volunteer service award of the IEEE Computer Society for outstanding service to the profession at large, including signifi cant service to the IEEE Computer Society or its predecessor organizations. ABOUT DICK MERWIN Dick Merwin was a pioneer in digital computer engineering who participated in the development of the ENIAC, MANIAC, and STRETCH computers. Despite a busy and productive technical career, Merwin found time to be active in professional RANGACHAR KASTURI societies, including the IEEE Computer Society, 2015 Richard E. Merwin ACM and AFIPS. His generosity of spirit and genuine Distinguished Service Award helpfulness was an important element in the progress of the computer profession. For exemplifying a true volunteer spirit and a commitment to AWARD excellence through signifi cant A bronze medal and $5,000 honorarium are awarded. and continuing contributions supporting the vision and PRESENTATION mission of the IEEE and the The Richard E. Merwin Award is presented at the IEEE Computer Society. IEEE Computer Society’s Annual Awards Ceremony. REQUIREMENTS This award requires 3 endorsements. AWARDS HOMEPAGE NOMINATION SUBMISSION www.computer.org/awards Nominations are being accepted electronically www.computer.org/web/awards/merwin CONTACT US [email protected]

MerwinAward-FullAd-2016-ml.indd 1 7/10/15 12:25 PM Move Your Career Forward IEEE Computer Society Membership

Explore All of the Related Resources on Software

Build Your Knowledge

IEEE Software The authority on translating software theory into practice, this bimonthly magazine presents pioneering ideas, expert analyses, and thoughtful insights to help software professionals keep up with rapid technology change.

IEEE Transactions on Software Engineering This bimonthly journal focuses on well-defined theoretical results and empirical studies with real potential to impact software construction, analysis, and management.

Create Connections

Technical Council on Software Engineering TCSE encourages the application of engineering methods and principles in developing software, and works to increase professional knowledge of techniques, tools, and empirical data to improve software quality. The council cosponsors conferences and develops proposals for IEEE software engineering standards.

Advance Your Career

Software Engineering Knowledge Area Certificates The 12 certificate areas assess a candidate’s proficiency in understanding the concepts involved, as well as their ability to apply them in the software engineering process. http://www.computer.org/web/education/knowledge-area-certificates

FOR DIRECT LINKS TO THESE RESOURCES, VISIT The Community for Technology Leaders www.computer.org/edge-aug 30th IEEE INTERNATIONAL Paral lel and Distributed Processing SYMPOSIUM

MAY 23-27, 2016 CHICAGO HYATT REGENCY CHICAGO, ILLINOIS USA

IPDPS 2016 will be held in Chicago, the third largest metropolis in the USA. It boasts a dual-hub airport system and 46 non-stop global flights daily. Situated along the shoreline of Lake Michigan, downtown Chicago (aka the Loop), where the Hyatt Regency is located, is an easy walk or cab ride to the attractions the city offers, including parks, beaches, shopping, museums, live entertainment, and the singular international cuisine of Chicago's diverse ethnic neighborhood eateries. Check the IPDPS Web pages for updates and information on workshops, the PhD Forum, and other events as the full program develops.

CALL FOR PAPERS WHAT/WHERE TO SUBMIT KEYNOTES & Authors are invited to submit manuscripts that present original unpublished Authors will need to register their paper and TECHNICAL SESSIONS research in all areas of parallel and distributed processing, including the development submit an abstract by October 9, 2015 and then submit full versions by October 16, 2015. of experimental or commercial systems. Work focusing on emerging technologies WORKSHOPS is especially welcome. Topics of interest include: More details on submissions and instructions for submitting files are available at & PHD FORUM • Parallel and distributed algorithms, focusing on topics such as: numerical, www.ipdps.org. All submitted manuscripts combinatorial, and data-intensive parallel algorithms, locality-aware and will be reviewed. Submitted papers should COMMERCIAL power-aware parallel algorithms, streaming algorithms, parallel algorithms in NOT have appeared in or be under PARTICIPATION specific domains such as machine learning and network science, scalability of consideration for another conference, algorithms and data structures for parallel and distributed systems, communication workshop or journal. and synchronization protocols, network algorithms, scheduling, and load balancing. Details at www.ipdps.org GENERAL CHAIR • Applications of parallel and distributed computing, including computational and Xian-He Sun data-enabled science and engineering, big data applications, parallel crowd (Illinois Institute of Technology, USA) sourcing, large-scale social network analysis, management of big data, cloud and IMPORTANT DATES grid computing, scientific, biological and medical applications, and mobile PROGRAM CHAIR computing. Papers focusing on applications using novel commercial or research Jeffrey K. Hollingsworth architectures, big data approaches, or discussing scalability toward the exascale (University of Maryland, USA) August 15, 2015 level are encouraged. Proposals for New Workshops PROGRAM VICE-CHAIRS • Parallel and distributed architectures, including architectures for instruction-level • Algorithms: October 9, 2015 and -level parallelism; petascale and exascale systems designs; novel big data Ümit V. Çatalyürek architectures; special purpose architectures, including graphics processors, signal (Ohio State University, USA) Submit Abstract processors, network processors, media accelerators, and other special purpose • Applications: processors and accelerators; impact of technology on architecture; network and Darren Kerbyson October 16, 2015 interconnect architectures; parallel I/O and storage systems; architecture of the (Pacific Northwest National Submit Paper memory hierarchy; power-efficient and green computing architectures; dependable Laboratory, USA) architectures; and performance modeling and evaluation. • Architecture: December 18, 2015 Andrew A. Chien Author Notification • Parallel and distributed software, including parallel and multicore programming (University of Chicago, USA) & languages and compilers, runtime systems, operating systems, resource Hank Hoffman After management including green computing, middleware for grids, clouds, and data (University of Chicago, USA) centers, libraries, performance modeling and evaluation, parallel programming December 18, 2015 • Software: Deadlines for Paper paradigms, and programming environments and tools. Papers focusing on novel Karen Karavanic Submissions to Workshops software systems for big data and exascale systems are encouraged. (Portland State University, USA)

SPONSORED BY: IN ASSOCIATION WITH: ACM SIGARCH IEEE Computer Society Technical Committee on Computer Architecture IEEE Computer Society Technical Committee on Distributed Processing