Subscribe by Email


Showing posts with label Outsourcing. Show all posts
Showing posts with label Outsourcing. Show all posts

Saturday, March 10, 2012

What are different software development problems and what are its solutions?

Today‘s world is growing up in the age of software. The whole world revolves around the computers and the computing is all possible because of effective softwares. The quality of the software systems and applications that we use depends largely up on the quality and efficiency of the software development process.

For producing the quality and efficient softwares, a sound software development process is required. But, today as the technology is advancing, so are the problems associated with it.

In this article we are going to throw some light on the problems that come in the way of software development and also we shall seek some solutions for them.

DIFFERENT SOFTWARE DEVELOPMENT PROBLEMS

- There is a lack of skill in the IT sector and the available expertise is focused more up on the core competencies which include outsource functions that are distasteful and complex though still being important.

- The local software development relates to the global software development.

- A good cooperation is needed among the intra- organizational companies.

- There is a great need of effective outsourcing which includes the availability of global data centres, IT infrastructure and embedded softwares, software applications and maintenance applications.

- Apart from all these there is a big requirement for better application service providers or ASPs.

There are several other problems associated with the software development:

1. Communication Problems
- In today’s world the development of software is not concentrated over a region or area, engineers and experts from all over the world contribute in this.
- Formal communication is needed during the routine, inspections and for formal specifications whereas informal communication is required to describe the informally captured requirements.
- Problems like following occur:
(a) Distinct backgrounds
(b) Time zone difference
(c) Lack of information communication
(d) Distinct backgrounds
(e) Distance

2. Strategic Problems
A lot of problems are faced while designing a strategy for the software development like:
(a) When to start development?
(b) Which task is to be allotted to whom?
(c) How to manage risk at both organizational level and project level.

3. Complexity in Coordination
The members of the software development team often find it difficult to cooperate with each other.

4. Issues related to Diverse Cultures
- Team members are from different cultural backgrounds and this has an affect on their performance, individualism, and attitude towards the work.

- Emotions and attitude towards race, religion and class etc add to these problems.

- The team members should be smart enough to understand each other’s culture and learn to compromise and respect the cultures of each other.

- Some of the measures to overcome cultural issues include reducing the intense collaboration among the team members, reducing the cultural distance by cultural liaison and personnel exchange etc.

5. Physical or Geographical Dispersion
Geographical dispersion of the team members as well as resources which results in an uneven distribution of the vendor support, access to expertise and cause a hindrance in the use of software development practices which need a face to face interaction.

6. Technical Problems
Sharing of the artifact as well as information about the development plan and software becomes quite a difficult job.

7. Management of Knowledge
This is a consequence of lack of communication or poor communication among the team members, lack of proper documentation, repositories and so on.

8. Availability of Open Source Software
- Open source softwares that facilitate the exchange of information and artifact among the developers and provide means for the modification of the code should be made available to all involved in the development process.

- Such open source softwares help in unifying the distributed development process.


Friday, October 7, 2011

The Make/Buy Decision - Decision Trees and Outsourcing

Software engineering managers face the make or buy decision. The make/buy decision is based on following conditions during the final analysis. These conditions include:
- Whether the software product is available sooner than the internally developed software?
- Whether cost acquisition + customization < cost of software development internally?
- Whether outside support cost < internal support cost?

Decision Tree
Suppose X is the decision tree of a software based system. Three cases derive:
- building X from scratch.
- reusing the existing components to construct X.
- buy software from market and make the necessary changes.
- get a vendor and and hand him the software development.

If X is built from scratch, chances are 70% that job is difficult. In a decision tree, different paths are taken and the projected costs for reuse, buy and contract are evaluated. Based on the output, the probability and projected cost is the lowest when we buy the software from the market.

during the decision making process, there are many criteria to be considered and not just the cost. Factors like availability, experience of developer/vendor/contractor, local politics, conformance to requirements and likelihood of change can affect the final decision to build, buy or contract.

Outsourcing
Outsourcing decision is basically a financial one. The way in which the software and systems that we need at lower price is outsourcing. It is a simple concept. All the engineering activities are handed over to the third party who is responsible to complete the work at low cost and most probably good quality.

At strategic level, decision of outsourcing is based on the fact whether a significant portion of all software work can be contracted to others. At tactical level, decision of outsourcing is based on the fact whether a part or all of a project can be accomplished by sub-contracting the software work.

Advantage of outsourcing:
Cost savings are achieved by reducing number of people and facilities that support them.

Disadvantage of outsourcing:
The company loses some control over the software that it needs.


Monday, August 15, 2011

What are the guidelines to be remembered if outsourcing strategy is chosen for web application development?

Web applications are outsourced to vendors who specialize in web development. There are some guidelines to be followed while considering outsourcing strategy for the web development:

PROJECT INITIATION :
Before searching for an outsourcing vendor, some tasks needs to be done :
- Analysis tasks should be performed internally.
- Web application audience are identified.
- Overall goals and objectives are defined.
- A rough design of the web application should be developed internally.
- A rough project schedule including delivery dates, milestones dates should be developed.
- Responsibilities for internal organization and outsourcing vendor is created.
- Degree of interaction and oversight with contracting organization is identified.

SELECTING OUTSOURCING VENDORS :
- Interview clients to determine the vendor's professionalism, ability to meet schedule.
- Determining the name of the vendor's chief web engineer.
- Examine work samples of vendor.

ASSESS THE VALIDITY OF PRICE QUOTES AND RELIABILITY OF ESTIMATES:
- Does the quoted cost provide direct or in direct return on investment.
- doe the vendor providing the quote has the professionalism and experience.

UNDERSTANDING THE DEGREE OF PROJECT MANAGEMENT YOU CAN EXPECT:
- It depends on size, cost and complexity of the web application.
- Plans are developed for mitigating, monitoring and managing risks.
- Quality assurance and change control mechanisms are defined.
- Effective communication between contractor and vendor should be established.

THE DEVELOPMENT SCHEDULE SHOULD BE ASSESSED:
- The development schedule should have a fine granularity.
- Tasks and minor milestones should be scheduled on daily timeline.

MANAGE SCOPE:
- Scope changes as web application project moves forward.
- To manage scope, the work to be performed within an increment is frozen.
- Changes are deployed until the next web application increment.


Facebook activity