Wednesday, February 13, 2008
From Enterprise Development to Community Driven Development - From a Developer's perspective
As more and more enterprises are moving towards open source software it is important that they also understand the significant paradigm shift that comes with open source community driven software projects and products .It comes with a new culture for the enterprise which some of them might not find initially very comfortable .
Enterprise software development used to be a very close environment with very little knowledge sharing or collaboration across industries or companies . There was very little sharing of code,apis,best practices outside the company . But with the more and more companies going for open source software , enterprise developer(developers working in big companies) have to go through a mindset change from closed environment to a more collaborative and open development setup . With my personal experience in working in both kind of environments , I think its a slow transformation and involves a great deal eagerness and efforts from the teams .
People who are working in a startup or have worked in one already know and can understand exactly what I am saying . They can save their time by skip reading :)
This transformation is not limited to the developers only ,Project managers and business people also play a critical role in this .
Specially project managers and the leads have to be top of all the current technological development going around the community . Like if they are using a open source CRM , they have to be aware of the communities out there for the product and what is happening in the communities . They are not expected to know the details of things but at least if they find anything in there interest,they should make the team aware of this .Same is true for the developers also , they have to be on top of whats going in and around the open source community .
There are excellent frameworks and apis written and released every single day . Something you need or about to write may already be available out there. Believe me I find almost 50% of times something out in open source for my requirements. Even if you do not find the exact thing you are looking for you can always extend that to meet your requirement and also give it back to the community .Thats the beauty of open source .
Some of the times i find enterprise developers trying to solve whats already being solved by somebody . Thats because they are not aware of the happenings in the community or may be they want to just reinvent the wheel. You will be surprise that how much time and efforts can be saved by just being informed about open source .
The whole idea of getting a piece of code or product which is not from the great MIO stack(MS IBM ORACLE) , from the wild is scary for some of the folks.
Other thing I found hard to convince team members is to attend and participate in community events for a particular open source product they are using . They have to understand that its not they the old way of doing and discussing things only among the team . Their are tons of developers who are collaborating from outside the their company and they have to communicate with these developers to effectively use the product .
Participation in the forums is very important for developers. Ofcourse they have to respect the company guideline about intellectual property .Its not like the typical IBM support system ,that if anything happens you call the support and die waiting
for them to resolve the issues .Open source discussions forums are excellent place to get your answers for your issues. Thats why you have to be very active in the discussion forums to get a quick response .In fact nowadays the forums are excellent place to find solutions and don't to pay huge dollars for the support .
I also think that as Agile project methodology comes more and more into mainstream software development , the role of open source software will become critical in projects as these two compliment each other . There is whole lot to discuss about the Agile Open source relationship ...may be in other post .
Instead of discussing all the things in lengthy text and bore you to death I will just list down what i think a developer working in a enterprise environment could do for effectively enjoying the goodies of open source .
>>Participate in Community Forums.
>>Attend Local Community Events.
>>Subscribe to RSS from open source websites like infoQ, serverside ,hacker news etc.
>>Atleast read one Blog or Article daily .
>>Start a community in your company ,arrange events ,discussions etc for the community .
>>Apart from Wikis Start a technology forum in the company intranet where developers can shares ideas .
>>Wikis can have a list of open source products used in your company and reviews about it .
>>If you have developed something in your project that might be useful for others ...host it as a open source project within your firm and if allowed outside the company so that other developers can make use and collaborate .
>>Start a new open source project with other developers within your company as a parallel project to your existing one . This will give a first hand perspective and will keep you motivated .
>>Organize code challenges in the company .
>>Subscribe to the open source mailing lists ...like some of the JSR have there mailing list where you will get all the latest updates and discussions .
>>what do you think....
These may seem more work at the first glance but in long term they will bring immense motivation , job satisfaction productivity
improvement and generate enthusiasm's among the developers .
Remember Happy Developers Generate Quality Code :)
What do you think should help big enterprises to go open source culture ...??
Please add to list so that It becomes a kind of reference point for developers ...
Posted by Vishal at 3:27 PM