389COM: Becoming an Open Source Developer
Dr Carey Pridgeon, DR Nazaraf Shah
Created: 2016-11-03 Thu 15:28
Becoming an Open Source Developer
- Jobs all need experience.
- You can't get experience without a job.
- A Good Open Source Product can give you that same experience.
- You get to control everything in your product
- You can learn new technologies/practices without an employers deadlines.
- It doesn't matter if you fail.
- Making money from your project cannot be you motivation
- Making money through the experience you gain can be.
- Your project (if it's a lone project) isn't likely to be a worldwide success.
- Having a few people appreciate your work can feel very good.
Starting your own Project
- Identify an interesting subject that will teach you something new.
- Choose an online repository (don't host it yourself).
- Write a User Story (why is this product interesting, even if only to you).
- Pick a licence and start. (getting this aspect right is really important.
Joining another Project
- Identify an existing project that interests you.
- What value can you add to that project?
- Write something and submit it to the project owner.
Develop Good Practices
- The moment you apply for a programming job, someone will go look at your code.
- Write code, then write a test for that code, and document it as you go along.
- Use Continuous Integration from day one.
What open source developers do wrong
- The biggest complaint is that documentation is rubbish.
- Thinking that users will not notice issues your code has (bugs or design).
- Not responding to requests or recommendations.
- Choosing the wrong type of licence.
- Assuming your project will get additional developers as part of the initial concept.
Forking an existing project
- Is it worth doing? Can your fork add value.
- Forking has been used as a protest action (X-Org being a major example)
- Fork vs submodule, can you simply extend/utilise a project?
Research your field
- Has anyone else done what you want to do?
- What can you learn from their efforts?
- If someone has done something, it doesn't mean you can't, but maybe collaboration to extend is an option?
- Is there a demand? (if their isn't it needn't matter, but it might).
Walk first, Run later
- Don't set goals too far ahead.
- Design, and putting that design online with your code is important, since people will look if you apply for a job.
- Perfection is not the initial aim, a design that sucks is better then no design at all, since a design can be critiqued.
- If you are enjoying the project, you are more likely to succeed.
- Copyright: Randall Munroe - XKCD
- Mirrored in my hosting to avoid bandwidth stealing
Licence for this work
- Licenced under Creative Commons Attribution-ShareAlike 4.0
International by Dr Carey Pridgeon 2016
- (Licence does not cover linked images owned by other content creators)