Free Online Articles Directory
18.11.2008 Sign In Register Hello Guest
Email:
Password:
Remember Me 
forgot your password?


The OSD Development Process

Author: Tlahui Calva Author Ranking Blue | Posted: 04-08-2008 | Comments: 0 | Views: 2 | Rating:  (50) Article Popularity - Green (?) Got a Question? Ask.
Sign Up Now!

- 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.

    • It could also be because of the means of communication restricting the message. Usually in the offshore development setting, most.
    • Communication is restricted to emails, IM and phone conversations instead of the richer, and more interactive face-to-face communications.

    • 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.

    • It could also be because the offshore development team has inferior domain knowledge than an internal development team.

    • 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

Rate this Article: Current: 0 / 5 stars - 0 vote(s).

Article Source: http://www.articlesbase.com/programming-articles/the-osd-development-process-509272.html

Print this Article Print article   Email to a Friend Send to friend   Publish this Article on your Website Publish this Article   Send Author Feedback Author feedback  
About the Author:

Find IT">http://www.blueballgroup.com/html/outsourcing.html\">IT programmers and more useful information about software partner program on Information technology.

Submitting articles has become one of the most popular means to drive traffic to your website and promote yourself and your business. Join us today - It's Free!

Article Comments

Comment on this article Comment on this article
Your Name
Your Email:
Comment Body
Enter Validation Code: Captcha


Related Articles

How to Choose the Best Software Development Company
By: Daniel Jowssey | 29/08/2008 | Programming
Are you interested in finding a software development company? Have you constantly tried to locate an expert in software development and none of the existing companies seem to measure up to your expectations? If your answer to either of these two questions is affirmative, then perhaps you might be interested in reading more on the subject. In this article, you can discover plenty of tips on choosing the right software development company and what should you expect.

Microsoft Making Moves in the Desktop Virtualization Space
By: John Whaley | 28/05/2008 | Software
Microsoft announced today some pretty aggressive moves in the desktop virtualization space. First, they announced their acquisition of Calista Technologies, which optimizes the remote display protocol used in hosted and other VDI-like solutions. Technology like Calista’s, along with their alliance with Citrix, are important to VDI-like solutions to give end-users an acceptable user experience, especially with interactive or multimedia-rich applications.

Pointers to Designing a Successful Website
By: Sarika Kabra | 17/03/2008 | Web Design
There are many things to be considered when designing a web site. This article will provide you the chief aspects of creating a website that attracts heavy traffic that converts.

Will Your Website Pull Its Own Weight?
By: Nathan Lyle | 05/11/2008 | Small Business
If you're a small business or organization, your website should accomplish a specific goal. Take the time to think about what you'd like to see happen in your business, then think about how you might use the Web to get there. Talk to your design professional about the possibilities.

Sourcing Superstars: Pramod Bhasin, Genpact
By: Jamie Liddell | 06/10/2008 | Outsourcing
Genpact's President and CEO Pramod Bhasin - formerly the India head of GE Capital - is one of the most influential figures in the BPO industry and a driving force behind both Genpact's rapid expansion and the development of the BPO sector in India. We caught up with him to get his views on the state of the industry and Genpact's plans for the future - and heard some extremely forthright opinions of India's educational system and infrastructure into the bargain...

Attention Authors and Writers: Looking for Article Sites?
By: Kathy Steinemann | 23/06/2007 | Article Marketing
There are thousands of article directories on the Internet, but how do you find them? Which ones are the best? Which sites should you avoid? This article contains some important tips and advice. Don't write another article until you read it!

The Web 2.0 Effect: the Characteristics of a Web2.0 Website
By: M.Markell | 05/02/2007 | Networks
The term web2.0 was originally presented by O'Reilly Media (A well known media company publishing books and websites on various computer technology topics). It's a term that refers to a new generation of websites (social networking websites, wiki-based websites etc). These websites take advantage of web application technologies and give web users the ability to collaborate and share their experiences, views, opinions and interests while they surf the web.

7 Simple Rules of Creating a Text for a Web Site
By: Maxim Baryshev | 11/08/2006 | Programming
One of the Internet gurus – Jacob Nielsen - in his book says that “the objective of visiting a site is to get some certain information”. The problem is that there are lots and lots of information and sites containing this information in the Internet. And sometimes it is really difficult to find the very information you need.

Got a Question? Ask.

Ask the community a question about this article:

Frequently Asked Questions

