Softver za suradnju, također poznat kao softver za podršku radnih grupa, računalni je softver dizajniran da pomogne grupama ili timovima ljudi – često na različitim mjestima – da rade zajedno kako bi dovršili projekt. Softver za suradnju otvorenog koda besplatna je ili jeftina verzija ovoga koja programerima omogućuje da manipuliraju kodiranjem za svoje vlastite potrebe, iako tehnička podrška možda nedostaje. Jedno od primarnih razmatranja softvera za suradnju otvorenog koda je svrha programa, jer je neki softver za suradnju dobar za glazbenu suradnju, dok je drugi softver više usmjeren na upravljanje projektima. Upravljanje članovima važna je softverska značajka za velike projekte, a implementacija programa – bilo da se radi o stolnom računalu ili webu – odredit će kako se program koristi. Značajke suradnje, kao što je mogućnost dijeljenja datoteka ili videochata, odredit će kako korisnici dijele informacije.
Postoji mnogo različitih softverskih okruženja otvorenog koda za suradnju, a većina je namijenjena za korištenje u određenoj vrsti projekta. Neki su napravljeni za glazbenu suradnju, neki su za upravljanje projektima i web stranice sa sadržajem, a drugi su za poslovne napore. Dok se softver za glazbenu suradnju može koristiti za upravljanje projektima, niša će odrediti koje module je program unaprijed instalirao, čineći taj program prikladnijim za određenu svrhu.
Implementacija softvera za suradnju otvorenog koda bit će ili stolna ili web-bazirana; što znači da će se program otvoriti ili na zaslonu radne površine korisnika ili u internetskom programu. Osim ako nije teško pristupiti internetu, web-bazirano je obično lakše, jer može raditi na bilo kojem računalu, bez obzira na operativni sustav (OS) ili hardver. Ako je teško pronaći internetski signal, onda će verzije za stolna računala vjerojatno biti bolje.
U suradničkom okruženju, korisnici moraju dijeliti informacije kako bi svaki član znao što se događa i imao informacije ključne za dovršetak zadatka. U tu svrhu, softver za suradnju otvorenog koda trebao bi imati mnogo različitih načina na koje se korisnici mogu međusobno integrirati. Na primjer, potrebne su značajke koje korisnicima omogućuju razgovor, slanje e-pošte, prijenos i preuzimanje datoteka te zakazivanje sastanaka. Tu su i proširene značajke, kao što su video chat i projektni blogovi, koje mogu pomoći u upravljanju zajedničkim naporima, ali također mogu biti nepotrebne, ovisno o korisnicima.
Većina softvera za suradnju otvorenog koda zahtijeva administratora koji može dodavati članove tima i upravljati njima. Softver bi trebao omogućiti administratoru da poveća ili smanji korisnička dopuštenja, grupira članove u timove i izgradi profile za članove. To će pomoći timu da funkcionira kao jedinica, a također će uspostaviti lanac zapovijedanja i pokazati članovima s kim moraju raditi.