Na jakie flagi ostrzegawcze należy zwrócić uwagę przy wyborze oprogramowania typu open source? [Zamknięte]

13

Porównując projekty open source z oprogramowaniem komercyjnym, a nawet innymi projektami open source, jakie sytuacje wywołują czerwoną flagę i powodują, że naciskasz przycisk wysuwania i szukasz innego miejsca?

jldugger
źródło

Odpowiedzi:

17

Otwarte źródło

Spójrz na stronę internetową projektu

  • Spójrz na dokumentację
  • Przejrzyj archiwa listy mailingowej
  • Spójrz na SCM (svn, git, hg itp.)

Czyniąc to, weź pod uwagę następujące punkty ...

  • Jak dojrzałe jest oprogramowanie
  • Jaki jest rozmiar bazy użytkowników (wiele osób? 3 osoby?)
  • Kim są ludzie w bazie użytkowników (użytkownicy korporacyjni, użytkownicy domowi, małe firmy itp.)
  • Czy rozwój jest aktywny? Jak długo jest aktywny?
  • Archiwa listy mailingowej zawierają również wiele informacji na temat „ducha zespołu” między programistami. Czy wygląda zdrowo, wrogo, znudzony itp.?
  • Czy dokumentacja jest przyzwoita?
  • Czy pakiet / projekt został zaakceptowany w jakichkolwiek dystrybucjach, takich jak Fedora, Debian, RHEL, SLES, Ubuntu itp.? Jeśli tak - to dobrze - przynajmniej więcej niż jedna osoba wierzy w projekt.
  • Czy strona ma odpowiedni system sprzedaży biletów? Jeśli tak - ile biletów jest otwartych sprzed 5 lat? To kolejny dowód na to, jak „na żywo” jest projekt.

Upewnij się również, że zwróciłeś uwagę na licencję, na podstawie której oprogramowanie jest dystrybuowane. Niektóre mogą być nieodpowiednie dla twoich potrzeb.

Oprogramowanie firmowe

