Crossing the divide – the move to open source

Last year brought many changes to our team – and not all of these changes have been of a positive nature. Nevertheless there were positive outcomes, not the least of which has been changing our development platform of choice away from Microsoft technology.

Let me provide some background. The majority of our team members, both in South Africa and Brazil, had been Microsoft .Net developers at some point in their careers, and some had never been anything else. We used to hire people based – in part – on their expertise with Microsoft development tools.

As a business unit, SWAT comes into contact with a large number of organisations from around the globe that are members of the MIH group. In our interaction with these companies we were experiencing a great deal of resistance to implementing Microsoft software.

The reasons for this resistance were varied but often based on cost – both the cost of the software and the cost of the people who are skilled in the use of Microsoft tools. Cost was not the only consideration – the general perception out there is that the Web is built on open source software, and that open source is where the best developers want to place their efforts and build their reputations.

It was very clear that we had to cross the great divide if we wanted to stay relevant in the markets where the group operates.

Although we had never been a pure Microsoft shop – we used Flash technologies, Javascript , CSS and their kin, as well as various tools for mobile development – our core development tools were Microsoft Visual Studio, using C# with .Net and ASP.Net, and the challenge was to change our primary development platform.

Our greatest concern was what the reaction of the team members would be – I mentioned earlier that the majority of people in the team at that time were skilled in Microsoft technology, and we were worried that the re-skilling that would be required would present us with a very steep (and costly) learning curve. A further concern was that the changeover may cause people to leave the team, rather than lose the skills they have already acquired in Microsoft technologies.

Once the decision had been made to shift our focus to open source development, we had to choose a platform. The obvious choice was PHP 5.0. “Obvious” because of the wide popularity of the language within the group, the wide support for PHP and the vibrant PHP community. An additional consideration was that PHP is fairly similar to C#, in terms of syntax and in terms of being a “traditional” object oriented language. Although we considered options such as Ruby, we concluded that PHP would represents the best option for migrating to open source.

It has been more or less a year since we finally phased out Microsoft tools, and here’s the summary of our experience:

  • Great programmers do not care about the language. We lost no-one because they wanted to work only on Microsoft platforms.
  • The web IS built with open source tools – and using open source tools gave us a wider audience.
  • Costs for software development tools have plummeted to virtually zero.
  • The Microsoft Visual Studio IDE is one of the best (if not the best) development environments available.
  • If you are going to use open source, you must be willing to change and adapt all the time. Frameworks, tools and methodologies are continuously changing in the open source world – forget about well-planned migration routes for technology. Be pragmatic, and use what works. We still use Microsoft tools when our clients require it.
  • Because it is open source, it is possible to look into the code to find why things do not work as expected. Often it is very hard to find the solution, and there is hardly ever a helpdesk which you can call. But you can look if you want – the option is there.
  • Microsoft is not bad. In our experience it is simply a matter of choosing the most appropriate tool for the job, and the Microsoft tools are more suited for enterprise development. Although of course the platform CAN be used for web development.

In summary – the decision to go open source was the best decision for our team, and I would encourage every team that does web development to do the same thing.

Related Posts

  1. Open Space – A New Way Of Conferencing
  2. Microsoft Web Developer Summit 2009
  3. My Journey to planet Android
  4. Good software modularity. What exactly is it?

Categories: Development  |  Tags: , , , ,

Jacques van Niekerk

CEO @ MIH SWAT, CTO @ MIH Internet

As head of the most talented group of technologists in Naspers, and CTO of the world's most interesting media company - I work in my dream job. 20 years as a technologist, complemented by post graduate qualifications in econometrics and knowledge management. My interests are focused on technology and future research. I read, a lot. Travel, good food and gadgets make me happy.
  • http://afrigator.com Justin Hartman

    Nice move and a great language. We used PHP5 and later introduced Python solely because it cost us nothing to do so. Couple that with the fact that our team (as small as it is) only develop in PHP it has been a successful formula for us.

    I like your point about being flexible in an open source environment. We’ve changed frameworks 3 times since we launched Afrigator and we’ve done so based on decisions about what we needed to grow the site further. It’s really critical that you can do so – and quickly.

    Because a lot of our backend stuff is now done through Python we can redo frameworks in a couple days and this formula is great for scalability as we don’t rely on frameworks to do the difficult stuff.

  • http://phpslacker.com phpslacker

    something can also be said for switching from a system language (c/java) to a dynamic language (php/python/ruby)

    the type of overnight re-engineering that Justin refers to could only b done with a dynamic language. Since dynamic languages offer many times more machine code instructions per line than system languages. You really are more productive. Also there’s no waiting for compilation. Deployment is also dead simple

    The web requires you to be quick, agile and gritty. Away with bloat!

    http://www.tcl.tk/doc/scripting.html

    Right tool for the job is all I’m saying :-)

  • http://stii.co.za Stii

    I’m not sure I fully agree that PHP is fairly similar to C#. Nor that it was a “traditional” OOP language (although I’m not sure what you mean by that). Prior to PHP5 the OOP functionality of PHP was, well, flimsy-ish IMHO. I was a fulltime C# .NET dev about 5 years ago (back in the .NET 2.0 days) and always found Java is prolly the closest to C#. C/C++ is closer to PHP than what C# is. Of dynamic languages I’d say syntactically Python or Ruby is a little closer to C# than PHP.

    All that being said, deployment in PHP is by far easiest. As you noted, it is a great community and help is always at hand. I’m not really very monogamous when it comes to languages. What I do love about dynamic languages is that it is agile as hell!

    I have to agree. Visual Studio is awesome, but be careful… It makes one so used to its debugging and code insight that jumping back to plain text editing a couple of years later is frustrating! (got THAT tshirt!)

    @phpslacker Tcl/Tk was one of the very first scripting languages I played with!

blog comments powered by Disqus