Our Team has grown up on Open Source. When you look closer at Solution4Future, you will see strong influence of this concept on our culture. Today we would love to share with you how we explore Open Source every day.</br> After decades Open Source is no more marginal phenomenon. 10 years ago in Poland typical Linux user was associated with nerd and outsider with no topic to conversation and a lot of hate for commercial solutions. Nowadays Open Source gathers huge community at the global scale, is basis of many businesses and even spy stories, is source of inspiration for many concerns (sometimes not only in positive way).
Open Source every day
Everything starts from well formed motivation. When you use some library, which needs polishing, fix or report bug, you can’t sit and nagging at everybody and whole world or even talk bad about someone’s work. You can take matters into their own hands and make it better. It doesn’t demand long hours or weeks, but in many cases only few minutes and good will . Of course nobody pays you for your time, but it shouldn’t be only motivation of your work. Your activity will return to you in better library and you could learn a lot. It’s important to find balance between paid work and other projects development.
In Solution4Future we care about responsible attitude towards Open Source:
- We report bugs, create pull requests with fixes – it doesn’t cost a lot of time, however early notification about problem and preparing good description can help a lot.
- We organize time on Open Source every week for whole team. It's the best way of learning, mastering skills and knowledge and giving to the community
- We have contributed in few projects: crypto-allauth, opencompany.github.io, www.gittip.com, django-socketio, gevent-socketio, django-ckeditor, flask-restful, Specs, django mptt and many more..
- We publish source code of research, workshop or private applications.
- We are concerned about privacy problems and using commercial software without need in public institutions.
- Naturally we always respect source code licenses and we sensitize others on this differences.
Our activity is not enough and is little in the ocean of needs, but little involvement is better than doing nothing (think about it!)
But.. we don’t wear pink glasses
Choice of Open Source components to your project is extremely responsible task. Bad decision can cost you a lot. It could have consequences like deadline extensions, lower quality or poor first impression. Weaknesses of your dependencies are weaknesses of your product. Believe me or not, but clients don’t want to hear about bugs in tools or libraries. They are only interested in results. Problems of your dependencies become also your problems.
- Type of repository owner - there is dependence between type of owner and quality of maintenance and software support. Companies, foundations, organizations and teams care more about their projects.
- Information about maintainers – their other projects, their engagement, employment history.
- Number of maintainers and contributors.
- Average number of commits in last few months – it’s important to identify that project is still developed.
- Total number of bugs and their status – factor describes how long you can wait on help in case of errors
- Average time waiting on pull request acceptance
- Number of watchers, users, downloads - all this factors describe level of interest and popularity
- Total number of : commits, issues, forks, pull requests.
Co-founder of our company – Kamil Gałuszka wanted to dive into this subject and automate this processes. He created thesis project about automatic analysis of source code repositories based on machine learning. The tool automatically classifies projects to 5 categories classification into five categories, that determine the level of maturity. Data set was powered by GitHub REST API. I hope Kamil will present results of his research in the nearly future.
We sold our souls?
We aren’t opponent of priced solutions with closed source code. Yes, that’s true. We recommend to our clients using Oracle or even Microsoft applications. The decisive factor is the business environment, industry, legal background or specific needs.
What are the advantages of these solutions in business?
- support 24/7,
- good quality of product, polished details,
- ISO standards,
- courses, trainings for employees (it makes employees more replacable than one “Open Source narrowly specialized guru”),
- more UI friendly (sometimes ;)).
I risk thesis that in some cases total risk and cost of installation, deploy, maintenance infrastructure can be lower than using open source solutions or developing it.
We are strongly connected with Apple environment, because we are developing iOS applications. But there are also many Open Source projects gathered around this Apple ecosystem like: RestKit, AFNetworking and many many more.
Being maintainers of Open Source is sometimes full time job and big responsibility. So we would like to thank You for your time, experience and knowledge and support (which sometimes may embarrass many business with paid support.. ). We are very greatful for Your work and we respect it.