Software deployment goals




















Some of the most common activities of software deployment include software release, installation, testing, deployment, and performance monitoring.

Software development teams have innovated heavily over the past two decades, creating new paradigms and working methods for software delivery that are designed to meet the changing demands of consumers in an increasingly connected world.

In particular, software developers have created workflows that enable faster and more frequent deployment of software updates to the production environment where they can be accessed by users. While many development teams still choose to host applications using on-premises IT infrastructure, cloud service providers like Amazon Web Services AWS , Google Cloud Platform and Microsoft Azure now offer IT Infrastructure-as-a-Service IaaS and Platform-as-a-Service PaaS products that help developers deploy applications into live environments without the additional financial and administrative burden of managing their own storage and virtualization servers.

Software deployment is one of the most important aspects of the software development process. Deployment is the mechanism through which applications, modules, updates, and patches are delivered from developers to users. The methods used by developers to build, test and deploy new code will impact how fast a product can respond to changes in customer preferences or requirements and the quality of each change.

Software development teams that streamline the process of building, testing and deploying new code can respond more quickly to customer demand with new updates and deliver new features more frequently to drive customer satisfaction, satisfy user needs and take advantage of economic opportunities. For the uninitiated, software deployment and software release may sound like very much the same thing. In fact, these terms describe two separate aspects of the overall software deployment process that should be understood separately.

The software release cycle refers to the stages of development for a piece of computer software, whether it is released as a piece of physical media, online, or as a web-based application SaaS.

When a software development team prepares a new software release, it typically includes a specific version of the code and associated resources that have been assigned a version number. When the code is updated or modified with bug fixes, a new version of the code may be packaged with supporting resources and assigned a new release number.

Versioning new software releases in this way helps to differentiate between different versions and identify the most up-to-date software release. Software deployment refers to the process of running an application on a server or device.

It is important also to establish which success factors are really critical for the project and which are simply 'nice to have' if costs and functionality allow, and these factors should be listed in order of priority. Essential functions such as ease of integration with current systems which will be maintained or the ability of the software to run on current hardware should be looked at first as these factors can immediately disqualify certain vendors.

Differentiating standard or basic functionality available in all software packages from requirements that are unique to the business is also important as this will separate one vendor from another. Introducing new software should provide the opportunity to overhaul and improve business processes rather than simply provide new software to replicate previous processes. Rather than simply introducing a new system running legacy processes, the business should look to make improvements across all relevant areas so the new system can take advantage of streamlined, more efficient working practices.

Finally, the software chosen should offer value for money and a positive return on investment so that in the long term the change will positive effect the bottom line and will not be so expensive that it creates significant short term problems for the business.

There are various ways to obtain the initial long list of potential vendors and most finance systems professionals will be aware of the established software vendors and are likely to have worked with a number of systems themselves previously. But although knowledgeable the Project Manager, it is important to conduct a proper market review prior to selection to ensure every option is considered and none are discounted for evaluation. The selection team may be surprised by the service and functionality offered by the smaller or less well-known vendors and should not automatically opt for the more established well known brands.

At this stage it is also important not to discount software resellers who may offer their own in-house developed functionality and workarounds, more competitive pricing structures and sometimes a more personal approach to account management and support. Sources of vendors and resellers available can be found using internet search, industry publications, collections, consultants, other industry contacts, conferences and seminars. Remember that at this and every stage of the process people are vital and communication should be as open as possible to obtain information from as many sources as is feasible.

Once a long list of resellers and vendors has been identified and system requirements defined and prioritized, these requirements should be clearly communicated to the vendors in order to allow them to decide whether their software offers meet the requirements. A Request for Proposal RFP should be sent to each potential vendor asking them to respond if their software is able to meet the needs of the business.

Vendors should be challenged with questions related to the defined critical success factors such as cost, functionality, customization potential, technology, implementation, support and licensing. It is important that questions are clear and unambiguous in order to get a consistent response.

Where possible vendors should respond to each requirement with a number relating to its availability and this can be used to give each vendor a score based on the 'fit' of their software to the business, although of course this will not always be possible with all responses.

It may also be beneficial at this stage to send an RFP to the businesses current software vendor for comparison, and it should not be discounted as by adding some additional modules, functionality or an upgrade it may be the case that the current software product may be the best fit for the business saving an expensive and lengthy implementation process.

