How Users Can Help a Project? Samisa Abeysinghe
Who Am I? Samisa Abeysinghe –ASF Member WS PMC –Projects Started with Apache Axis/C++ Now with Apache Axis2/C and related projects –Work Director, Engineering, WSO2 Inc.
Why this Title? I've seen many types of users –Helpful, Encouraging, Educating, Inspiring, Demanding –And few Painful And I have noted –Rise in enterprise users In a hurry Little understanding on how OSS work
In a Nutshell How to help? –Use –Document –Test –Patch –Improve
Use it And you will run into problems –Ask questions On user list please And that helps!!! –Someone will answer it –Mail archive becomes a doc –BTW, you too could have used that doc
Use it – Asking Right questions, the right way –Ask : Are there leaks with httpd module? –And not: There are leaks, and you guys are not fixing it? Because, more often than not, developers know their code
Use it - Experiances Share your unpleasant experiences –Tell us, not others How it helps –Improve usability Bridge developer – user mind gap –Because, more often than not we can fix it Your platform, setup, use case could be unique May be no one tried it ever before May be no one thought about it
Use it - Report Report problems –Raise Jiras Provide ample info – tips to reproduce, logs, symptoms Know what to provide – each project is unique –Axis2/C ==> WSDL, messages captured How it helps –Fix bugs –Enhancements
Use it – Help Others Help others –You faced the same –And you know the fix/workaround How it helps –Take off developer burden –Project maturity milestone
Use it – Advocate Advocate the project –Blogs NOTE: solutions to the blog, problems to the list Share the pleasant experiences –Articles, tutorials How it helps –Spread the good word –Developer satisfaction
Document it “It's not documented, and I spent this amount of time to figure that out” –Now you know it, please contribute And it helps!!! –The next user will benefit
Document it - Review You read the current docs –Found errors Point them out –Have suggestions Let us know How it helps –QA the docs
Document it – Fill in Gaps You can help fill –It is in natural language, simpler than code –Help Translate ==> Often only in English How it helps –Fix docs faster –Wider adoption ==> Break the language barrier
Document it - Comments Doc comments and code comments –Review them –Help fix them –Again in natural language How it helps –Improved code quality –Wider code understanding
Document it - 2doc The solutions are in the mail archive –Pick them up –Note them down –Send it in How it helps –Time saved for next users And developers
Test it You try it ==> you test it It helps!!! –Free QA
Test it – Add What you just tested may not have ever been tested before –Contribute your test No not your code –IP concerns But your test How it helps –Wider test coverage –Better problem isolation
Test it – Improve Use existing tests –And fill in the missing ones –Often success cases are tested Could fill in the failure cases How it helps –Improve code coverage
Test it – Heterogeneous You may have access to heterogeneous platforms –Interop testing, platform testing How it helps –Improve interop and portability
Test it – Tools You may have access to tools –We often use open source tools valgrind, gdb, ab –Contribute findings form your tools Performance, load, memory leaks How it helps –Improved quality
Patch it Your chance to give it back –And it is not complex It Helps!!! –Overall feature improvements –Community spirit
Patch it – Fix You found it, you fixed it –Send it to us –Code, docs, build,... How it helps –It is mutually benefiting Others can use it You need not patch next release
Patch it – Issues Browse the bug tracker –Sometimes there are simple, trivial ones –You can contribute How it helps –Faster fix cycle –You can have it in next release
Patch it – Ideas Not sure how to fix, but have an idea –Let us know How it helps –More minds, better solutions
Patch it – Test Test others patches –See if it works for you –Patching often delayed due to need for testing How it helps –Speed up fix cycle
Patch it – Reproduce Some issues are non issues –See if you can re-produce Let us know if you can or cannot –That verifies that it is an issue How it helps –Still more QA –Faster fix cycle
Develop it New features, modules, samples, docs, tests –Look for abstractions, extension points How it helps –Feature enhancements
Develop it – Features You already developed a new feature –Give it back –Customizations ==> competitive advantage Not give back? But you already downloaded it –Downloaded bulk of competitive advantage –Why not upload few? :) How it helps –Comprehensive project
Develop it – Porting Fixed bunch of stuff –Can contribue –And more importantly continued testing Developers may not have access to that platform How it helps –Portability
Develop it – Enhancements You can be an expert –Performance, memory leaks, language features, best practices –Review current code and even docs Help fix How it helps –Superior code, things done right
Develop it – Wish Lists You have new requirements/wish lists –Discuss On dev list –Get to know how to do that –Walk the extra mile Sometimes discussions go dead Help implement it Keep it alive How it helps –Feature nirvana
Summary You can help –Use Ask, share experiences, report, help others, advocate –Document Review, fill, comments, emal2docs –Test Add, improve, heterogeneous, tools –Patch Fixes, trivial issues, ideas, test, reproduce –Improve Features, porting, enhancements, wishlist
Comments & Questions What do you think? Any comments? Any additions?
Links Mailing lists This presentation A summary
Users Can Help Projects Enjoy Using!!!