meu cliente quer 25% dos comentários no meu projeto atual, como reagir?
<p>desenvolvedor júnior aqui.</p><p>atualmente, estou trabalhando sozinho em um aplicativo da web para um grande cliente da minha empresa. comecei no mês passado. o cliente deseja pelo menos 25% dos comentários em cada um de seus projetos de software.</p><p>eu verifiquei o código de aplicativos anteriores e aqui estão minhas observações:</p><ul> <li>cada arquivo começa com um bloco de comentários (pacote, data da última atualização, nome da minha empresa e direitos autorais)</li> <li> <p>todas as variáveis ​​são comentadas com seus nomes <code>// nameofcustomer public string nameofcustomer</code></p> </li> <li> <p>todos os getters e setters são comentados</p> </li> <li>muito poucos comentários úteis</li> </ul><p>parece que os desenvolvedores colocam o máximo de comentários possível para atingir esse limite de 25%, independentemente da qualidade e utilidade. minha empresa me diz que "fazemos como o cliente deseja".</p><p>não falei diretamente com o cliente sobre isso. aqui estão os meus argumentos até agora:</p><ul> <li>linhas inúteis para ler e escrever (perda de tempo)</li> <li>os comentários às vezes não são atualizados (fonte de confusão)</li> <li>os desenvolvedores têm menos probabilidade de usar ou confiar em comentários úteis reais</li> </ul><p>qual o seu conselho sobre esse assunto? como devo lidar com a situação?</p>
<p>todas as outras respostas e comentários aqui realmente me impressionaram, porque são muito contrárias à minha primeira reação e muito contrárias à atitude que testemunhei em meus colegas de trabalho. então, eu gostaria de descrever uma abordagem alternativa, mesmo que apenas por ser <a href="https://en.wikipedia.org/wiki/asch\_conformity\_experiments">a voz dissidente</a> .</p><p>o princípio norteador desta resposta é "encantar o cliente". encantar o cliente não significa apenas atender às suas expectativas; significa entender suas solicitações tão profundamente que você pode interpretar o que eles dizem da maneira que querem e entregar acima e além do que eles pedem. outras respostas parecem ser guiadas pelo princípio da conformidade maliciosa, que considero repugnante; além disso, é uma prática comercial questionável, pois é uma maneira ruim de atrair clientes fiéis.</p><p>para mim, quando ouço o cliente dizer: "quero 25% de comentários", é o começo de um diálogo. para mim, está claro que a implicação aqui é "quero muito texto descritivo, para que os recém-chegados a essa base de código possam começar a funcionar rapidamente", não "quero que você adicione aleatoriedade em uma certa categoria sintática", como outras respostas parece estar pegando. eu levaria esse pedido a sério e pretendia escrever muitos comentários úteis e descritivos, orientando um recém-chegado à estrutura do código, apontando decisões de engenharia surpreendentes e descrevendo o raciocínio que lhes era introduzido, além de fornecer um inglês de alto nível descrições de seções de código complicadas (mesmo que não tenham nenhuma surpresa). essa intenção e entendimento é o <em> ponto de partida</em> da discussão - isto é, antes mesmo de começarmos a conversar. para mim, a implicação da solicitação é tão clara que nem precisa desse esclarecimento; mas se para você não está claro, é claro que você deve entrar em contato com eles!</p><p>ok, então para onde vai a caixa de diálogo se esse é o ponto de partida? a próxima parte da caixa de diálogo é assim:</p><ol> <li>eu esperaria que este fosse um esforço adicional sério, possivelmente em uma segunda fase do projeto, que está acima e além da produção da ferramenta que eles querem trabalhar. pode levar vários minutos de discussão para discutir esse processo e por que é um trabalho adicional, mas vou omitir aqui porque, como programador profissional, espero que você <em> saiba</em> quão difícil é faça bons comentários.</li> <li>"um esforço adicional sério" significa que podemos precisar de um orçamento mais longo e de um orçamento monetário maior; <em> ou</em> podemos precisar reduzir o orçamento do recurso; <em> ou</em> podemos precisar comprometer a qualidade e a quantidade dos comentários. esta parte vai ser um pouco de negociação. mas, na minha opinião, você deve ser muito franco quanto aos custos de realizar esse trabalho extra e garantir que seja um recurso tão importante para o cliente que ele esteja disposto a assumir esses custos. e se eles são - ótimos! você ganha tempo e dinheiro extras, e eles recebem comentários de alta qualidade. todo mundo ganha. e, se o recurso de comentários não for tão importante para eles, eles estão dispostos a perder a capacidade de exibir widgets ou a deixar o prazo chegar ao final do granuary, 20x6, e todos ganham novamente: obtêm o produto que desejam deseja e você não precisa gastar o esforço extra necessário para criar comentários de alta qualidade.</li> </ol><p>aqui é onde eu acho que o diálogo deve <em> não</em> ir:</p><ol start="3"> <li>não ameace o cliente com comentários de baixa qualidade. deixe-os ajudá-lo a escolher o nível de esforço que desejam e que estão dispostos a pagar. não prometa a eles 25% dos comentários e informe-os de que pretende cumprir essa promessa, gerando aleatoriamente a aleatoriedade após a construção do projeto.</li> <li>não esconda seus planos. não prometa a eles 25% de comentários e, em seguida, gere a aleatoriedade automaticamente sem dizer a eles que você fará. <em> quando</em> eles percebem (e não se), vocês dois perdem muito tempo: estão descontentes com o produto que adquiriram e você fica boca a boca negativa.</li> <li>não tente convencê-los de que não querem comentários. eles claramente querem comentários. discuta as compensações de várias abordagens: sim! discuta maneiras alternativas de tornar o iniciante da base de código amigável: sim! diga a eles que eles não sabem o que querem: eh, não. você quer trabalhar com eles para conseguir o que eles querem; entenda o que é isso e descubra a melhor forma de entregar isso a eles em um orçamento que eles aprovam, priorizando os recursos de que mais se preocupam se os recursos que eles têm são insuficientes.</li> <li>não dê desculpas sobre a dificuldade de escrever comentários. escrever código é difícil; código de depuração é difícil; escrever comentários é difícil. se fosse fácil, eles não estariam contratando você. basta pular as reclamações e ir direto ao ponto em que elas se importam, a saber, como o esforço extra necessário as afeta.</li> </ol>
usam como critério o usuário e não a resposta em si? muitos fazem isso. eu raramente faço perguntas, mas escolho com a melhor resposta mesmo, e se alguém responde igual, escolho a mais completa ou com maior número de votos positivos. <p>eu sugeriria ter duas áreas separadas - uma onde o usuário faz entradas descrevendo sua disponibilidade e outra em que o sistema exibe o resultado agregado.</p><p>essencialmente, isso replica a conversa que duas pessoas podem ter, fornecendo uma área para o usuário "falar" e outra para o sistema "refletir de volta" seu entendimento.</p><h3>entrada</h3><p>forneça uma área em que os usuários descrevam sua disponibilidade.</p><p>uma maneira de fazer isso seria permitir que eles fizessem uma série de declarações altamente estruturadas, mas em inglês.</p><ul> <li>estou disponível todas as terças e quartas-feiras</li> <li>estou disponível toda quinta-feira depois das 14h</li> <li>não estou disponível na última quinta-feira do mês</li> </ul><p>você pode permitir que os usuários os digitem diretamente ou forneça algum tipo de construtor simples.</p><h3>exibição</h3><p>ao lado da entrada de dados, forneça um calendário mostrando como as instruções do usuário definem sua disponibilidade. torne isso navegável, para que as pessoas possam olhar para o futuro (ou, talvez, o passado). se o usuário parar em um intervalo de tempo específico, mostre uma dica de ferramenta que descreve por que eles estão (ou não) disponíveis no momento.</p><ul> <li>o usuário aponta em um horário de segunda-feira.<br> sistema: <em>você não está disponível a qualquer momento às segundas-feiras</em></li> <li>o usuário aponta em um horário de quinta-feira de manhã.<br> sistema: <em>você não está disponível às quintas-feiras antes das 14:</em></li> <li>o usuário aponta na quinta-feira à tarde, perto do final do mês.<br> sistema: <em>você não está disponível nesta quinta-feira porque é a última quinta-feira do mês.</em></li> </ul><p>se o usuário clicar em um intervalo de tempo, você pode destacar as regras que contribuem para a disponibilidade naquele momento.</p> Vanderson Ferri



 

