I was so excited to pen down my SETU’16 speech that I started my 2nd topic the same night I completed my first one! I hardly get time during office hours to write the blog but writing about my SETU’16 speech reminds me of all the enthusiasm and the great response we witnessed at the campus of Atmiya Institute of Technology. When I was doing a brainstorming last year about the topics I have to choose to speak I was having n numbers of topics that popped up in my mind. But as we were having short of time I was confined to have two most interesting topic out of all. My first topic was “Languages- A soul of programming” which you can read by clicking on it.
My second topic is all about Deploying a software project at MNC and at huge Corporate level. Well having a clientele with a big name and a big company is proud for every software company, but to deploy your project accurately to this giant enterprise becomes a real task. Deployment of the project refers to the installation of the software developed to the machine of the clients and checking its implementation and execution in the manner the client wanted. Deploying a software project into a corporation involves many checklists which are to be kept in mind while working on it. It involves a larger number of expert manpower along with advanced systems and a readiness to respond the client at the earliest. There needs to be an integrated consultative approach towards the project and experts from the different field of languages and coding should be gathered and should work for it.
Once the background of resources to form and deploy your software project is ready then there comes a series of activities which can be interlinked with each other or may occur after the transition of one activity. This activity takes place either online or at your client workplace, thus both of these cases can create a little havoc as it will somehow disturb the routine of your client and at MNCs and big corporation a bit of unusual activity creates little chaos as having more number of staff. There are various ways in which this activity can proceed, taking into account the requirement of client and genre of the software. The Four classification of Deployment process are as stated below:
Direct cutover which is also referred to as direct changeover is a method in which the old system gets an instant replacement with the new one. As the old system is dropped out in no time, this method needs extra caution in order to leave no data uncopied from the older system. Though this method has many disadvantages there are few points which make this method used by many companies till date. This system is useful as in some cases it takes just a few hours to uninstall the older one and install the new one which does not disturb the work of the employees much. Also, it is a kind of cheaper method than other options so if one is planning to have a fewer budget for new software implementation then this can be the perfect method.
It can be a simple method to implement but it takes lots of pain in planning to implement it as it contains lots of risk of losing the previous data with no backup. Also as the old system is vanished completely in a day, the end user needs to understand the new system in almost no time to carry out his/her work. Thus we can say that Direct cutover may not be the best method to adopt.
B. Parallel Implementation
This is a method in which both of the systems i.e. the new and the old systems both works parallel for a period of time. This enables the implementer to analyse the problems that occur in the new system and can encounter it before vanishing the old one completely. With this extraordinary advantage of this method, it stands to be the most popular one amongst all. In this method, the end-users get time to be familiarised with the new system and as a backup, they have their old system their work does not get disturbed to a large extent.
A primary disadvantage of this method is it is quite expensive as the cost will be incurred for both the systems simultaneously. Also, this method gives a chance to have duplication of data and may cause error out of it. Sometimes it also becomes void to use this method because the given machine cannot sync both the systems together and thus failure occurs.
It is an implementation in the stages. We can say it to be hybrid of direct cutover and
parallel implementation technique. It makes the execution step by step and department wise. To be precise, the new system is installed in one section but the other will still run in the old system unless the new one is working perfectly in the respective section. Here the implementer needs to identify the level of stages and sequence of the sections before starting the activity. The biggest advantage of this method is new system is introduced gradually and in stages thus end user get a good time to be equipped with it and also if it fails in one section it does not result in a complete stop down of routine work of the employees in the corporation. It also has fewer chances of errors and more chance to eradicate it in minimum time.
If we look at its major disadvantage then we can say it is quite more time consuming and thus sometimes it happens that the corporation does not complete the entire process. Even the risk of data loss becomes little prominent if the system fails in any of the critical stages.
Pilot implementation method is a refined phased method wherein a small area or one of the branch gets an installation of the new system and later on after minimising all the errors and hurdles the direct changeover takes place in other branches and area. Here, end users get good time to be equipped with the new system. It is quite cost-effective than Phased method. The pilot conversion method can be viewed as the final testing of the product. Both the developer and the customer are able to evaluate the product in an operational environment prior to its full implementation. The Users who were part of the pilot implemented area can help to provide training to other members of the organisation.
A major disadvantage with pilot implementation is that it may not show up problems that a full-scale implementation can face. This is because a system can work well as a small-scale pilot but has difficulties when it is scaled up to a full operating system with more realistic volumes of data to be processed.
So these were the methods by which implementation of the software projects takes place in any MNCs or the big corporation. Methods are sometimes overlapped and multiple methods are used as per the requirement and as demanded by the situation.
The other very important scene which has to be occured perfectly during the whole episode of deployment is “Documentation”. So see the below narration about this important part of the deployment.
Documentation- It’s meaning and importance while deployment of Software project.
Well, no matter how much the world gets modernised and techno-freak, there will always remain a need for documentation and records. Though the form of the same may get change as per the time, previously it was in written form and now it is digitalised and still many inventions are on its way! Like any other field, Software deployment too has an acute need for documentation. Here software documentation refers to the technical manual, user manual or a source code directory of that software and many such archives. If the documentation part has been skipped or is not done accurately then the developer may need to cook the whole food from beginning in the case of any disastrous error occurs. Below are the types of documentation that are done and “must be” done:
A. Requirements documentation
Requirements documentation explains for what a software is developed and shall be able to do. There are several information in the project which may not be included in this documentation as they might complex and can create a confusion. Basically, this document is a statement to identify attributes, capabilities, characteristics of a system. This is the foundation for what will be implemented in a system.
Design documentation is also referred to as software architecture description, it either analyses software architectures or communicates the results of the latter (work product). These documents do not describe how to program a particular routine, or even why that particular routine exists in the form that it does, but instead merely lays out the general requirements that would motivate the existence of such a routine. It may suggest approaches for lower level design, but leave the actual exploration trade studies to other documents. It mainly deals with technical issues including online marketing and SEO services but it also covers non-technical issues in order to provide guidance to system developers, maintenance technicians and others involved in the development or use of architecture including end users. Architecture documentation is usually arranged into architectural models which in turn may be organised into different views, each of which deals with specific issues.
C. Technical Documentation
Technical documentation is a very important part of software documentation and many programmers use both terms interchangeably despite the fact that technical documentation is only one of several types of software documentation. It describes codes but it also addresses algorithms, interfaces and other technical aspects of software development and application. Technical documentation is usually created by the programmers with the aid of auto-generating tools.
It is usually arranged in a book-style and typically also features table of contents, index and of course, the body which can be arranged in different ways, depending on whom the software is intended for. For example, if the software is intended for beginners, it usually uses a tutorial approach and guides the user step-by-step. Software manuals which are intended for intermediate users, on the other hand, are typically arranged thematically, while manuals for advanced users follow reference style. Unlike code documents, user documents simply describe how a program is used.
E. Marketing Documentation
This documentation is helpful for the applications that require promotional supplement to stimulate the users to know and study more about the output. Basically, this is used to instil a desire to learn about the product, informing a user about what exactly the product do, the comparison between the products.
Once knowing the types, we should also be aware of why it is important to have documentation. See some of the importance mentioned below:
- The presence of documentation helps keep track of all aspects of an application and it improves the quality of a software product.
- Its main focuses are development, maintenance and knowledge transfer to other developers and users.
- Successful documentation will make information easily accessible, provide a limited number of user entry points, help new users learn quickly, simplify the product and help cut support costs.
- Software documentation is written text or illustration, either explains how it operates or how to use it and may different things to people in different roles.
- The document is important in the life of any software.
Revision/Version Control System
A Revision/version control system is a cache memory of files, often the files for the source code of computer programs, with monitored access. Every change made to the source is tracked, along with who made the change, why they made it, and references to problems fixed, or enhancements introduced, by the change.
Version control systems are essential for any form of distributed or collaborative development. It can also serve as a mechanism for due diligence for software projects. Changes are usually identified by a number or letter code, termed the "revision number", "revision level", or simply "revision". For example, an initial set of files is "revision 1". When the first change is made, the resulting set is "revision 2", and so on. Revisions can be compared, restored, and Merged with some types of files and programmes. Software tools for revision control are essential for the organisation of multi-developer projects.
Tools for Revision/Version Control System
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. https://www.github.com/, https://www.bitbucket.org/ is supported git version system to manage software online.
Bazaar helps you track project history over time whether you're a single developer, a co-located team or a community of developers scattered across the world. https://launchpad.net/ is supported bazaar version system to manage code online as well as offline.
It is developed by Microsoft. It is oriented towards small software development projects. SourceSafe creates a virtual library of computer files. While most commonly used for source code, SourceSafe can handle any type of file in its database.
So that's all folks for this topic. I am preparing for SETU’17! Are You?! See you there! Till then Dream big, Think Big!
Chief Technical Officer