Author Login | Popular Articles | RSS Feeds | Sitemap

Home | Computers-and-technology | Software


The OSD Development Process

By: Tlahui Calva

- a justification for doing it right the first time.
1. Executive Summary
Change is the only constant in life.
Change defines the complex and challenging undertakings of software development. Even the 'soft' in software presents the misguided impression that software can be and should be easily changed. This is a reality that all project managers, team leaders, developers, clients and users must be aware of and learn to live with. This reality is especially more prevalent in offshore software development where the added challenges presented by geographic distances, cultural differences, language barriers, and domain knowledge deficits between clients and software developer makes communicating changes even harder, and more frequent. Without being accommodating change or controlling it successfully, offshore development projects will most likely run late and over budget.
Refactoring is one technique that can be used to accommodate and manage change in offshore development projects. Refactoring helps to maintain the quality of software in the face of changing requirements. It is a disciplined way of restructuring source code without changing the external behavior of the software. In short, it is about cleaning code, in a way which does not introduce bugs, but improves the changeability, maintainability, and understandability of source code.

Although Refactoring is a widely known discipline, it is not widely used. The impetus is due to the business pressures on project managers, CIOs and other high level technical managers. They believe that Refactoring wastes valuable time and resources, where in fact it actually is time-saving and cost-saving. Most developers understand the benefits of Refactoring, as they know that it makes their programming tasks much easier, but they don't Refactor because they are not given the time and encouragement by their project managers, team leaders or even clients to Refactor.
High-level technical managers must account for Refactoring in their effort estimates. In fact, they must go further than that and encourage and demand that Refactoring be the technique that should be used by developers to continuously improve the quality of their work. No longer must the development management team view that the developer's job is to just add 'new features' to the software. Using Refactoring, the software code will see many benefits, which will ultimately lead to shorter development cycles, lower costs and improved ROI in offshore development projects.
2. The Moving Target Problem
According to research by the Gartner IT consulting firm , the failure rate for offshore projects is about 50 percent. In another study, only 33 percent received a satisfaction rating. This generally poor performance manifests itself in projects being:
- Delivered late
- Over-budget
- Unsatisfied user's requirements and expectations
- Software of low-quality
- Software difficult to maintain
Although poor results are not unique to outsource projects, they are prevalent because of the challenges that outsource projects presents. Geographic dislocation, cultural differences, language barriers, and domain knowledge deficits between clients and software developer are just some of the causes of problems which when not managed and controlled appropriately will lead to these project failures.
One of the primary causes of these failures is constantly changing requirements. Also known as the 'moving target' problem, changes in what is expected of the software while it is in development causes projects to run late and over time. If not managed and controlled in a disciplined way, and especially if under time pressures, developers and managers will adopt the management's push to"just get the job done". This inevitably leads to decay in the software quality and results in the software being difficult to maintain.
Why do requirements constantly change?. There are a number of factors that can cause changes in the requirements of software.
- Users don't know what they really want: Users don't know what they really want until they have the product in front of them and can pick out things that don't work for them and what things that do work for them.
- Offshore development teams don't know what the users want. What the user wants is sometimes not effectively communicated to the offshore development team. Many factors can be the cause of this.
o It could be because of language barriers and cultural differences that can lead to misunderstandings.
o It could also be because of the means of communication restricting the message. Usually in the offshore development setting, most.

o Communication is restricted to emails, IM and phone conversations instead of the richer, and more interactive face-to-face communications.
o Also, because of time differences, there are sometimes delays in getting messages across and the lost in immediacy can loose some of the intentions of the messages.
o It could also be because the offshore development team has inferior domain knowledge than an internal development team.
o All these factors can lead to miscommunication and require subsequently more change requests to rectify them.
- Software is perceived as 'soft': Users and clients perceive software to be easily modifiable. They don't give it a second thought to ask a software engineer to port an operating system to a new hardware platform, but would be more hesitant to ask a bridge engineer to relocate a bridge down the river.
- The regulatory and business environment changes: Changes in the regulatory and business environment can require changes to the features of software. A new tax law or changes in your business structure are examples that could affect your accounting software.
- Hardware changes: Changes to the hardware platform on which the software is executed will definitely invoke changes to your software.
- Staff turn over: When there is a change in people on the development team, this will affect the software in development as old staff will take with them some knowledge of how the system works and new staff will initially put their 'dirty hands' on the code.
- Good software will require change: A good software system will be in use for much longer than a failed system and it will inevitably evolve with time.

