For very small abandoned projects, nobody is around to do anything, even to 
review a patch.

For a slightly bigger project, someone is around to review a patch and explain 
you how to write one, and where to get started. The process of you writing it 
is slow, and the process of them reviewing it may also be slow.

For a next bigger project, 2-3 volunteer maintainers are around. They hear 
every word from feedback and prioritise them based on how easy they are to work 
around, and how well they fit a project scope. (Usually a lot of things fit 
project scope as long as it's designed and coded well.)

As a project goes bigger, more time is dedicated to unit tests. A volunteer 
would read feedback and review patches, but more effort would be spent into 
making the project not fall apart. Code review, unit tests, issue tracker, and 
again everything people request eventually gets in somewhere. Again someone is 
around who can explain you where to get started if you'd like to pick up your 
own request or someone else's.

As a project goes even bigger, it usually remains modular. It is relatively 
easy for you to get started by reading a very small module and coding your 
thing in. Again someone is around who sees you as a new potential volunteer, 
and is happy to explain you how things work.

...

When a project has an employee (or a GSOC student) coming in, something needs 
to prioritise their work. What issues to hand over to them to get them complete 
in no time?

...

Answer to this question may vary. It is hard to answer it right - there is more 
than one way to do it.

Some things come to my head about what should not be done:
1/ Miss community feedback. [For bigger projects, you /will/ have to 
consciously skip (note: this does not mean miss, it is a different word) some, 
to not make the thing a features mess. Simplicity is the key of success.]
2/ Come up with big non-modular projects.
3/ Lose consistency by working on big enhancements out of the blue, leaving the 
rest of functionality or interface behind.
4/ Write code which fails to be reusable.
5/ Fail to write documentation.
6/ Fail to showcase, reveal, and expose the features the employee added, which 
are reusable.
7/ Fail to support community work.
8/ Fail to meet original project mission.

Could someone please point me specifically to where (4) and (6) are not failing 
within Wikimedia Engineering?

In other words:
- What reusable things come out of each Wikimedia Engineering project?
- Where can I find out about them easily without asking you to find them for me 
by hand?

svetlana

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to