Joe's Dilema
By: Staci | 25-10-2008
Why is Joe so scared since he would actually benefit under Obama's tax plan? Fox should analyze Joe's body languange when he approached Obama. You could tell he didn't like him and hoped to make him look bad with his question. 

My friend bought a test management system just ...
By: nelson | 25-10-2008
My friend bought a test management system just recently after comparing a lot of products. But its performance was not quite up to the mark. Please suggest a good one that is worth the money.

I have Comcast Cable internet service, can I use ...
By: Buzz | 24-10-2008
I have Comcast Cable internet service, can I use MSN Premium with it, and where do I get it?

What is pc software
By: kmcgrew | 23-10-2008
what is pc software

What Kind of plan is this?
By: jshuodo | 23-10-2008
What Kind of plan is this?

What is meant by content for Inspiration softawre
By: tharbour | 23-10-2008
what is meant by content of a software program? I am doing a concept map of Inspiration and one link is content.  What should I include?

Q&A Powered by:
Powered by Yedda 

Latest Programming Articles

Cool Desktop Wallpapers
By: Danny | 18/11/2008
Cool desktop wallpaper is accomplishments arrangement that displayed in the computer operating system. The wallpapers usually be acclimated in JPEG, BMP and GIF book formats. That wallpaper can be acclimated with Microsoft Windows, Linux and Macintosh Mac OS. Each adviser can be altered requirements, alike admitting wallpaper images advised for accepted monitors can be scaled up or bottomward to the fit size. Those are accessible on the internet for free. Some categories of wallpapers are a

Tips for Buying Software Online
By: Daniel Jowssey | 17/11/2008
Buying software online not only helps save the planet, it also has other benefits, including: * Ease and Simplicity. You can purchase software in your underwear at 4am if you really want to. Shopping online doesn’t have to be done within regular business hours, nor do you need to look your best to do it. It’s also easy to shop around for the best prices and takes less time than driving to the shops.

Mvc Design Pattern
By: TuVinhSoft .,JSC | 14/11/2008
Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (View) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface.

Advantages of Low Cost Contract Programmers in Freelance Programming
By: Joanna Gadel | 12/11/2008
It observed that web industry is getting tougher thus the necessity of freelance contract programmer is required for developing more effective website with flexible features. This article states the fruitful advantages of freelance programmers in contract programming.

A Guide to Cnc Kits
By: Martin Applebaum | 09/11/2008
CNC kits are a way in which to construct your CNC machine. This article will provide some information on these machines.

A Guide to Cnc Tube Bending Machines
By: Martin Applebaum | 08/11/2008
Are you familiar with a CNC tube bending machine? This article will shed some light on the main function and components of this machine.

Ways to Hire Dedicated Php Programmers
By: Jucick | 08/11/2008
It’s not at all easy to hire dedicated PHP programmers unless you know where and how to find them. Whether you need to fix, update or enhance your website you naturally want the job done quick and right.

Top 4 Reasons Why Addressing Web Accessibility is Important
By: Matt Cave | 05/11/2008
There are very high chances that web accessibility is more important to the performance of your web site than you realize. Article takes a look at the top 4 reasons why it would be important to address the issue of web accessibility.

More from Tlahui Calva

Outsource Vietnam - the Emerging Software Outsourcing Destination
By: Tlahui Calva | 15/07/2008 | Programming
Outsource to Vietnam? Offshore development includes software, web design, website, application testing and more. Outsourcing software development is the driving economic force of many emerging countries. India and China are well recognized as the industry leaders for outsourcing software development.

Choosing the Right Lamp
By: Tlahui Calva | 12/07/2008 | Interior Design
If chosen carefully, a lamp can make a place look really special. It can significantly enhance the beauty and overall appeal of an area. These are the points that you must keep in mind while choosing a lamp:

Experience With Home Decoration
By: Tlahui Calva | 10/07/2008 | Interior Design
Decorating your home can be a very personal and creative experience with the great decorating ideas found in the Better Homes and Gardens Decorating Gallery. Find hundreds of decorating ideas, design lessons, decorating projects, and much more!

Blueball Company, Ltd - Advantage of Offshore Outsourcing
By: Tlahui Calva | 09/07/2008 | Software
Two and a half years ago, plagued with unfulfilled working requests from Thailand and abroad, our management team decided it was time to find a way to resolve our lack of resources. Great programmers were the exception, not the norm, and their command of English language was rather deficient. Our eyes looked east and the rest is history: Vietnam became our second branch in South East Asia after Bangkok.

Article Categories





Give Feedback

Sign up for our email newsletter

Receive updates, enter your email below