Hi everyone, *Note to users actively using OpenWISP: we need your feedback to improve OpenWISP! The Google Code-In is a great chance to fix many small issues and add new minor features!*
I am working on finishing the application for the Google Code-In 2018 and I realized there are 2 very important things we can do to improve as an organization and attract the right students in our community. 1. Clearly set our goals for GCI 2018 2. Define the evaluation criteria I have been discussing these points privately with some of you and now I have some time to start a public discussion. Below I show you our proposed goals and evaluation criteria, if you want to add something or discuss a specific point please do so. *GCI 2018 Goals* This is more or less what I added into the application (I will add some more comments here because in the application form there's a 500 character limit): - improve the on-boarding experience of new contributors by documenting and automating all the important aspects of the setup of the development environment that is needed to work on OpenWISP comments: this point is all about removing obstacles and overhead in the way of new contributors. we need to add some development docs regarding how to use tools like: bpython or ipython, django-debug-toolbar, django-extensions. isort, flake8, jshint, ansible-linter (we are going to add this). we need to explain how to work on multiple modules at the same time without going crazy (eg: using python setup.py develop for python modules, other tricks for ansible roles) if there's anything we can automate, we should do so. We could have a script for debian based linux distro that downloads and installs and configures everything a contributor needs to get started, then once this script is ready, we could create a vagrantfile which calls it so it can be used in new VMs very easily (for those who prefer working in VMs) - improve our documentation by providing at least 2 step by step tutorials on how to get a real networking scenario up and running comments: I think it's time to help new users to get started using OpenWISP. We should fully explain how to configure OpenWISP to do at least 2 real world scenarios, it would be great if we could also document how to use the VPN automation feature (which is tricky to set up). - teach the best practices of web development applied to networking (a rare skill) to a young audience comments: finding developers who are skilled at python, django, javascript, openwrt and networking tools it's very rare. We must aim at alleviating this problem by distributing as much knowledge as we can. We have to try to dedicate some tasks to OpenWRT and networking tools (freeradius, coova-chilli and anything useful). - grow our community comments: we should aim at encouraging students to keep participating also when the program ends, because while helping us to improve, they also learn a lot and grow their soft and hard skills. - add new minor features comments: GCI is not good for adding big features because tasks have to be small, but it's great for adding many small improvements and minor features, so if you have any idea for small improvements and features please speak up! - bug fixes & maintenance comments: we should upgrade all django modules to django 2.1 we should upgrade all the OpenWRT related modules to OpenWRT 18.06 *Evaluation criteria* This year I want to make sure our students understand what are the areas we care most and that we will keep in higher consideration when evaluating winners. I think the most important criteria are the following: - *progression of skills*: we expect them to start with simple tasks and gradually progress to more difficult tasks - *quality over quantity*: we care more about the quality and impact of their work rather than the quantity of completed tasks - *how we define quality*: strict adherence to our contributing guidelines, clean readable code, simplicity, elegance, good commit messages - *community*: open source is not only about producing code, being active in the community (mailing list and chat), helping out fellow students and helping out new users who ask beginner questions is also very important to maintain a healthy community - *gradual independence*: over time we expect them to improve and need less and less micro-managing from mentors, we expect them to become more independent and know learn to solve problems on their own - *learn to use OpenWISP*: the best contributors are those who actively use the software; students may not have a specific need to use OpenWISP but they can simulate it in order to learn; we will appreciate students who will show good knowledge of how OpenWISP can be used and will help us to write more documentation and tutorials on how to use it - *full stack knowledge*: OpenWISP is really a full-stack software project, there's everything: python, django, javascript, openwrt, lua, shell scripting, openvpn, freeradius, ansible; we will appreciate students who will spend effort in improving their skills on multiple fronts, rather than focusing only on 1 technology or programming language That's it. Let me know what you think. Federico -- You received this message because you are subscribed to the Google Groups "OpenWISP" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
