Issac Newton once said “If I have seen a little further it is by standing on the shoulders of Giants”. This can be interpreted in many ways but to me it means although one person can do some awesome things, working together with others and sharing information will allow us to do even more great things. The term open source refers to software or design that people can use, change, and make better because it is publicly accessible. A open source software is software with source code made available for people to use and manipulate.
Open Source software is great in the software developement field since a lot of times developers have ideas that require work in certain things that they are not familiar with and often times open source softwares come in and save the day. Innovation shouldn’t pause because one company owns the rights to a certain piece of code that someone else needs to make their code work. I think technology will advance a lot quicker if everyone can use available ideas to make theirs even better. Lets imagine that you have created something great and someone else used your awesome thing to make another awesome thing, you have technically indirectly worked with someone to make something awesome.
Coding standards are really important when working in groups of people. Just like language there needs to be a structure to how we communicate, and programming languages are no different than communication languages. Coding standards are a set of guidlines, best practices or conventions that professionals practice. Not practicing coding conventions is considered being unprofessional, and it is true that everyone has their own styles but conventions can still be used so that others can easily understand your work.
I think coding conventions is very important when it comes to open source software developement. Since open source developement is basically a big callaboration with the public, it will only work if there is a universal standard for the wayt code is structured. In the case that someone is not using coding conventions, we can end up with a piece of software that no one will want to work on and the limitation of that software can only extend to the ability of one coder who understands that code.
Agile project management is a new approach to managing project that is quickly becoming very popular in the tech field. This type of project management breaks large projects down into smaller more manageable tasks so that they can be finished faster. This gives results faster so that changes can be made if needed without taking a long time. In a typical project using Agile project mangement, development begins by implementing the basic features of the project. As the basic features get developed improvements are discovered and implemented. I have managed projects in the past using gantt charts, and in my opinion this agile project management is very similar. These two methods both spread tasks up into manageable chuncks but agile takes out the timeline aspect of the management process and incorporates it into the milestone portion. I really like this aspect of the process and I think it simiplifies things a lot since the entire timeline breaks down into individual milestones instead of a bunch of ongoing parallel tasks.