3. Refactoring to the Rescue
One effective solution gaining widespread recognition to effectively manage and control ever-changing requirements in offshore development projects is to use Refactoring in an Agile development process.
Refactoring is a disciplined way of restructuring source code without changing the external behavior of the software and generally results in improved code quality.
Refactoring uses small steps in changing code so to minimize the introduction of bugs while restructuring the code. The changes can result in small changes, such as the renaming of a method, to larger changes, such as the separation of domain code from presentation code. Essentially, Refactoring seeks to clean code by removing duplicate code, breaking-up long methods and classes, isolating changes to one area, removing dependencies in code and even removing the necessity for large comments.
Refactoring aims to achieve the following benefits:
- To make code more maintainable: Most projects spend the longest amount of time and effort in the maintenance phase of the software lifecycle. This is especially true with hastily built projects which end up with many bugs and unsatisfied requirements. The challenge in making code easier and cheaper to maintain is a central issue for the life cost of an application. Refactoring allows developers to restructure code so that changes, additions and deletions can be made with ease.
- To reduce bugs in code: By making code more readable and maintainable, Refactoring helps to find bugs and eliminate bugs more readily.
- To improve the software design: Without Refactoring, the design of a software application will decay. As the code is changed in an ad-hoc fashion, the code loses its structure and it becomes harder to see the design from the code. As the design becomes less visible, further changes will destroy the design even more. Refactoring allows developers to combat software decay, by restructuring code to reflect a better design.
- To speed up the development process: Refactoring may seem as housekeeping work, adding more overhead to the main goal of adding new functionality to software. This is a shortsighted view. By making maintenance simpler and reducing bugs in the system, Refactoring reduces cost and effort in the maintenance phase. Since most project's costs and time is spent in the maintenance phase, this results in achieving more savings in cost and time over the life of the project. In other words it actually improves the overall ROI as well as time to delivery of the software product. This point is arguably the most contentious among managers. Most managers don't see the time savings in using Refactoring. However, a recent controlled experiment conducted by academic researchers support the claim that Refactoring saves time. They observed that regardless of the experience of developers, those who completed changes to a refactorized version did it in less time than those who completed changes on a non-refactorized version.
A particular recent experience we had where Refactoring was a critical factor in the success of a project was in the development of a tourism portal commissioned by a Vietnamese entrepreneur who is also a popular Vietnamese TV personality. Being the dynamic and enthusiastic client that he was, he almost daily had new ideas and requests which he would communicate with us at any time of the day or night. Knowing he wasn't a typical client we have dealt with before, one who was not technically knowledgeable, we prepared our team early on to expect many change requests. Our team practiced, at every opportunity possible, Refactoring to ensure that the system maintained openness and flexibility. This helped to ensure that the project was delivered on time, with all the requests by the client fully satisfied.

4. Conclusion
Change is an inevitable part of life. This is especially true in the life of an offshore developer where geographic disparity is more pronounced and further impacts on the challenges of managing changing user requirements. Refactoring has been proven as a valuable tool in managing and controlling user requirements. It has also been shown to produce the higher quality software that offshore providers need to compete with now that lower operating costs are no longer the only determinant in the decision to engage their services. With Refactoring, offshore software companies can face head on the winds of change and their clients can rest assure they will get the right product, when they want it, at the price they want it.

5. About Orient Software Development Corporation
Orient Software Development Corporation (OSD) specializes in providing state-of-the-art software solutions and services which are cost-effective, of high-quality and exceed our customer expectations. Orient Software is a Vietnam-based company comprised of a workforce of talented, dedicated, and experienced software professionals managed by internationally experienced project managers. Orient Software provides leading-edge, yet practical solutions to its customers with the advantage they seek to succeed over their competition. Our customers are our partners, collaborating with us in the development of solutions that directly add value to their business to drive their ONGOING SUCCESS.

6. Contact Us
Contact:
Ms. Doanh Nguyen: Sales
Email: sales@blueball.com.vn
Sales Representative
International Marketing Department
Blue Ball Co. Ltd.
www.blueballgroup.com
Thailand
252/94 Muang Thai - Phatra Complex
Tower 2, 17th floor, Ratchadapisek Rd.
Huay Kwang, Bangkok, Thailand
Tel: +66 2 6932940
Fax: +66 2 6932941
Vietnam
Quang Trung Software City
Ground Floor, Anna Building
District 12, Ho Chi Minh City
Tel: +84 8 4371032
Fax: +84 8 4371033

