quando algo não funciona como planejado (como por exemplo, não funcionou como planejado por algum motivo), eu corrijo o problema do meu lado e depois enviei o modelo de volta
Essa é a raiz dos seus problemas. O fluxo do design deve sempre ser Designer to Developer
e nunca invertido. Revisões e alterações deveriam ter sido feitas pelo designer e depois enviadas a você para implementação no site. Você sempre pode fazer correções rápidas, mas tente aceitar que essas correções rápidas são apenas temporárias. O designer precisa voltar aos seus projetos e descobrir a solução adequada. Ele então envia a mudança para você, e se for igual à sua solução rápida, será ótimo, caso contrário, você atualizará os designs dele.
Ele envia o modelo completo para mim (a exportação HTML do Pinegrow)
Não fique viciado em receber HTML com o qual possa trabalhar. É melhor se você implementar a tecnologia do site (Bootstrap, CSS, jQuery, React, PHP, etc .. etc .. etc ..) da maneira que você precisar. Você então reproduz os desenhos dele usando essas ferramentas. Se o HTML que ele fornece é um começo rápido , é ótimo, mas mais tarde, à medida que o projeto cresce, não será de muita utilidade. Você precisará fazer as alterações sozinho, porque apenas você entende o seu mecanismo de modelagem (por exemplo, visualizações do CakePHP, modelos, plugins, componentes, etc. etc.)
Esse processo, como se poderia imaginar, é minuciosamente lento e ineficiente.
Sempre foi assim. Designers não são programadores. Eles levam um tempo para descobrir o que funciona melhor para o usuário e, às vezes, cometem erros. Eles não entendem conceitos como componentes, estruturas e outros. Como programador, você precisa falar com seu designer e compartilhar como eu implemento o que você cria .
O designer está preso no meio. Por um lado, eles devem agradar às necessidades do programador e, por outro lado, devem agradar às necessidades do usuário.
Então, minha pergunta é: como podemos tornar esse processo mais suave?
Descobri que sentar-se fisicamente ao lado do designer e da programação realmente ajuda na comunicação. Se vocês dois estão trabalhando remotamente, mantenha o horário de funcionamento em funcionamento por alguns dias. Isso realmente ajuda a acelerar as coisas.
Eu já vi muitas coisas sobre isso que devemos usar React e RESTful e o que não, mas queremos usar o CakePHP para isso.
O CakePHP é um dos melhores frameworks do planeta (divulgação completa, estou no time principal do CakePHP).
Cake é uma estrutura de desenvolvimento para coelhos, na qual os recursos são projetados para criar sites rapidamente. Sei que isso soa como um discurso de vendas, mas é assim que é classificado. Existem muitas outras estruturas que são classificadas como coelho. Java seria um exemplo de uma estrutura que é mais corporativa que um coelho. Se você estivesse usando esse idioma, eu recomendaria mudar. Desde que você está usando o CakePHP. Eu diria que você deveria ficar com isso.
O CakePHP cria um bom servidor de back-end se você precisar de APIs RESTful.
React / Angular / Vue são todos os frameworks de front-end populares e populares, mas eles não existem há muito tempo. O CakePHP, por outro lado, existe há mais de 13 anos. Meu ponto não é uma crítica. É o fato de que essas bibliotecas JavaScript têm uma vida útil curta. Em 5 anos, todos estaremos falando sobre algo novo, mas eu suspeito que o CakePHP ainda estará por aí.
Então eu digo. Use React / Angular / Vue agora enquanto estiverem quentes, mas não se comprometa com eles. Algo novo e melhor virá em breve. Acho que agora vivemos em um mundo onde você não pode criar bons sites sem eles.
Algumas pessoas poderiam me orientar sobre alguns recursos úteis sobre isso?
Os pedidos de listas estão fora do tópico aqui. Desculpe.
EDIT :
Perdi a parte sobre o rastreamento de alterações de design.
Peça ao seu designer que salve sua saída HTML no BitBucket (eles têm repositórios particulares gratuitos). Você pode acompanhar e fazer comparações usando o site do BitBucket. Sempre que o designer faz uma grande alteração, ele adiciona uma nova ramificação com um número de versão.
Deve ser relativamente fácil para ele fazer isso, e isso permitirá que você tenha um lugar para comentar sobre as alterações. Por exemplo; ele pode fazer uma solicitação pull para atualizar o repositório no qual você executa uma revisão das alterações antes que elas sejam mescladas.