Ao criar um aplicativo não trivial, é melhor se concentrar em fazer as coisas funcionarem rapidamente e em tomar atalhos no código, como misturar a lógica do modelo com suas visualizações, quebrar o encapsulamento - o cheiro típico do código? Ou, é melhor você dedicar um tempo adiantado para construir mais arquitetura, construí-la corretamente, mas correndo o risco de que todo esse código extra não seja usado, já que seu design é bastante fluido e você pode ter que jogá-lo fora se o feedback causar ir em uma direção diferente?
Por contexto, estou criando um aplicativo de desktop. Sou o único desenvolvedor e faço isso em part-time, pois tenho um emprego diário. Agora, para o trabalho, tento fazer as coisas da maneira certa, com a programação permitida. Mas, para este projeto, que espero se transformar à medida que receber feedback das pessoas, não tenho certeza de que seja a abordagem correta. Passei várias horas esta semana colocando em prática o design de um Model View Controller para comunicar alterações no modelo à visualização. Isso é ótimo em geral, mas não tenho certeza se preciso de várias visualizações para exibir os dados e sei que poderia ter as coisas exibidas mais rapidamente sem a arquitetura adicional. Com cerca de 10 a 15 horas por semana para gastar no projeto, acho que levará muito tempo para criar algo que eu possa demonstrar se seguir as boas práticas de software. Eu sei que meus usuários venceram ' Não importa se eu usei MVC internamente, eles só querem algo que resolva seu problema. Mas também estive na situação em que você incorreu em tanta dívida técnica por atalhos que o código é incrivelmente difícil de manter e adicionar novos recursos. Eu adoraria ouvir como outras pessoas abordam esse tipo de problema.