Open Source First
Open Source must be the default. Avoid proprietary software. Do not build wrappers for open source libraries. Use Open Source software directly. Building internal shared libraries is a liability and will create many issues like security vulnerabilities, maintenance burden, and lack of community support / documentation. Therefore creating internal shared libraries must be a very conscious choice and must be well justified.
Why It’s important?
Because Open Source gives us many advantages like:
- There is a whole community behind: Maintaining, fixing bugs, improving the performance, making it better.
- Portability: Open Source means you are not stuck with a single vendor and more likely you can run yourself or switch the vendors (this is also known as open standards like REST).
- Documentation & Training: Developers often don’t like to write documentation. By using open source you can get documentation for free, you get stackoverflow threads, blog posts, books, tutorials, videos and much more. Open source also means people can be trained by the market and not by you. If you have a proprietary software that only exists in your company, you cannot use the market to train people.
Open source is also giving it back. Open source is giving visibility to engineers who do good work, open source is life and collaboration.