Monday, April 25, 2011

Developing Your Own Translation Software

Most companies at a certain stage in their development start looking at their options for implementing Information Technology systems that support their management, production, workflow, and other processes. This scenario applies to virtually any economic sector, and the translation industry is no exception here. Relatively often, a company’s managers are the ones who embark on creating such software on their own, confident that it is the most flexible and cost effective solution. Actually, they cannot be more wrong.

I decided to write this short article after many hours of conversations with managers and owners of translation agencies. Many were mesmerised by the vision of developing software that ideally suits their workflow processes and addresses all of their company’s needs. Moreover, the people I talked to were positive that creating your own system would be markedly cheaper than buying it, and that it could keep their company independent of third party suppliers. Admittedly, the prospects of an ideal and cheap solution are tempting, but are they achievable? Let us have a look now at a few aspects that need to be considered prior to embarking on any software development work.

Planning
The decision that is to be made on whether to create your own software should be preceded by a thorough analysis, e.g. for identifying the costs and stages of the process. The first and most crucial requirement is to develop very detailed documentation with lists of all the required solutions, functionalities, scoping for the system, etc. This exhaustive specification is the basis for the subsequent work that is to be performed by the programming team. It is also the reference for technology choices, user interface layout design, and workflow processes. Importantly, the specification should not be an outline of just a few pages, with vaguely formulated requirements. It should total more than 100 pages of detailed descriptions of all the components and methods for carrying out the subsequent workflow stages. Roughly speaking, the specification development work takes a few to several weeks.

The next thing to consider is who will run the project and be the interface between the client and the project team. The role of the designated person, who is to be the project manager, is to translate the initial vision into a structured system, and then into a set of components that are gradually carried out by the team. It should also be remembered that IT professionals use a highly specialised lingo and, therefore, the project manager also needs to translate requirements and functionalities that are agreed upon with the system concept owner into IT speak, which can be understood by those who are involved in writing the software code.

Technology
The next step in the project is the choice of technology. We should now start looking for an expert, usually charging high rates, who is experienced in the solutions available in the market. This person should, in line with the formulated needs and expectations, propose a technology that is not only good for the specific point in time, but one that also enables free development and software modifications in the future. Here, we should consider how the company’s expectations might evolve over time, whether the environment and market requirements are likely to change, and whether modifications or extensions are likely to be needed in the future. Mistakes in the technology selection stage may thwart the company later on in the project, and involve additional costs.

Programming team
Now we can move on to building a team of programmers. We need experts who have hands-on experience in the selected technology and can reliably carry out the subsequent stages of the project. It may not appear so, but this stage is quite difficult and risky. Just as in any other domain, the risk always exists that we may recruit people who do not meet our expectations. We need to be aware that although many may declare that they can do the job, they may in fact lack in the necessary experience and skills. The consequences of poor recruitment are dire for the company in the first place. Therefore, we need to come up with an effective method of candidate review and accept the costs involved along with the time needed to build a good and creative team.

Development process
When we have the necessary human resources in place, we can then proceed to the project delivery, which is the practical details of "code writing". The time needed for this stage depends on the level of complexity of the system that we are designing and the size of the programming team. We can expect, for the software that is used to manage translation departments and agencies, the period to be from a few to several months. This is also the period for the hours of consultations, fine-tuning of individual matters addressed by the initial specification, and searching for optimum solutions to problems as they emerge. Clearly, the more extensive and accurate the initial specification, the less time that should need to be spent on interaction with the project manager.

Testing
After several months of work, when the system is becoming fully formed, we can embark on the testing task. The new product is uploaded on test servers and its operation is simulated so that all the functionalities are within the tested scope. These tests are usually run at both the programming and user levels, so that they require the full commitment of the company’s staff. The testing is usually a painstaking and time-consuming process, and it may even interfere with the usual operations of the company. Still, we need to remember that the more accurate and meticulous we are at this stage, the easier and smoother the final go live will be.
The output of the testing work is a detailed list of components that require improvements. The product comes back to the programmers, where all the bugs are removed, and the expected changes implemented. This is how the next version of the software is developed, and the process is again followed by the same testing procedure. After a few such cycles have been repeated, we finally arrive at the system that makes the client happy and moves us to another stage, namely implementation and staff training.

Technical support
Finally, there are two aspects to be taken care of here: technical support and ongoing assistance to the staff, as well as the expansion of the system and the addition of new functions and capabilities that are deemed necessary as the work and company development progresses. This means that, after the system is implemented and all the work appears to be over, we still need to maintain a team that will solve the current problems as well as improve and further develop the software. The project becomes a continuous process, rather than a one-off effort.

In a nutshell, this is what the production of an office management system involves. Is it scary enough? Obviously, when approving a project of this magnitude, we should consider that both the costs and time needed to develop and implement the system are from a few to several times the time and cost of purchasing a ready-made solution. The company must increase its staff head count, be committed in terms of resources and time, and provide the conceptual input in the subsequent stages of work so that in some undetermined future (a year or two) it can use its own, not necessarily perfect, product. Above all, it should be remembered that the decision as to whether to create one's own system primarily involves risks, e.g. that the resources and funding for completing the project run out, and that the final product is quite different from what we first conceived.

--------------------------------------------------------------
About the author: Andrzej is a co-owner and managing director of LIDO-LANG Technical Translations of Krakow, Poland. One of the inspirers and authors of the translation company management system (XTRFTM Translation Management Systems – http://www.xtrf.eu/.)


Source: http://www.translatorscafe.com/

No comments:

Post a Comment