Nie musisz mieć dogłębnego zrozumienia całego projektu, aby móc go utrzymać. Zwykle dzięki dużemu, złożonemu oprogramowaniu ludzie będą mieli swoje własne „obszary”, którymi się opiekują i będą mieli jedynie „przechodzącą” wiedzę na temat reszty systemu.
SQLite jest w rzeczywistości stosunkowo niewielki w skali „dużych projektów oprogramowania”, ale jeśli spojrzysz na coś takiego jak system operacyjny Windows, będziesz mieć ludzi, którzy po prostu pracują na jądrze, ludzi, którzy po prostu pracują na powłoce, ludzi, którzy po prostu pracują w Internet Explorerze, ludzie, którzy pracują tylko w Menedżerze okien itp. Ktoś, kto pracuje w „powłoce”, nie będzie w stanie naprawić błędu w jądrze po upadku kapelusza.
Korzyści płynące z ewolucji tych projektów z czasem: nie zawsze zaczynały się tak skomplikowane. Oznacza to, że nowy programista może być zwykle „przeszkolony” przez bardziej doświadczonych programistów.
Gdy dołączysz do dużego zespołu programistów, otrzymasz szczególny aspekt projektu, nad którym chcesz pracować (być może błąd lub nową funkcję) i będziesz mieć innego programistę, który będzie „kumplem” przez kilka pierwszych iteracji. Twój kumpel dobrze rozumie obszar, w którym pracujesz i może pomóc ci znaleźć drogę.
W przypadku projektów typu open source, takich jak SQLite, jest to trochę trudniejsze, ponieważ istniejący programiści nie mają motywacji do „szkolenia” nowych programistów. Przekonasz się, że jesteś trochę bardziej samodzielny. Ale nadal możesz znaleźć pomoc na forach programistów lub listach mailowych (np. Po prostu zadając pytanie typu „Chciałbym wdrożyć taką i taką funkcję” lub „Znalazłem błąd XYZ, gdzie mam zacząć?” I prawdopodobnie otrzymasz jakaś forma pomocy.