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.

Reply via email to