Zależy kim jest klient. Jeśli klient jest końcowym użytkownikiem systemu (np. dostaje GUI + jakieś aplikacje webowe), to najlepiej trzymać go jak najdalej kodu źródłowego. Gość, który się miesza w techniczne aspekty projektu, zwykle nie mając pojęcia o co chodzi, to tragedia.
Natomiast jeśli klientem jest inna firma, dla której robimy biblioteki / wystawiamy jakiś interfejs, to czasem dobrze jest się spotkać i obgadać również niskopoziomowe sprawy typu: jak to jest/będzie zaimplementowane. Choć i tak ważniejsze jest dobre dospecyfikowanie interfejsów. Natomiast pozwolenie na "mieszanie sobie w kodzie" to już zbyt daleko posunięta poufałość.
Hmm, z drugiej strony... Ostatnio pracujemy z taką jedną firmą (my jesteśmy klientem), która ma problemy z dostarczeniem systemu działającego wg założeń. Stop, źle. Ma problemy z dostarczeniem systemu działającego w ogóle. Zwykle przy trzeciej poprawce, 2 miesiące po terminie udaje im się dostaczyć coś używalnego, choć bardzo dalekiego od specyfikacji, na którą się sami zgodzili. I aż się prosi, żeby wziąć ten ich kod i w nim namieszać [diabel]. Albo lepiej przepisać od nowa.
Jeszcze inna sprawa to audyty. Klient może chcieć mieć pewność, czy np. aplikacja, którą kupił jest bezpieczna. Wtedy specjalistyczna ffirma powinna mieć wgląd w kody źródłowe, ale nie po to by tam mieszać, tylko by zasugerować odpowiednie poprawki.