Nie mam tu zbyt wiele do powiedzenia poza ...

  • Upewnij się (nie pytaj sprzedawcy - po prostu kłamie), że aplikacja nie działa jakoroot . Zwłaszcza jeśli będzie nasłuchiwał na porcie TCP / IP. * Patrząc na reputację dostawcy
  • Upewnij się, że dostawcy są świadomi, że osoby zarządzające tym produktem (tj. Nie otrzymają rootdostępu, a więc produkt musi obsługiwać sudo . Każdy, kto twierdzi, że sudonie jest obsługiwany, jest po prostu rozsądny, ale oni są dostawcami i będą bądź tymi, którzy muszą cię wspierać - nie chcesz kupować produktu, a później każą ci powiedzieć „Nie, nie możesz używać sudo, musisz su do rootowania”.
  • Nigdy nie kupuj żadnego oprogramowania zabezpieczającego o zamkniętym źródle - nigdy
  • (subiektywnie): ... i nigdy nie ufaj nic przedstawicielowi handlowemu - wszyscy są kłamcami i wężami, bez wyjątków.
Kserkses
źródło
Jak określić dojrzałość programu? To nie jest tak, że numery wersji nic nie znaczą, a wiele projektów korzysta z nieparzystych numerów wersji przez lata w szerokim użyciu. (Patrzę na ciebie NetworkManager). Czym byłaby czerwona flaga niedojrzałości?
jldugger
Prawidłowo, chociaż numery wersji mogą mieć określone znaczenie dla programistów, jest to sprawa wewnętrzna - świat zewnętrzny jest w najlepszym razie jedynie wskazówką - taką, którą oprogramowanie dla przedsiębiorstw wydaje się próbować wykorzystywać przy niedorzecznych skokach numerów wersji . Aby dowiedzieć się o dojrzałości, możesz spojrzeć w kilku miejscach, w szczególności na system biletowy - wiele biletów jest dobrą rzeczą - szczególnie, jeśli widzisz, że programiści naprawdę starali się je naprawić i zamknąć. Z drugiej strony, jeśli nie masz biletów lub, co najgorsze, nie ma systemu biletowego, to nie jest dobry początek.
Kserkses
7
  • Brak aktywności. Jeśli projekt nie wydał nowego kodu, pokaż wiele niezamkniętych błędów (lub bardzo starych błędów bez nowych błędów) lub fora użytkowników, które mają bardzo wysoki stosunek spamu do postów, to z pewnością zapach rozkładająca się baza kodu. Aktywne projekty mają regularne wydania, usuwanie błędów, co oznacza, że ​​nowe otwarte nie wyprzedzają starych, a fora użytkowników z codzienną aktywnością. Wszystkie trzy są niezbędne do utrzymania kodu przy dobrym funkcjonowaniu - wypuszczenia, osłabienia oraz debugowania / refaktoryzacji, tworząc pełną pętlę.

  • Aktywność jest proporcjonalna do wielkości, złożoności i dojrzałości bazy kodowej. Im większy program / projekt, tym rzadsze są wydania punktowe, ale powinien istnieć spójny strumień wydań punktowych. W przypadku projektu takiego jak Samba, z dużą złożoną bazą kodu, spodziewaj się wydania punktów po około miesiącu. W przypadku projektu takiego jak gcc, który jest dojrzałą bazą kodu z bardziej konserwatywnymi celami projektowymi, wydania punktowe są dłuższe pomiędzy, ale większe. Szybko zmieniające się cele na bardzo małych ilościach kodu również wskazują na potencjalne problemy - być może deweloperzy wciąż walczą z błędami lub nie mają jeszcze wszystkich zakodowanych celów / funkcji.

  • Kod źródłowy musi być łatwo dostępny. Jeśli jest to prawdziwe oprogramowanie typu open source, nie powinno być żadnych magicznych uścisków dłoni, ofert voodoo ani inkantacji przy świecach, aby zobaczyć kod źródłowy. Nie ma znaczenia, czy jest dostępny za pośrednictwem CVS, SVN, Git, Mercurial, a nawet gołębia pocztowego, pod warunkiem, że możesz się do niego dostać bez umowy licencyjnej z zawijaniem. Jeśli podpiszesz zrzeczenie się, NDA lub zgodzisz się na jakiś program licencji, o którym nie słyszałeś, nie masz do czynienia z oprogramowaniem typu open source, masz do czynienia z dostawcą komercyjnym, który zgodził się otworzyć dla ciebie swoje źródło - za cenę .

Avery Payne
źródło
++ dla wymagań dotyczących aktywności.
sh-beta
6

Naprawdę jest ich mnóstwo.

Zwodnicze licencje - zbyt wiele rozwiązań próbuje mnie zepsuć i zepsuć na śmierć. Pakiet kosztuje X, ale jeśli chcesz reklamować opcje 1, 2 i 3, będzie to o 500-1500 USD więcej za opcję. Nie, dziękuję.

Nikt go nie używa - a przynajmniej Google nie może znaleźć nikogo, kto by o tym mówił. Jest albo nowy (w takim przypadku jesteś świnką morską), albo tak zły, że wszyscy wiedzą lepiej

Jest to podstawa kilku rozwidleń - jeśli coś rozwidlono wiele razy, prawdopodobnie jest to dobry powód, a jeden z rozwidleń prawdopodobnie rozwiązał problem lepiej niż źródło. Zbadaj je zamiast tego.

Konsekwentnie zły projekt interfejsu - nie chodzi mi tylko o GUI. Szalone, niezidentyfikowane lub błędnie oznaczone flagi lub opcje CLI doprowadzają mnie do szaleństwa

To nie działa - lub udaje, że sytuacja, którą należy rozwiązać, nie powinna (lub nie istnieje), a zatem nie rozwiązuje tego

Matt Simmons
źródło
1

Dodałbym również, że współczynnik rezygnacji z kodu jest stały i wykonywany przez wiele osób, nie tylko kilka. Nie chcesz, aby jedna osoba rozwijała kod w niepełnym wymiarze godzin, kiedy jest podekscytowany swoim projektem, a potem się nim nudzi i pozostawia społeczności wsparcie. Drupal i Joomla to dwa dobre przykłady.

SQLGuyChuck
źródło
1

Jeśli patrzysz na oprogramowanie dla swojej firmy, aby je sprzedać, zmienić, itp. Najważniejszym aspektem jest licencja. Patrząc na włączenie busyboksa do routerów WLAN i postępując zgodnie z działaniami prawnymi, firmy myślą „open source = rób co chcesz”.

Kilka innych rzeczy: szukam również daty ostatniej aktualizacji i aktywnej społeczności, więc forum, może inne strony, które mają oprogramowanie jako temat.

buster
źródło
1

W systemie Linux sprawdziłbym, jakie oprogramowanie jest pakowane przez twoją dystrybucję. Pakowane oprogramowanie nie ogranicza się tylko do opensource / GPL - Ubuntu, Gentoo i SLES zawierają co najmniej oprogramowanie własnościowe na swoich listach pakietów. Chociaż nie ma gwarancji, że pakiety te będą działały tak skutecznie, jak podstawowe oprogramowanie w dystrybucji - ktoś zainwestował czas i wysiłek w przygotowanie pakietu.

jay_dubya
źródło
1

Patrzyłbym głównie na dojrzałość i aktywność. Jeśli wydaje się być wystarczająco dojrzały i wydaje się, że istnieje spora ilość aktywności (na przykład aktywność na forum lub wiki), to mogę czuć się całkiem dobrze. Wiem wtedy, że istnieje duża szansa, że ​​błędy zostaną rozwiązane i że mogę uzyskać pomoc w przypadku pojawiających się problemów. Wybrałbym aktywny projekt, który nie pasuje idealnie do moich potrzeb, zamiast projektu, który wydaje się być idealnym dopasowaniem, ale wydaje się martwy, każdego dnia tygodnia.

Jeśli chodzi o dojrzałość, to w dużej mierze zależy od zamierzonego zastosowania. Jeśli jest to coś, co muszę natychmiast wprowadzić w życie i nie można dopuścić do niepowodzenia lub problemów, dojrzałość będzie oczywiście bardzo ważnym czynnikiem. Jeśli mogę żyć z kilkoma dziwactwami i nie ma to większego znaczenia przy pewnym przestoju, wolałbym spojrzeć na przyszłe perspektywy.

Mikael Grönfelt
źródło