Wielu zdolnych programistów uczestniczy w nieefektywnych, źle  prowadzonych projektach. Inni muszą utrzymywać kod, który właściwie  nigdy nie powinien ujrzeć światła dziennego. Źródeł tego rodzaju  trudności jest wiele: programowanie samo w sobie jest niełatwym  zagadnieniem, a tworzenie funkcjonalnych aplikacji najczęściej wymaga  współdziałania wielu osób. Sprawia to, że kod budujący aplikację szybko  zwiększa swoją złożoność, staje się niezrozumiały i bardzo trudny w  utrzymaniu. Na szczęście te problemy zostały dostrzeżone i obecnie mamy  wiele sposobów ich rozwiązywania.
Ta książka jest przeznaczona dla doświadczonych programistów, którzy  chcą zdobyć lub pogłębić wiedzę o metodologiach i dobrych praktykach  tworzenia złożonego oprogramowania. Stanowi interesująco napisany zbiór  heurystyk i technik ułożonych w kolejności stosowania podczas rozwijania projektu programistycznego. Omówiono tu między innymi listy kontrolne,  TDD, rozdzielenie poleceń i zapytań, Git, złożoność cyklomatyczną,  przezroczystość referencyjną, wycinki pionowe, refaktoryzację zastanego  kodu czy programowanie typu outside-in. Pokazano również, jak utrzymać  właściwe tempo pracy podczas dodawania funkcjonalności, jak rozwiązywać  problemy optymalizacji, enkapsulacji, a także projektowania API i testów jednostkowych. Poszczególne zagadnienia zostały zilustrowane kodem  przykładowego projektu napisanego w C#, zrozumiałego dla każdego, kto  zna dowolny język zorientowany obiektowo.
Dzięki książce zrozumiesz, jak:
  - wybierać sprawdzone procesy
   - tworzyć listy kontrolne ułatwiające polepszenie wyników
   - unikać ""paraliżu analitycznego""
   - przeciwdziałać degradacji kodu i niepotrzebnej złożoności
   - stosować lepsze techniki modyfikacji kodu i rozwiązywania problemów
   - skuteczniej godzić wymogi wydajności i bezpieczeństwa
 
Celem nie jest pisanie kodu. Celem jest funkcjonalne oprogramowanie!