Mi sono imbattuto in una situazione più volte nella mia carriera quando i precedenti sviluppatori hanno fatto qualcosa di divertente.
Faranno una funzione di controllo (pulsante) radicalmente diversa a seconda di come è stato aperto lo schermo o di qualche altra condizione nei dati (ad esempio, salvare i dati in un file txt, fare un ricalcolo di qualcosa e memorizzarlo in un campo del database). Se sei fortunato, hanno cambiato la didascalia sul pulsante quando cambiano la funzionalità.
Li ho visti anche cambiare il layout dello schermo (nascondere i controlli, rinominarli, mostrare sezioni completamente nuove). Anche in questo caso, spesso cambiano anche la didascalia della finestra.
Questo sembra essere un anti-pattern, perché rende difficile per i futuri sviluppatori capire quale controllo / controllo uno qualsiasi fa senza percorrere a piedi il codice e il testing. E la tentazione che stanno cadendo per quello che pensano di risparmiare tempo per creare un secondo modulo creando uno che funziona in modo diverso per condizioni diverse.
Quale principio viene violato qui? Conosco il principio di responsabilità unica; ma non sembra essere perfetto. Penso che sia più vicino a "non farlo perché confonde il diavolo degli utenti", ma non sono sicuro che ci sia qualcosa di formale a cui possa puntare.