Migrating from proprietary to Linux (Open) development platforms
Way of working and IdeologyA software product development is highly influenced by the way of working of the team and the cohesiveness. When developing proprietary software generally the team members know each other well and the way of working is adapted to the organization culture. On a contrary the way of working on an open source environment is totally different where one needs to establish trust and have to get to know other developers of the module.
It is important for developers and managers to participate Linux Conferences to get to know the fellow developers. It also helps to understand to the path ahead and get to know the module maintainers expectations. Keeping active in the mailing list by contributive with effective comments will also help to establish necessary trust within the community.
Another important ideological difference between a proprietary software and open source development is how Intellectual Property (IP) is managed. In a proprietary software development IPs can be easily implemented or integrated as the software product is generally provided as binary. Open source ideology propagates free software products and proper care to be taken to ensure that company’s intellectual properties is not compromised.
To avoid any such compromise, companies can adopt processes that involve legal teams which would ensure that codes that are contributed to the community do not violate any of company’s Intellectual Property.
Tools and Guidelines
When a product is developed and subsequently maintained in-house, the process and project guidelines fall in line with the organization culture. A developer working on such an in house product will get hard coded with the review process, coding style and defect tracking mechanisms formalized by the company culture.
When a developer migrates to an open source Linux platform development the process is completely different. The developer needs to pick up the new methods and related tools that are mandated by Linux.
One another important information is the way software modules are designed. In case of a proprietary system any design decision on the product is totally within the team and finalized by senior members of the team. But in case of an open source development like Linux design changes needs to be reviewed by the community and requires consent from the community.
Linux provides documentation that details procedures to send patches, coding styles that are specific to its operating environment. When engineers migrate from proprietary platform they should be educated on Linux way of working using these documentations.
Also members of the team should participate in Linux forums and have face to face interaction with other kernel developers and maintainers to understand the community expectations.
Rajaram Regupathy is a Senior ACM member and author of the book "Bootstrap yourself with Linux-USB Stack". He has a decade of experience in the embedded system domain including proprietary and Linux based systems based embedded systems. You may reach him at rera_raja@acm.org.


Loading comments... Write a comment