Monday, March 3, 2014

Open source


“In real open source, you have the right to control your own destiny.” -Linus Torvalds

                                    

Open source software helps me successfully navigate through my academic, personal and professional life. On a daily basis I use Open Office to do my homework, OpenNebula for setting up a cloud, Apache server for doing my Java projects and Whatsapp to name a few. Open source software helps a lot of Startup companies to grow very rapidly. The barriers of entry for a start up company are low - All that is needed are a couple of motivated people, a small capital and a fresh exciting idea. Early stage startups don't need to spend a lot of money to buy the big name software suites in order to bring their ideas to life, due to the availability of open source software. Also, since the source code is available, these companies can customize the software to meet their specific needs. Open source benefits not only Startup companies but also academic institutes and large companies. Most of the design software used in schools are open source and even large corporations encourage the use of open source alternatives. It promotes the idea of 'Free Knowledge'. Today, the sky is the limit for students as they can access any type of software they need to create exciting products at little cost. They can improve upon an existing software or even develop new applications from the available source code.



Use Open source for your next project: If you need to start a software project from scratch you can do so without having to purchase any proprietary software. This can be achieved with the help of multiple open source tools that are available freely on the web. Below are the list of open source software that I have found very useful in my projects. Software Configuration Management (SCM) Tools: There are many tools that are available but the one that I have most experience with is the Concurrent version system (CVS). CVS helps maintain the most current version of the code or files. This is useful when multiple developers are working on the same project at the same time. The developer can check out a copy of the code and make changes to it and later check in the modified code in the system. This prevents the possibility of the changes getting overwritten as multiple developers work in a software project at the same time. Software Hosting Facilities: GitHub is very popular in this category. It combines the best of two worlds - social networking and code sharing for developers. It has a pretty good GUI and has a wiki to get you started, along with several collaboration tools. The developer can fork out a copy of the code into his/her own machines so that write access is achieved. Once the developer has a local copy, changes can be made and the modifications can be merged back into the original code. Standalone bug trackers : Minimizing bugs is the key goal for any software project, so it is very important to closely track bugs. Bugzzila is a defect tracking system. Developers can track the bugs that they have uncovered and also keep a note of any pending problems they have not addressed yet in the project. Editors and IDEs : Eclipse is an integrated development environment that is used for Java based projects. It can also be used to run many other languages by installing the appropriate plug-ins. Project Management Tools: Project management is very important to successfully deliver the product on time. OpenProj helps to achieve this. It allows the project to be divided into several sub tasks along with the time allotted for each task. The entire team is on the same page when it comes to project time lines and helps meet critical deadlines. However,there are a few drawbacks with regards to Open source software. It usually does not have good documentation available to setup and customize the software as needed. Since it's free, there is not much technical support available and that can be a problem to fix bugs. The only way out is to rely on forums or talk to individuals who are well versed with the software and there is no guarantee of getting a solution to every problem that one may encounter. As long as the risks are kept in mind and properly addressed, Open source can be a boon to software developers.





References :
[1] http://www.zdnet.com/docker-an-open-source-startup-you-need-to-know-about-7000023273/
[2] http://en.wikipedia.org/wiki/Open-source_software
[3] http://opensource.com/resources/what-open-source
[4] https://www.catincan.com/
[5] http://techcrunch.com/2012/07/14/what-exactly-is-git
hub-anyway
[6] https://developer.mozilla.org/en- US/docs/What_to_do_and_what_not_to_do_in_Bugzilla
[7] http://www.siliconafrica.com/wp-content/themes/directorypress/thumbs//may-the-source-be-with-you_Open-source.jpg

4 comments:

  1. Hi Swapna, You have listed the use of open source and some drawbacks of open source. Also, you have talked about where open source softwares are used extensively and what help it provides to developers. You could have elaborated more technical details on open source, rather than a generic outline of the pros, cons and uses of open source software. It feels more like an Op Ed than a technical blog. The blog offers more personal views and talks about open source in a generic way. It is focused on how open source helps people and how people should use open source. There are very few technical details involved.

    ReplyDelete
    Replies
    1. Hi Anusha , Thanks for your comments. Based on your feedback. I have added more technical details to it.

      Delete
    2. Hi Swapna, I can see the changes. The blog is interesting with a lot of technical details. I learnt about various tools that are open source softwares in various categories. I think the blog is a technical blog rather than an open editorial.

      Delete
  2. I learned that a lot of startups use open source when first beginning their companies and you also elaborated upon various concepts of management tool, hosting, trackers and editors. Even though everything was well written and explained, it would have been nice if you included an example of a startup and which open source they used in their process. I think this blog was more likely a technical blog rather an opinion editorial.

    ReplyDelete