DIRETO AO PONTO: MARIA ESTÁ PERGUNTA É DIFÍCIL DE RESPONDER PORQUE GERALMENTE O PROPRIETÁRIO JÁ COLOCA UM VALOR A MAIS NO VALOR PREVENDO A PECHINCHA DO CLIENTE, SE FOR DE CONSTRUTORA OS VALORES DE TABELA GERALMENTE TEM DESCONTOS QUE CHEGAM EM UMA BOA NEGOCIAÇÃO NA CASA DOS 30% EM CIMA DA TABELA olá [@diegojf](/u/diegojf) atualmente não temos essa opção, somente temos a ativação de comentários no checkout onde o seu ciente pode colocar uma data para a entrega.

[ativando comentários no checkout](https://ajuda.lojaintegrada.com.br/personalizando-seu-layout/personalizando-dentro-do-painel/ativando-comentarios-no-checkout)

como ativar campo de comentários no checkout de minha loja? <p>tudo em ordem também, vamos lá:</p>
<ul><li>impactos:</li></ul>
<p>em alguns projetos pode haver uma grande necessidade de refatoração e configuração, pois, isso vai mudar a maneira como as importação e carregamentos estão sendo feitos.</p>
<ul><li>benefícios:</li></ul>
<p>separar os códigos em pequenas partes ai garantir uma maior performance do projeto, irá consumir menos banda de internet do usuário, trafegar menos informações na rede.</p>
<ul><li>tradeoff:</li></ul>
<p>mas, nem tudo são flores, em alguns momentos pode ser que não seja aconselhável essa separação.</p>
<p>uma vez que a gente baixou tudo, a aplicação irá funcionar normalmente, a mudança de telas acontecerá mais rápido.</p>
<p>quando separados em pequenos pedaços, o primeiro carregamento será mais rápido, mas, as mudanças de telas irão ter a necessidade de baixar os arquivos correspondentes para aquele novo pedaço, sendo assim, será necessário adicionar loaders ou algum indicador visual para o usuário.</p>
<p>as vezes pode trazer uma complexidade maior para o projeto também.</p>
<p>cabe a vocês (time) definir se faz sentido ou não e onde faz sentido ou não faz.</p>
<ul><li>mostrar resultados:</li></ul>
<p>infelizmente não posso, são projetos internos do meu trabalho e não posso mostrar.</p>
<p>mas já pegamos páginas de 13mb de <em>download</em> e baixamos para 3mb, por exemplo.</p>
<p>espero ter ajudado.</p> <p>algumas pessoas me acusam de usar afirmações de largura zero o tempo todo:</p><pre><code>resultstring = regex.match(subjectstring, @"(?&lt;=\().+?(?=\))").value; </code></pre><p>mas eles fazem exatamente o que você deseja. não capture o que não deseja capturar.</p> olá rafael,quando for construir elementos html na página, uma dica é você inserir diretamente no corpo, para evitar o uso excessivo do echo e também porque não é uma boa prática de programação o jei... <p>a substituição do controle de um usuário pelo computador sempre será uma interrupção e, muitas vezes, será percebida como uma invasão do fluxo de trabalho desse usuário. o site "não deveria" ter o controle de nossos computadores, portanto, exercer esse controle será pelo menos um pouco alarmante.</p><p>dito isso, você aborda um tópico realmente importante, sendo a importância de informar ao usuário que sua entrada é inválida antes de preencher um conjunto inteiro de campos e enviá-los.</p><p>a abordagem que eu achei menos intrusiva, mas que fornece a resposta mais rápida, é o fluxo abaixo.</p><p><img src="https://i.stack.imgur.com/vxahu.png" alt="alt text"></p><p>essencialmente, espere que eles preencham seu primeiro campo e, à medida que clicam/separam um novo campo (ou um campo que foi invalidado), verifique o campo que acabou de ser concluído. se o campo que acabou de ser preenchido for válido, imprima um ícone "bom" discreto ao lado dele (verde, marca de seleção, sorriso no rosto, você entendeu). se falhar nas regras de validação, imprima discretamente um ícone "ruim" (vermelho, "x" etc.) e uma linha curta sobre o que falhou.</p><p>mas lembre-se, não interrompa o fluxo de trabalho:</p><ul> <li>sem pop-ups</li> <li>sem sobreposições</li> </ul><p>quando terminarem o campo para o qual foram movidos, eles voltarão ao campo inválido ou seguirão em frente e voltarão mais tarde. de qualquer forma, eles verão que têm uma edição para fazer, mas podem fazê-lo em seu próprio tempo.</p><p>no final, eles terão um formulário completamente válido antes de enviá-lo, o que significa</p><ol> <li>eles só terão que enviar uma vez</li> <li>eles não perdem tempo ficando bravos ou frustrados quando a submissão "falha"</li> <li>eles vão gostar mais do seu site</li> <li>todo mundo vai ter bolo</li> </ol> <p>este é um assunto amplamente debatido. uma das melhores maneiras pelas quais eu já vi isso explicado é a partir da apresentação <a href="http://www.scribd.com/doc/32311867/design-for-developers">design para desenvolvedores: fazendo com que seus front-end sugem menos</a> by idan gazit.</p><p>este teve o seguinte slide: <img src="https://i.stack.imgur.com/bvose.jpg" alt="alt text"> este é um texto de 16 pixels em uma tela normal e um texto de 12 pontos em um livro. a mensagem é que 12pt é excelente para um livro, mas geralmente também é mantido muito mais próximo do leitor do que de uma tela. levando em consideração a distância, os 16 pixels na tela e os 12 pontos no livro parecem ter o mesmo tamanho. <strong> 12pt no papel = 16px na tela </strong></p><p>existem todos os tipos de exceções, nas quais o texto menor é preferido. mas, para otimizar a legibilidade de textos mais longos, concordo com 16px.</p><p>é recomendável alterar as unidades escalonáveis ​​como <em> em</em> ou <em>%</em> do que as unidades de tamanho fixo como <em> pt</em> ou <em>px</em>. leia mais: <a href="http://kyleschaeffer.com/development/css-font-size-em-vs-px-vs-pt-vs/">tamanho da fonte css: em vs. px vs. pt vs. percent</a> </p> <p>hudson, tudo bom?</p>
<p>os critérios de aceitação são aqueles utilizados para verificar se o que foi descrito pelo po na história está de acordo com o incremento entregue e o valor esperado para o negócio. </p>
<p>além dos refinamentos a sprint planning é uma cerimônia na qual a história é mais detalhada até chegar no critério de ready o que valida uma história a entrar no backlog da sprint. mesmo depois desses processo ainda podem sim haver problemas de entendimento que precisam ser alinhados com o po. ou seja, a equipe não pode acrescentar sozinha critérios de aceite na história visto que eles são critérios ligados ao negócio. </p>
<p>o mesmo falando de quando a equipe entende que não irá atingir a meta da sprint, a negociação deve ser feita com o po. apenas na ausência desse a equipe tem autonomia para tomar a melhor decisão possível, e na ausência permanente deve-se conversar com o po e em alguns casos trocá-lo.</p>