Hi All
I didn't get selected as a GSOC intern for the project i applied Scalable
XWiki on NoSQL (AppEngine, Cassandra ). But i would still like to work on
this project. should i put a mail to the devs list regarding the project.
On Wed, Apr 27, 2011 at 4:47 PM, Sergiu Dumitriu <sergiu(a)xwiki.com> wrote:
  Hello community, Hello Google Summer of Code students,
 First of all, congratulations on your applications and your activity
 during the selection period, and welcome in the XWiki development team.
 Before guiding the accepted students to their next steps, we'd like to
 thank again all those who showed interest in XWiki for this Summer of
 Code. We had a lot of good applications this year, with professional
 approaches and interesting ideas, and it was very difficult to choose
 only 3. Unfortunately, some very good students, with great potential,
 were not accepted. So, to those interested in getting involved anyway,
 without Google's implication, I renew the invitation to put your ideas
 in practice under the guidance of the community. Even though the money
 will be missing, you can still take advantage of the other GSoC
 benefits: learning new things, gaining experience, earning recognition,
 etc [1]. If you would like to do that, please let us know by replying to
 this mail.
 For the accepted students, here are some getting started hints:
 = Community bonding period =
 According to the program timeline [2], the next month (until - May 23rd)
 is to be used for community bonding.
 The first thing to do, sometime this week, is to present yourself and
 your project on the dev list, so that everyone knows who you are and
 what to expect from you (a precondition is to be subscribed to the list,
 which you should do ASAP if you haven't already).
 Also, you should continue getting acquainted with the code, the
 practices and the developers. Please make sure you all read and
 understand the following - very useful - documents:
 - [3] 
http://purl.org/xwiki/community/
 - [4] 
http://purl.org/xwiki/dev/
 - [5] 
http://platform.xwiki.org/xwiki/bin/view/Features/
 = Mentorship =
 We prefer open mentorship. While your assigned mentor is the one
 officially in charge with your guidance, almost all interaction should
 be done 'in the open' as much as possible, on the IRC channel or on the
 mailing list. You should choose the communication medium according to
 the importance of the matters to be discussed: naturally, the less
 important issues are to be discussed on IRC, while the design decisions,
 important progress announcements and testing/feedback requests go on the
 list. This way, the community is informed on the evolution of your
 project, and other developers can come up anytime with useful ideas and
 suggestions. Moreover, if your mentor is hit by a bus (the bus factor
 [6]), another developer can take his place with little effort.
 = Communication =
 Sitting alone in your room, working secretly on your project is
 definitely a bad approach. However, please keep in mind that too much
 communication can also be harmful, as it distracts the others from their
 own work. You need to be able to communicate just right:
 - provide meaningful information about your progress,
 - ask the community's opinion on non-trivial design or implementation
 decisions
 - avoid waisting a lot of time on a problem, when a more experienced
 developer (or a student that fought the same problem) could quickly
 provide you an answer; however, do try to find the answer yourself at
 first.
 Wrong: "Where do I start? What do I do now? And how do I do that? Is
 this good? It doesn't work, help me!"
 Right: "Since a couple of hours ago I get a strange exception when
 building my project, and googling for a solution doesn't seem to help.
 Looking at the error, I think that there's a wrong setting for the
 assembly plugin, but nothing I tried works. Can someone please take a
 look?"
 Subscribe to the devs list (if you didn't do this already), and start
 monitoring the discussions. It is also recommended to subscribe to the
 users list, but not mandatory. The notifications list is a little too
 high volume and technical for the moment, but it is a great knowledge
 source.
 = Development process =
 The project's lifecycle is NOT design -> implementation -> testing ->
 documentation. [7]
 We invite you to adopt a test driven development [8][9][10] approach and
 to experience agile development [11]. After the first coding week, you
 must have some code that works. It won't do much, of course, but it will
 be the seed of your project. Every functionality will be validated by
 tests. The code must be properly tested and commented at the time of the
 writing (don't think you'll do that afterwards, because in most cases
 you won't).
 Since we've recently moved our codebase to GitHub [12], you should
 register an account there and fork some xwiki repositories, so that you
 can try to build XWiki from sources, and be able to contribute bugfixes.
 We'll add you to the xwiki-contrib organization [13], and we'll create
 dedicated repositories for each project. We encourage you to do __at
 least__ weekly commits (ideally, if you are well organized, you should
 be able to commit code that works daily, so try to aim at daily
 commits). This way, the code can be properly reviewed, and any problems
 can be detected before they grow into something too difficult to fix.
 One big code blob committed at the end, no matter how good it may seem,
 is a failure at several levels.
 A simple way of having something functional in the first week is to
 prepare the maven build for your modules, which will give you the first
 unit test for the first class.
 = Next steps, in a nutshell =
 - Get more familiar with the code and development process and try to
 master Maven, JUnit, Selenium, component driven development, ...
 - Continue fixing a few small issues, chosen so that they are __related
 to your project__. You can ask on IRC for help selecting good issues, or
 you can pick from the (non-comprehensive) list of easy issues [14]
 -- This will help you get more familiar with the code your project needs
 to interact with.
 - Refine and organize the ideas concerning your project (you can use the
 Drafts space [15]), and write several use case scenarios.
 - Start writing the first piece of code for your project.
 At the end of the community bonding period, you should have a clear
 vision of the project, well documented on the 
xwiki.org wiki, you should
 have the build infrastructure ready, and you should be pretty familiar
 with the existing code you will need to interact with. And, of course,
 you should be familiar with the community and the way we communicate.
 Good luck, and may we all have a great Summer of Code!
 [1] 
http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/
 [2]
 
http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/ti…
 [3] 
http://purl.org/xwiki/community/
 [4] 
http://purl.org/xwiki/dev/
 [5] 
http://platform.xwiki.org/xwiki/bin/view/Features/
 [6] 
http://en.wikipedia.org/wiki/Bus_factor
 [7] 
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
 [8] 
http://en.wikipedia.org/wiki/Test-driven_development
 [9] 
http://www.amazon.com/dp/0321146530/
 [10] 
http://www.amazon.com/dp/0201485672/
 [11] 
http://www.amazon.com/dp/0596527675/
 [12] 
https://github.com/xwiki/
 [13] 
https://github.com/xwiki-contrib/
 [14]
 
http://jira.xwiki.org/jira/secure/IssueNavigator.jspa?mode=hide&request…
 [15] 
http://dev.xwiki.org/xwiki/bin/view/Drafts/
 --
 Sergiu Dumitriu
 
http://purl.org/net/sergiu/
 _______________________________________________
 devs mailing list
 devs(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/devs