Tehnički aspekti vođenja softverskog projekta I dio
S ovim predavanjem ulazimo u svijet razvoja programa i sustava, prema svim pravilima struke, koristeći najsuvremenije alate i tehnike koje će osigurati maksimalnu kvalitetu razvoja.
Ako želite saznati nešto više o razvoju programa i sustava, programer ste ili to tek želite postati, pridružite nam se na našim predavanjima i radionicama.
Naša predavanja i radionice otvoreni su za sve zainteresirane bez novčane naknade.
U prvom dijelu predavanja pričati ćemo o alatima koji će se koristiti za potrebe razvoja i praćenja svakog projekta. Svaki alat ćemo izdvojiti iz cjeline i obrazložiti zbog čega ćemo ga koristiti, kako će nam pomoći i na koji način ćemo koristiti takav alat.
Činjenice o Open Source projektima
Većina Open Source projekata su neuspješna.
90% – 95% su napušteni projekti.
Menađment Open Source projekta je nešto novo i drugačije.
Motivi pristupa u Open Source projekt su različiti. Svaka dobra ideja počinje od osobnog problema (scratch your itch).
Čovjek mora imati osijećaj prisutnosti u projektu. Njegov utjecaj je direktno vezan njegovim doprinosom.
Prvi koraci
Odabir “dobrog” imena za projekt.
Jasno i glasno izjaviti glavnu zadaću projekta.
Izjasniti da je projekt Open Source.
Lista podržanih (ili planiranih) funkcionalnosti.
Status razvoja projekta.
Screenshot primjeri ili primjeri izlaznih informacija iz aplikacije.
Mjesto sa kojeg korisnik može preuzeti samu aplikaciju.
Prvi koraci …
Dokumentacija.
Pristup izvornom kodu.
Pristup issue tracker sustavu.
Tehnička infrastruktura:
Version Control.
Bug Tracker.
Continuous Integration.
Code Review
Wiki.
Alati:
Version Control
-
Mercurial (http://mercurial.selenic.com/)
<li dir="ltr">
<p dir="ltr">
Git (<a href="http://git-scm.com/">http://git-scm.com/</a>)
</p>
</li>
Bug Tracker
-
Bugzilla (http://www.bugzilla.org/)
<li dir="ltr">
<p dir="ltr">
MantisBT (<a href="http://www.mantisbt.org/">http://www.mantisbt.org/</a>)
</p>
</li>
Continuous Integration
-
Jenkins (http://jenkins-ci.org/)
<li dir="ltr">
<p dir="ltr">
CruiseControl (<a href="http://cruisecontrol.sourceforge.net/">http://cruisecontrol.sourceforge.net/</a>)
</p>
</li>
Code Review
-
Review Board (http://www.reviewboard.org/)
<li dir="ltr">
<p dir="ltr">
Gerrit (<a href="https://code.google.com/p/gerrit/">https://code.google.com/p/gerrit/</a>)
</p>
</li>
Wiki
-
MediaWiki (http://www.mediawiki.org/wiki/MediaWiki)
<li dir="ltr">
<p dir="ltr">
MoinMoin (<a href="http://moinmo.in/">http://moinmo.in/</a>)
</p>
</li>
Mailing List Manager
-
Mailman (http://www.gnu.org/software/mailman/)
<li dir="ltr">
<p dir="ltr">
Sympa (<a href="http://www.sympa.org/">http://www.sympa.org/</a>)
</p>
</li>
Forum Bulletin Board
-
phpBB (https://www.phpbb.com/)
<li dir="ltr">
<p dir="ltr">
Simple Machines Forum (http://www.simplemachines.org/)
</p>
</li>
Third party hosting:
Bitbucket (https://bitbucket.org/)
GitHub (https://github.com/)
Google Code (https://code.google.com/)
SourceForge (http://sourceforge.net/)
CodePlex (http://www.codeplex.com/)
Self hosting:
Trac (http://trac.edgewall.org/)
Redmine (http://www.redmine.org/)
The Bug Genie (http://www.thebuggenie.com/)
Indefero (http://www.indefero.net/)
MediaWiki
Web aplikacija koja omogućava korisnicima dodavanje, promjenu i brisanje sadržaja pomoću web preglednika.
Poznavanje HTML i općenito programiranja nije potrebno.
Omogućuje revizioniranje promjena sadržaja.
Omogućuje dodavanje velikog broja raznih sadržaja i međusobnog linkanja.
Najviše se koristi za potrebe projektne dokumentacije i sabiranja znanja.
Projekt koji koristi MediaWiki za svoje potrebe:
Git | Version Control
Decentralizirano verzioniranje koda.
-
Verzioniranje omogućava “snimanje” stanja (revizioniranje) koda u nekoj točci u vremenu.
<li dir="ltr">
<p dir="ltr">
Decentralizirani sustav omogućava da svaki programer ima svoju bazu revizija na svom računalu.
</p>
</li>
Omogućava višekorisnički rad na kodu.
Mogućnost vraćanja stanja izvornog koda na bilo koju reviziju.
Mogućnost grananja (branching) koda.
Mogućnost obilježavanja (tagging) specifičnih točaka u vremenu.
Projekt koji koristi Git za svoje potrebe:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
Jenkins |Continuous Integration
Continuous Integration alat.
-
Sistemska integracija je proces spajanja različitih modula sustava i softvera fizički ili funkcionalno u jednu cjelinu.
<li dir="ltr">
<p dir="ltr">
Kontinuirana integracija smanjuje mogućnost pojave neslaganja i razlika između modula i povećava integritet cjelokupnog sustava.
</p>
</li>
Proces je zamišljen da se integracija vrši vrlo rano u razvoju i vrlo često.
Alat omogućava automatizirano izvršavanje proizvoljnih koraka prilikom svake integracije i generiranje raznih izvještaja.
Projekt koji koristi Jenkins za svoje potrebe:
Gerrit | Code Review
Code review (pregled ili provjera koda) je proces u kojem je dio izvornog koda predan drugim stručnjacima na pregled s ciljem da se pronađu greške i loš dizajn prije nego li se taj dio koda integrira u sam projekt.
Pregled koda može dramatično pomoći u povećanju kvalitete samoga projekta.
Projekt koji koristi Gerrit za svoje potrebe:
https://android-review.googlesource.com
Redmine |Overview
Redmine |Activity
Redmine | Roadmap
Redmine | Issues
Redmine | Issue details
Projekt koji koristi Redmine za svoje potrebe: https://bugs.ruby-lang.org/
Instalirani servisi na našj infrastrukturi
phpLDAPadmin
https://www.opensource-osijek.org/phpldapadmin
phpMyAdmin
https://www.opensource-osijek.org/phpmyadmin
- Gerrit
https://www.opensource-osijek.org/gerrit
Poznati citat Linus Torvaldsa
”
“Hello everybody out there using minix –
I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready.”
26.08.1991.
”
Reference
Producing Open Source Software: How to Run a Successful Free Software Project, Karl Fogel, 2010., http://producingoss.com/
Linus Torvalds Famous Qoute, https://groups.google.com/forum/?hl=en&fromgroups=#!topic/comp.os.minix/dlNtH7RRrGA%5B1-25-false%5D
The Cathedral and the Bazaar, Eric Steven Raymond, 2000, http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
Snimku predavanja možete pogledati na :
http://www.youtube.com/watch?v=mq7NUbfq4cs