Archive for October, 2008

Canada Gets Top Rating for Outsourcing

Monday, October 27th, 2008

On-shore Versus Offshore Outsourcing – Canada’s on the Ball with Top Rating – Better than India

By Paul Gasparro

ZDNet’s Larry Digman covered a report on October 16th rating countries around the globe for off-shore outsourcing. The rating was based on a series of 10 metrics ranging from Language skills and Labor Pool, to Cultural Compatibility and IP Security. Canada was overall far and above any other location, including India. The only two areas that Canada did not rate Very Good or Excellent was Government Support and Cost.

In the case of Government Support, I do not believe that Gartner understands the depth and breadth of Canada’s Scientific Research and Experimental Development (SR&ED) program. This program provides cash and tax incentives for the development of intellectual property (IP) in Canada.

I believe, particularly with the improvements in size of the grants, and administration of the claims, that the SR&ED program is very good. Certainly it could be improved, but it does serve to encourage the development of IP, and hence serves to provide an incentive for companies like MapleWorks to do outsourcing development work in Canada.

As far as cost, you get what you pay for. Doing nearshore outsourcing development in Canada means doing it once, not two or three times. Even if the cost of labor is higher (yet significantly lower than the U.S.), the efficiency and effectiveness of the development team means net cost is lower. In addition to improved development efficiency, the labor pool is very experienced and does not require extensive management by the home team. So overhead is reduced.

It is worth looking at the Gartner charts and drawing your own conclusions. I believe you will reach the same one that I share. Canada trumps all for your next outsourcing project, and MapleWorks trumps all in North America as the choice for your next outsourced network communications project. Contact us and let’s discuss your plans.

(Paul Gasparro is Co-founder and Vice President of Business Development for MapleWorks – the smart choice for on-shore software development.)

Music, Musicians and Software Development

Thursday, October 23rd, 2008

By David Zinman

Software programming can be a solitary or collaborative effort. Similarly, so is creating music. The idea for both can be a singular endeavor, but it most often takes a combined effort to reach the finish. This similarity is described in the book by Andrew Johnston and Chris S. Johnson Extreme Programming: A More Musical Approach to Software Development? where they hypothesize on the resemblance between musical and software development environments:

The characterization of software development as a craft rather than an engineering discipline has been proposed recently and it is felt that by considering the similarities and differences between the working and learning environments of musicians and developers that some further weight can be given to calls for a more collaborative approach to software development.

The debate that writing software code is an art has been around almost since coders have existed. I would not go so far as to say anything I have coded is “artistic” but some of the novel ideas that come from very focused coding fit with the idea of creating a piece of music.

Music is the organization of sounds with some degree of rhythm, melody, and harmony. I would argue that harmony should not be included in this definition since even a single voice is considered music where no harmony is present.

But the important idea in this definition is organization: it is the idea of organization and patterns that is common to both music and software. Design patterns are now an integral part of software development. A design pattern is a general reusable solution to a commonly occurring problem in software design. The most famous pattern in music is probably the opening sequence of Beethoven’s Fifth Symphony (G G G E-flat). Beethoven repeats this pattern several times in the movement in several variations. Once we understand the pattern of a particular piece, be it coded or musical, we are well on our way to a solution.

Jonathon Kohl explains the tension/resolution that makes up music is applicable in software testing. I would go further and say that it also applies to software coding. There is the intangible feeling of tension when an algorithm is in development, and the feeling of relief upon its successful resolution. For a great example of tension/resolution in music listen to Lenny Kravitz’ Mr. Cabdriver.

I would like to think that we should not be so pragmatic as to look at software development as being”solving a problem in order to start creating.”

It doesn’t really matter though because when I am done I put on the headphones and crank some Zeppelin. Anybody want to jam?