Outsourcing in IT projects: money saver or money waster?

Generally speaking, outsourcing is an arrangement whereby an external contractor enters into a contract with an organization for the provision of goods and services which previously have been provided in-house. Nowadays, in these tighter economic times, more and more companies are turning to outsourcing as a method to reduce and control IT costs. The primary argument in favor of outsourcing is that services can be purchased for less money than it would cost to develop them. Contractors may be able to provide services at a lower cost through the use of greater management and labor productivity, economies of scale, and the use of skills or technology unavailable before.

The benefits…

First, a huge economic advantage of outsourcing is that savings can result from the reduction of IS staff. Often the cost of outsourcing is less than employing specialist staff and sitting them down in a fully equipped office. Training, and retaining IS professionals is a serious challenge for many organizations. Frequently, having invested significantly in IS employees, organisations loose them, because they have been offered higher pay elsewhere. Moreover, it could be the case that some of the skilled IS staff may only be required occasionally. Outsourcing shifts this human resources problem from the organisation to the vendor, which can result in significant cost savings.

Read More…

Risks in large scale IT projects

As always happens, large IT projects are exposed to adverse influences, the so called project risks, which may result in delaying the timely completion of the project, increasing the cost or reducing the final quality of the product. Project risks affect all aspects of a software project: the organization, the personnel, the technology etc. and can prevent the intended benefit of the project being realised. Generally speaking, various types of risks leading to project failure exist.

First, the so-called schedule risks reflect the fact that schedules often slip and the product is not delivered on time. Among the reasons for these risks are wrong time estimation, resources not tracked properly, failure to identify complex functionalities and time required to develop them, unexpected project scope expansions and lack of agreement between customer and developer.

Read More…

Agile vs. Traditional software methodologies for successful government IT procurement

Although many people would not agree with me, I personally think that standalone agile methods would not be as successful as the UK Government think they might be, when applied to public sector organisations. In my opinion, in order to successfully tackle the problem and reduce the risk of project failure, a mixture of agile and traditional software methodologies should be put into practice for a number of reasons.

As always happens, large IS projects are exposed to adverse influences, the so called project risks, which may result in delaying the timely completion of the project, increasing the cost or reducing the final quality of the product. Project risks affect all aspects of a software project: the organization, the personnel, the technology etc. and can prevent the intended benefit of the project being realised.

All these different types of risk at which a complex IS project is exposed to, should be taken into account by public sector organisations. Some of these risks can be successfully reduced or even eliminated by using the right software development methodology and it is up to the UK Government to make a decision between agile and traditional methods, or as I suggest, a mixture of both.

Read More…

A glimpse back in time: an overview of the EDSAC

The Electronic Delay Storage Automatic Calculator (EDSAC) was one of the world’s first full scale electronic computer to implement the stored-program principle which states that both data and program are to be stored in the computer’s main memory and accessed during runtime. It was built by Professor Maurice Wilkes (1913 – 2010) and his team at the Mathematical Laboratory of the University of Cambridge in the United Kingdom. EDSAC, which occupied room five by four meters, did its first calculation on 6 May 1949 when it calculated a table of squares and a list of prime numbers and it was David Wheeler (1927 – 2004) who wrote its very first program. The machine ran until 1958, when it was finally switched off.

A large part of the design of the EDSAC was based upon John von Neumann’s report First Draft of a Report on the EDVAC which contained the first published description of the logical design of a computer using the stored-program concept, known as the “von Neumann architecture”. Few months after reading von Neumann’s report, Wilkies attended a workshop at the University of Pennsylvania’s Moore School of Engineering, where ENIAC (the world’s first general-purpose electronic computer) had been built, and even more advanced computer, the EDVAC, was being constructed. While EDVAC was being constructed by a large team of engineers and its construction consumed large budget, Wilkies had a very modest budget within which to work and only few assistants. However, he was more interested in using an advanced computer to solve real scientific problems rather than becoming an expert computer-maker as such. For all these reasons, Wilkies decided to construct his own scaled-down version of EDVAC, called EDSAC, and to do it as quickly as his limited resources would allow.

Read More…

Call-by-reference vs. Call-by-value in programming

Generally speaking, in computer programming, a parameter is a special kind of variable, used in a function declaration to refer to one of the pieces of data provided as input to that function. These pieces of data, in turn, are called arguments. Therefore, in order to make a clear distinction between them, the argument is the actual value passed to a function, procedure, or method, whereas the parameter is a reference to that value inside the implementation of the function. The act of transmitting parameter values to and/or from a called function is known as “parameter passing”. The way that the arguments are evaluated and passed to the function depends on the programming language and the kind of parameter passing mechanisms it uses. Two very common mechanisms used in many programming languages are call-by-reference and call-by-value.

Read More…

1 2 3  Scroll to top