The Changing Nature of Software Development ...

The Changing Nature of Software Development ...

If you belong to the world of Modern Software Development – working on modern technologies, programming languages and emerging areas – you would have noticed that Open Source is getting very popular. The software world is rapidly moving towards accepting open source and away from treating it as a foster child. Open Source is like the new Maverick of Software Developers around the world. There are reasons why Open Source is slowly taking over and there is a lot we can learn from it.

Why Open Source:

Most of the Open Source projects start with a specific requirement that was not met by any commercial/available software at that time. In case of Linux – Linus Torvalds was frustrated with MINIX licensing (it was only for Educational Institutions) and thus started Linux. In case of Huginn (a tool I recently used) the owner wanted a IFTTT like tool but with the visibility of who has the data and preferably not in the cloud and thus Huginn was born …

The other things going on for the open Source Movement is the bottoms up work. Anyone can start a project and anyone can contribute to one if they want to. You do not need take permission of your boss to start or to contribute to one – assuming you are not giving away your company’s IP. I am sure at some point in time you have come across some ideas that you want your company to sponsor and it doesn’t work out.


Agile:

Agile methodology is the NEW way of software development. It is different from the traditional waterfall method in that it asks to take your product to the customers ASAP in a Minimal Viable Product (MVP). It also suggests that the people (Software Developers) know what is good for the software and they can choose what they need to work on. It also says that everyone can provide feedbacks to the backlog – the list of things that needs to be built. If you look at Open Source (in the bigger picture) you will see that all three principles of Agile are present in the Open Source Development. Open Source allows anyone to add in features they think are needed – there is a decision by the owner but the owner doesn’t drive everything. It is inherently by its nature always in front of the customer (you and me). Open Source uses the Internet as its own, flexible, very infinite and very personalized office space. This office space is also responsible of Open Source being so productive. There are a lot of studies that show that traditional Office spaces and its limitations (cubes, office timings, meetings, …) – are all anything but counter-productive (http://www.newyorker.com/business/currency/the-open-office-trap). As compared to the alternative – where the team uses the collaboration over the Internet and then go back to being productive in their own comfortable, personal environment.


Why Open Source is successful:

In general it is widely accepted fact that if you love your job you will do your best and the results will be great. That is what Open Source is all about. People who want to join the community, join and help. There is no monetary rewards but people work and contribute because they like and love to.

Open Source employs the whole population of Software Developers to work on the projects they like. And thus by its nature it has the best of the talent and the most motivated people working on it. The results are amazing. Look at the best Web Server – Apache. It was started by two people who thought the web is very interesting and needs a web server. They decided to make it open and not control it – as compared to Microsoft and its IIS. Who won? Similarly Yahoo had employed specific people to look into the web and maintain directories vs Google used the power of the users to discover the internet and used them to rank the sites. Who won?
The key is to decentralize authority and to employ people from the bigger population who love to work on the project vs hiring specific people and limiting the project to them.


Reliability/Security/Performance:

Open Source software is more secure/reliable because it is open source. Anyone can find issues and everyone can help fix it. There is lot of research done (http://www.dwheeler.com/oss_fs_why.html#reliability). All point to the fact that Open Source is better than most commercial or at worst very acceptable.
As already mentioned in the Web Server world Apache is the defcto standard. In the Web Browser world again Firefox/Mozilla are very popular. In the Operating Systems world (Mobile/Desktop/Server) Android and Linux are equally popular as compared to the commercial Operating System.

By definition Open Source goes thru more scrutiny and more testing – since it is open. Anyone can use it, test it and provide feedback. At the same time anyone can help improve it and fix the issues. And if it passes all of it – it becomes widely accepted and used.

Modern Programming Languages:

If you look at newer programming languages like Python, Ruby, PHP, … all are open source and come with lots of tools and libraries that make up the plumbing. They all have IDES that are open source/community editions. The community support (never ending list of libraries) are really amazing. They are like the apps for smart phones – without it the smart phone isn’t that smart.


Pay it Forward:

The rich set of tools and software available in the Open Source – helps other software developers to be more productive and get up and running fast. This creates a productive loop or pay it forward attitude. With people using open source for their project and eventually donate back to the community when they have a chance. In fact GPL can be seen as a legal implementation of ‘Pay it Forward’


The App Economy:

Today it is all about Apps – it’s the layer above the Operating System and its sticky requirements. Customers want an app for the their requirement and they don’t care or understand the difference b/w Windows/Mac/iOS/Android. A good example of it is OneNote. It has an app for all OS (desktop/Mobile) and it is web enabled as well. In all its forms it has the same interface and it is cloud-based. So you can use it anywhere on any platform.
Open Source helps a big way in this App Economy … Open Source enables collaboration – across people of working for different companies in different continents. It provides the app builders the underlying plumbing and the core architectural components that are needed to build the app. Take Python as an example – to build a business app using it is much easy as compared to a traditional programming language. There are innumerable libraries available that help you to connect to cloud, connect to Google Maps, transport data from one place to another and more … the more you help the people building the apps the more business value apps we get.

To view or add a comment, sign in

More articles by Prashant Parikh

Others also viewed

Explore content categories