Article Source: http://www.articlesnatch.com

About the Author:
Find IT programmers and more useful information about software partner program on Information technology.

| Print | Ezine Ready | |

Recent Software Articles

  • Great Plains eConnect Posting Options overview for Programmer By: Andrew Karasev - Microsoft Dynamics GP is open to ecommerce programmers and web site developers via SDK, named eConnect. eConnect is bound to the rules of Great Plains Dynamics architecture, which require you first to create work document (Sales Order or Sales Invoice, these are likely to be created from ecommerce shopping cart), then you place it to the batch and, yes – you simply wait until this batch is approved by GP user at the back office end.
  • Learn about Article Submission Software By: JATINDERPAL SINGH - Article submission software people always ask if they are really useful in article marketing. To paraphrase that, what online marketers really want to know is whether there truly are merits in using them to submit articles. The truth is there are two schools of thinking about using article submission software. As usual, there are those who do not believe it works while another group can vouch to its effectiveness.
  • Know about Effective Virus Protection Program By: Abhijeetdeep singh - A free scan is available to detect current threats to your system, as well as a free thirty day trial to determine if Ad ware plus is the right anti virus and anti spy ware system for your personal needs. Ad ware Tool is free that is installed with your permission and can be in a form of a small tool that helps you remember all the details for online forms.
  • How an Affiliate Tracking Software Program Works? By: ranjannov - A large number of business owners rely on their affiliate programs to help increase their sales and their profits. If you are interested, you can also be one of those individuals. All online business owners can benefit from the use of an affiliate program, but there are some business owners who can benefit more than others. Those business owners run and operate businesses that either sells a product or a service.
  • Know about Payroll Accounting Management Software By: Manish Gaur - The Payroll Accounting Management Software helps in your management needs relating to PF, EPF, FPF and ESI, etc. it helps you to use your skills in accounting software in a more efficient manner. All your problems are solved just with a click of a mouse; the self explanatory program helps you to use the software easily.
  • Magento version release 1.1.7 By: OSDI Team - Magento, the proven high end open-source ecommerce solution offering unprecedented flexibility and control, the new release covers over 350 issue resolutions with new functionalities. Google Website Optimizer Integration with Magento have been covered in Magento 1.1.7. Website Optimizer is an easy-to-use tool for testing site content that delivers actionable results.
  • Reasons To Choose Field Management Software By: Arvinder10 - But there is no need to despair. If your company is still new and follows few steps here, it can easily compete with any other company confidently and increase its market share. These steps involve reducing expenses by applying simple processes and cutting costs by improving productivity, designing a better way of doing things so as to complete the work in time and also ensuring customer satisfaction.
  • Easily Manage Your Business With Salon Software By: Arvinder10 - Are you a beauty or hair specialist? But worried about managing your business manually as you can’t get anything that can help you for managing your business tribulations and can give you easiest way to manage your business. Yes! Of course this can be a setback for you. But don’t worry salon software is a solution for you. We are here to provide you our salon software.
  • Easy Way to Find Affiliate Tracking Software By: kritika sharma - To make money, many online business owners are making the decision to create their own affiliate program. An affiliate program connects business owners with website publishers, who are often referred to as affiliates. With an affiliate program, an affiliate is compensated each time they use their website to generate a sale for their affiliate partner, the business in question.
  • Choosing Mlm Software Needs! software By: kritika sharma - As with any industry that involves millions of people, multi-level marketing has seen the rise of software developers who target the many people involved in MLM. With the large number of options in MLM software out there already, how do you choose the one that is right for your needs? It's important to not only find the software that best fits your needs, but the right software company as well.

Search Ebay

Still can't find what you are looking for? Search for it!


Submit Your link to the Open Link Directory Project

Copyright 2005-2008 MJE Sales, LLC. All Rights Reserved.
Proud member of the ArticleCkr Search Network Search Network!
ArticleSnatch.com is free for both publishers and authors to use and is supported entirely from advertising revenue.
Use of our service is protected by our Privacy Policy and Terms of Service.