Evaluating the responses to a number of RFP's can be a very time-consuming and in-depth process, if the long list is too long, it may be more practical initially to send out a list of key questions to vendors generally referred to as a Request for Information RFI covering only essential features and major requirements, to reduce numbers prior to sending out full RFP's.

The responses obtained from the RFP's can be used to score vendors on the suitability of their products and how closely they fit the business requirements and this should help reduce the list of potential vendors to no more than 4 which can go forward for further evaluation. RFP should be assessed quantitatively with a grading system weighed against the most critical business requirements and scoring algorithms that can be used for assessment. The scoring and weighting system and any criteria used in the initial selection should be pre-determined during the requirements gathering phase so that evaluation is objective and avoids any bias.

The lack of basic features such as critical functionality, the ability of a system that interfaces with legacy systems or databases may mean that some systems are immediately discounted; other evaluation processes may be more complex. Inviting about 4 or 5 vendors to provide an initial pre-sales demonstration is a good start to the selection process. Vendors will want to spend as much time with prospective clients as possible at this stage as they wish to establish a relationship but it is probably best to limit these initial sales demonstrations to no more than 2 hours and ensure that vendors focus on the most important business issues and do not simply focus on demonstrating the features of the product they wish to sell.

It is advisable to ensure that focus concentrates on the most business critical requirements and unique customisations or functionality. It may reduce time to look at initial demonstrations over the internet rather than visiting the vendor or inviting the vendor on site, although this may not be as sufficient to customized business needs and there may be less opportunity to ask questions.

Although attaining software demonstrations is critical to the process more can be learnt from companies who have already implemented the system than software vendor sales demonstrations trying to gain buy-in. Vendors should be asked for relevant reference contacts so the selection team can discuss the process they went through and the difficulties they encountered during the implementation process and they can provide feedback on post go-live system performance.

Preparation is essential when speaking with references and a list of critical questions should be produced although one should be aware that these organizations are vendor 'success stories' who can be expected to provide a positive response. One of the most important tools for successful agile deployment is a continuous integration CI server.

CI servers pull in the source code from all developers and test it together in real time. Continuous integration also incorporates principles of continuous testing , where teams constantly collect feedback in order to catch problems as soon as possible. Continuous integration and continuous delivery CD are often mentioned in one breath, but they are two different practices. Once the code is integrated and the application is built, CD involves packaging and preparing the code for deployment. The application is put in a pre-production environment, or a replica of the actual production server.

Rigorous testing takes place during the delivery phase to ensure the application will work once deployed. The goal of continuous delivery is to have applications that are always ready to deploy.

Not only does this speed up software deployment, it has also been proven to produce higher quality software.

Deployment is a complex process, and doing it by hand leaves too much room for human error. Deployment automation reduces errors, speeds up deployments, and makes the process so easy, practically anyone on your team can do it.

The simplest form of deployment automation is the use of scripts to deploy specific actions in a specific environment in a specific context. For more advanced automation, use any one of the software deployment tools on the market today.

Continuous deployment takes continuous integration and continuous deployment a step further. It involves automatically deploying new versions of the software to customers, typically every time a developer makes a change. For a change to be automatically deployed, it would have to pass all tests in the CI and CD stages. Planned, designed and built packages are released and deployed under the control of the release and deployment management process.

We can say that the release and deployment management process is the core process of the Service Transition stage. The main goal of the Service Transition stage is transferring planned, designed, built and tested packages into service operation stage. The main goal of the process is creating value to the customer and the service to be able to be handed over to the service operation. Designed packages at the end of the service design stage are built, implemented and tested in service transition stage and during the release and deployment management process.

Therefore, the deployment of releases into production and the establishment of effective use of the service are the goals of release and deployment management process. After a release package is built, deployed, implemented and tested in Service Transition stage of the ITIL service lifecycle, if there are not any problems during the tests, the release package is deployed into production.

Because of this, the release and deployment management process is a critical point to see if there is any problem with the package before deploying the package to production. The first objective is creating a clear and comprehensive release and deployment management plans that enable the customer and business change projects to align their activities with these plans.

There can be several services, components, applications etc. Different requirements of the business or customer can go in parallel projects.



0コメント

  • 1000 / 1000