InstallShield White Paper Agile Practices

download InstallShield White Paper Agile Practices

of 6

Transcript of InstallShield White Paper Agile Practices

  • 7/30/2019 InstallShield White Paper Agile Practices

    1/6

    Agile Pract ices andInstallation Development

  • 7/30/2019 InstallShield White Paper Agile Practices

    2/6

    Agile Practices and Installation Development

    2

    Agile Pract ices and

    Installation DevelopmentBoth commercial and custom application developmentprojects are increasingly using agile processes to deliversoftware. Agile processes are characterized by mult ipleiterations and frequent delivery of working software to users,who provide rapid and almost continuous feedback onthe scope and direction of the application. This approachenables teams to successively rene t he look and feel ofsoftware, while also making rapid changes to feature sets inresponse to changing business opportunities.

    However, t he ability to create and manage a exibleinstallation package is a critical part of meeting the goalsof agile projects. Good installation packages enable teamsto rapidly deliver new builds into a single unit that allowsusers to easily install and uninstall, supporting several ofthe most important goals of agile development practices.Agile teams focus on delivering software iteratively with apositive user experience and seek an automated solution fordeveloping installation packages.

    Business Drivers of Agile DevelopmentThe business environments that are served by the manysoftware applications available tend to change rapidly.

    Business groups are driven by market opportunities,regulatory and legal changes, new business relationships,and staff changes. Often these occur with little or noforewarning, and windows of opportunity tend to closequickly. New applications or new features to existingapplications are often needed in order to take advantage ofthese opportunities.

    These realities apply to packaged commercial applicationsas well as in-house custom applications. Customer needschange quickly, and missing out on those needs may drivethem to seek other alternatives.

    An application can commonly take a year or more indevelopment and test prior to release. Even adding newfeatures to an existing application typically takes at leastseveral months of effort. In traditional methodologies,requirements are frozen at the beginning of the process tomake for a predictable development effort, with little or nofurther input from the user community until the software isdelivered. While there is sometimes a period of beta testingjust prior to nal delivery, the purpose of beta testing is toidentify defects, not change features or look and feel.

    If user or business needs change in the interim, there islittle that a development team can do to adjust to newrequirements. In most cases, changing requirements oradding new requirements adds a signicant amount ofadditional time and money to the development effort.In other words, traditional ways of developing softwarewerent designed for the needs of business today.

    These business realit ies have led development teams toadopt agile techniques in order to better meet t he needs ofthe user community. Agile development enables teams to:

    Get important features into the hands of users morequickly by iterating development on a few featuresat a time.

    Make mid-course corrections based on changingbusiness needs, in response to changes in user needsduring the course of the project.

    Fine-tune features and user interfaces with regular userfeedback, based on the iterative releases.

    Even teams building commercial packaged software ndagile methodologies useful. In addition to being ableto deploy a few compelling features quickly, it provides

  • 7/30/2019 InstallShield White Paper Agile Practices

    3/6

    Agile Practices and Installation Development

    for a mechanism to adjust the feature set based on newtechnologies or large shifts in their target markets.Commercial application developers usually do not seekto satisfy a single customer or group of users. But timelyfeedback from multiple customers can help productmanagers and development teams make adjustments onsubsequent iterations in response to feedback from earlyadopters willing to work with mult iple releases.

    Common Characteristics of Agile ProcessesThere are many different agile methodologies, includingScrum, Feature-Driven Development, and ExtremeProgramming. Choosing a specic agile methodology oftendepends on the previous experience of team members. Inpractice, many teams research agile methodologies andpick and choose individual techniques and practices thatbest match their skills and culture.

    While agile methodologies vary in a number of details,

    there are several common characteristics. First, agileteams develop software in a series of iterations, typicallyranging from one week to one month. This enables teamsto focus intently on only a few features, for a limitedperiod of time, and deliver those features to the best oftheir ability. Successive iterations are planned just prior toexecution. They may be used to add additional features,make changes to existing features, or address defects orother limitations.

    Agile methodologies place a premium on deliveringworking software at the end of each iterat ion. This meansthat the team is building early and often, nding and

    xing defects in real time, and making sure that mostbuilds result in software that can be installed and used.Working software requires enabling the user community toeasily install and start using the software, and to replace itseamlessly once a new iterat ion becomes available.

    Daily or continuous integration of each developers codesupport the ability to deliver working software. Eachintegration is veried by an automated build to detectintegration errors as quickly as possible. Many teams ndthat this approach leads to signicantly reduced integrationproblems and allows a team to develop cohesive softwaremore rapidly.

    Agile methodologies also depend on talented andmotivated developers. Often developers who make up agileteams are specialists who work in different geographiclocations, and collaborate at a distance. These professionalsare able to work independently on specic componentswhile also ensuring that everything is able to work togetherwhen built.

    Limitations of AgileDespite the apparent benets, agile methodologies canalso create challenges development teams must overcome.Probably the most signicant challenge is delivering

    software that cleanly installs and uninstalls at the end ofeach iteration. In many cases, Registry keys are eitherskipped entirely, necessitating temporarily setting pathsor privileges. Or users are required to manually move lesaround and set individual Registry keys.

    Frequently, either the team delivers a zipped set of les thathas little organization or installation integrity, or it worksan inordinately long time after each iterat ion to ensurethat installation is safe and convenient for users. Neitheralternative represents an efcient use of t ime or resources.

    Because agile teams may be geographically distributed,development must be planned out carefully, enablingindividual developers to write code to a dened setof interfaces. In most cases, geographically separatedevelopers or small teams may each hold parts of t heinstallation code, which must be put together seamlesslyin order for the installation project to build and executesuccessfully. Even with close coordination, init ial builds and

    installation success requires a lot of back-and-forth betweenteam members.

    As a result, agile teams tend to struggle with installat ion.This is especially a problem in agile development, with itsmany delivery requirements and litt le ability to move aroundtasks when delays occur. These limitations call for a betterway to develop installation projects for applications thatare developed iteratively and delivered to users in severalsuccessive releases.

    Best Practices for Application InstallationInstallation is a vitally important component of an agile

    development effort. Without t he ability to quickly and easilyinstall and uninstall successive versions of an application,it is impossible to obtain user feedback on the qualityand direction of those features. Further, difcult or time-consuming installation and uninstallation will cause users tobecome reluctant to continue to use the software, deprivingthem of the immediate benets of new features.

    Software teams who practice agile development, therefore,desire best pract ices in order to offer the best userexperience, deal with fewer support calls, and achievegreater acceptance of t heir software. Teams should planfor installation as a part of scoping and designing theapplication, with a determination of the les required,privileges and locations of those les, required Registrykeys and locations for t hose keys, directories used, andcomponents to conditionally install. Once t he design iscomplete, install should be developed concurrently with oneof the rst iterations.

    As development teams strive for the rst successful build ofa new project, they must also focus on t he complete installpackage for that build. Even adding les or other objectsat a later time should be straightforward as long as thefundamental architecture is solid.

  • 7/30/2019 InstallShield White Paper Agile Practices

    4/6

    Agile Practices and Installation Development

    4

    Because agile teams are likely employing cont inuousintegration practices, installation should also be apart of that practice. In addition to integrating,building, and testing all software on an ongoing basis,the team should also integrate and build the necessaryinstallation packages.

    Finally, teams should leverage automation where possible.According to t he principles of the Agile Manifesto, simplicityin learning and use is essential. Therefore any automationhas to be simple, exible, and congurable. By choosingthe right tools to enable automation of specic activities,an agile process can be signicantly improved.

    Agile Installation and InstallShieldPackaging and installation should support t heorganizations business objectives. In many cases, thismeans making multiple applications and componentsavailable through a single installation process. Packagingand installation should also simplify development, licensing,

    and maintenance, rather than making it more complex.Flexera Softwares InstallShield, the longt ime leader ininstallation development for Windows applications,enables traditional and agile development teams toaddress their installation authoring needs so they candeliver software iterations quickly.

    InstallShield provides t he exibility required by fast-movingagile teams in creating and offering application installat ionoptions. For example, release engineers can use theInstallShield Standalone Build to automate night ly buildsof installations and help development teams to implementcontinuous build integration. Because nightly or continuous

    builds are an essential part of any agile practice, theStandalone Build ensures that the project is ready to deployonce an iteration is completed.

    The teams can set up the nightly or continuous buildprocess to include not just the application builds, butalso the installation builds. The build can include a singleapplication, or, with the new suite support in InstallShield2012, a suite composed of several separate applications,as well as associated prerequisite components. Theinstallation is ready for regular testing throughout thedevelopment process, and when development and testingare complete, is ready for distribution.

    The InstallShield automation interface enables teammembers to use a script to add new les, add ordelete features, initiate the build process, and changeproduct name and upgrade code, release sett ings,summary information stream items, release ags, andsimilar information.

    The newly enhanced InstallShield 2012 Collaborationadd-on enables individual development team membersto contribute to the development of the installationsimultaneously throughout each iterat ion. Each developeror tech writer can create on one or more developer

    installation manifests (DIMs)feature-sized collections ofrelated items such as application les, shortcuts, registryentries, and other elements that together make up adiscrete, logically separated portion of the installation.Teams can integrate DIMs into mult iple installation projects,reusing them as needed, enabling efciency.

    The agility of InstallShield is demonstrated by the ability ofteams to create an integrated package that serves the needsof a wide range of customers and users. These includethe ability to easily bundle multiple products together intoa single, unied suite installation eliminating the needto develop a complex custom launcher or bootstrapperapplication, incorporate both 32-bit and 64-bit installpackages, give end users the option of running suiteinstallations with a user interface or silently, allow theinstallation developer to specify whether to show a singleentry for t he ent ire suite in Add or Remove Programs, andprovide that developer with complete and centralizedcontrol over the user experience design.

    With these features, agile teams can easily set upinstallation projects concurrent with initial iterations, andkeep installations up to date as they plan and executesubsequent iterations. A typical install development scenariostarts with individual members of the team working oninstallation units that correspond to their developmentresponsibilit ies. As the team members are workingindependently, their installation components have to worktogether when integrated. Those components combine asunits of the integrated installation package.

    InstallShield features and capabilities enable these

    teams to meet their application delivery needs onschedule and with high quality. Whether the project isan individual application or a complex suite of productsand components, InstallShield enables teams using agileor traditional development processes to quickly andaccurately build installation packages, integrate thosepackages if needed, and meet business object ives byproviding customers and users exibility in select ing andlicensing only the needed applications.

    SummaryAs agile development teams seek to deliver the rightsoftware to users early and often, installation can nolonger take a back seat to features and bug xes. Teamscan plan for installation as they begin the project, anduse automated tools such as InstallShield to prepare andmanage the installat ion package for iterative releases. Theresult is the ability to deliver a great initial user experiencewith multiple iterations of an application, while easing theworkload and stress on the development team.

  • 7/30/2019 InstallShield White Paper Agile Practices

    5/6

    Agile Practices and Installation Development

  • 7/30/2019 InstallShield White Paper Agile Practices

    6/6

    Flexera Software, Inc.1000 East Woodeld Road,Suite 400Schaumburg, IL 60173 USA

    Schaumburg(Global Headquarters):+1 800-809-5659

    United Kingdom (Europe,Middle East Headquarters):+44 870-871-1111+44 870-873-6300

    Japan (Asia,Pacic Headquarters):+81 3-4360-8291

    For more ofce locations visit:www.exerasoftware.com

    Copyright 2011 Flexera Software LLC. All other brand and product names mentioned herein may be the trademarks and registered trademarks of their respective owners.

    IS_WP_Agile-Practice_Oct11

    http://www.flexerasoftware.com/http://www.flexerasoftware.com/