What is deployment?


We asked numerous developers to describe what the term deployment means to them. We paraphrased most answers with the statement: ‚“installing the application in the production environment. ‚½ While this might be the central idea of deployment, we want to challenge that thinking, and stretch the common view just a bit.

You know the whole goal of the development life cycle is to take your customers ‚ business processes or tasks and somehow translate their ideas into software that runs on the hardware they either already have or are going to buy. You create solutions to your customers ‚ needs. Developers have been doing this since the dawn of the computer age just a few decades ago.

First, the Dictionary.com definition of Deploy is:

de ‚ ·ploy (d-ploi )
v. de ‚ ·ployed, de ‚ ·ploy ‚ ·ing, de ‚ ·ploys, v. tr.

    • To position (troops) in readiness for combat, as along a front or line.

    • To bring (forces or material) into action.

    • To base (a weapons system) in the field.

  1. To distribute (persons or forces) systematically or strategically.

  2. To put into use or action: ‚“Samuel Beckett ‚ s friends suspected he was a genius, yet no one knew... how his abilities would be deployed ‚½ (Richard Ellmann).

The Dictionary.com definition number three is the closest definition in the context of deploying technology solutions to your customers. We looked up the definition of deployment used by technology companies and technology based companies. Here are two definitions we think stand out:

  • To establish the necessary production environment, install all components of applications in the production environment, train all users and support personnel, provide any start-up support, and transition support to the organizations responsible for ongoing operations of the system.

  • The act or process of placing a system into an operational environment. A site deployment installs or puts a system into operation at a specific locale.

The point we want to stress is deployment is more than running the SETUP.EXE and installing the software on a set of computers. It is a process that needs to be considered at each stage of the development cycle.

If deployment was really just the step of taking the CD, inserting into the CD drive, and letting the autorun process start SETUP.EXE we probably would not sell a single copy of this book or be able to write nearly two dozen chapters and appendices. Deployment takes planning. It needs to be considered from the moment the customer asks you to write a computer solution for them, and does not end with the pressing of the finish button and the spin down of the CD after the files are copied to the computer. There are different factors that affect what needs to be done, what steps need to be followed, and what components need to be delivered.

Deployment is the process of taking an idea, developing a solution, determining what needs to be delivered, implementing it for the user base, and making sure the users are able to use it effectively. If planned for properly, implementing a smooth deployment process can easily distinguish you from your competition (see Figure 1 ).


Figure 1. How successful do you think NASA would be if it waited until the moment it was ready to release a satellite into orbit to plan the deployment?

The deployment process is rarely given serious consideration during the estimation phase of a project. This can be costly in both resources and lost revenue. Have you ever been in the position where you finish the development of the project, proud of the fact you kept the project just under the budget the customer and you agreed to, and then find out you need to spend three weeks setting up the test environment for user acceptance testing and moving the application into production? We find developers assist customers with all phases of the actual implementation to make sure everything goes smoothly. This can consume a lot of time and you need to make sure to account for this when estimating the project costs. We discuss some of the things you should plan for in preparation for deployment in Chapter 2, ‚“Planning for Success. ‚½

Deployment is an expensive part of the application development life cycle, yet it is rarely considered until just before the application is installed. We spend an enormous amount of time preparing: understand the customer ‚ s computing environment, making sure the software meets the client ‚ s expectations, communicating the status of the project, setting meeting dates, training the users on testing the application, preparing the test environment, and finally preparing the production environment. These are all administrative tasks that do not exactly require superior technical skills. Rather, these tasks require detailed administrative and project management skills.

Deployments get better and usually go more smoothly with experience. If you have an opportunity to learn from someone else who has ‚“been there, ‚½ it will shorten the learning curve of this process. Many established, ‚“process certified ‚½ companies and experienced developers have deployment activities guided by an Implementation Plan, which lists tasks to be done, who will do them, the order they are to be accomplished, and often includes status updates and a list of issues.

Note ‚  

The two leading process certification authorities in our industry are the Carnegie Mellon Software Engineering Institute (Capability Maturity Model (CMM) for Software) found at http://www.sei.cmu.edu and the International Organization for Standardization (ISO) found at http://www.iso.org . Each of these organizations provides businesses with information and the process to certify their internal processes (including deployment).

We suspect by the mere fact you purchased this book, you want to become a deployment specialist, an expert, or at least want to improve your approach to deployment. Unfortunately, it is not as simple as reading a book or waving a magic wand. We cannot guarantee when you finish reading this book you will be an expert, but we intend to provide you with some of our experiences and the experiences of other developers we learned from to better prepare you for successful deployments in the future.




Deploying Visual FoxPro Solutions
Deploying Visual FoxPro Solutions
ISBN: 1930919328
EAN: 2147483647
Year: 2004
Pages: 232

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net