Publicado em 1 comentário

12 práticas de desenvolvimento ágil de software: sem enrolação e sem atalhos

Por Hélia Scremin de Souza Germano Nogueira

Se você nos acompanha há algum tempo, já deve estar bem cansado de ouvir o prof. Marcelo Nogueira falando sobre a crise do software e sobre filosofia ágil.

Nesta semana, a CTA traz um texto baseado em uma entrevista com ele para esclarecer por que o movimento ágil não é nem nunca foi sinônimo de bagunça, de desordem e muito menos de caos. Infelizmente para quem quer trabalhar com seriedade, agilidade tem sido tudo isso na prática em muitos lugares. Temos ouvido de muitos profissionais de vários níveis – nossos alunos e amigos – que a documentação ficou de fora. Métricas, modelagem e planejamento então, são coisas abominadas em muitos projetos “ágeis” por aí.

Não sabemos quanto a você, mas para nós, isso é de arrepiar os cabelos. A gente fica aqui pensando se as pessoas não leram o manifesto ágil, ou se interpretaram errado. Ou o pior, que a gente não quer acreditar: será que tem gente mal-intencionada se aproveitando dos softwares cheios de bugs gerados em meio ao desenvolvimento caótico?

Breve histórico

O termo crise do software começou a ser usado nos anos 1960. Nada novo, não é mesmo? Nessa época, informática era mato. Tinha que abrir clareira com facão para criar soluções para tudo. Brincadeiras à parte, era muito diferente do que conhecemos hoje. Como era uma área nova que buscava automatizar as informações, usava-se o conhecimento disponível: ciência matemática. Guarde essa informação!

Nos anos 1980, Roger S. Pressman, autor pioneiro em engenharia de software, reafirmou os desafios da área. Os produtos de software eram entregues com defeitos, fora do prazo, sem atender às necessidades do cliente. Nada parecido com o que acontece hoje (contêm ironia). E a discussão sobre os desafios e insucessos em programação ficou ainda mais forte em 1995, com o lançamento do Chaos Report.

Em meio a esse tumulto de fim de século, a solução era tornar os processos de trabalho engessados, com mil regras, documentação nos mínimos detalhes, muito foco em resultados, hierarquias e projetos pouco humanizados.

Equilibrando pratos

Para tentar melhorar as coisas, em 2001, surge o Manifesto Ágil, um texto curto e de fácil entendimento. O manifesto trazia premissas de desenvolvimento de software para tentar diminuir os problemas tão conhecidos desses profissionais. Mas isso você já deve saber. (Se não sabe, leia o texto original aqui)

O que pouca gente entendeu é que o manifesto e as práticas ágeis surgiram com intuito de equilibrar o jeito que as pessoas gerenciavam o trabalho com sistemas de informática. A percepção que o manifesto ágil traz é a de que não dava para deixar tudo no amadorismo. A agilidade quer acabar com o pensamento de que programar é algum tipo de trabalho artístico, artesanal. Ao mesmo tempo, o agile, no termo em inglês, traz o senso de colaboração, flexibilidade, entrega contínua e humanização do processo de programar.

Em todas as sentenças do manifesto, lemos “mais que”: 

E no final do texto, os autores ainda enfatizaram que veem valor nos dois lados. Mas fizeram questão de destacar que os primeiros itens são os que eles mais querem ver à frente do trabalho.

Alguém falou que não precisava documentar? Não! Que podia inventar um preço para o projeto, chutar quantos profissionais estariam na equipe? Também não. Então por que raios ainda tem gente fazendo software de qualquer jeito, sem respeitar normas, modelos, metodologias?

O segredo está no equilíbrio

Em uma conversa madrugada adentro, o prof. Marcelo Nogueira desmistificou algumas confusões que foram feitas na hora de interpretar o manifesto ágil. Eu traduzi em texto e imagens para não ter mais dúvidas do que dá para fazer software com muito profissionalismo sem deixar de ser ágil.

A ideia é aliar o melhor dos dois extremos para obter sucesso. Continue lendo para entender melhor.

Como aliar indivíduos e processos

O foco dos procedimentos ágeis deve estar nas pessoas e não na burocracia. Isso não quer dizer que você não precisa organizar seu trabalho. Muito pelo contrário, organizá-lo vai deixar o seu serviço ainda mais fácil a longo prazo. Isso também vai propiciar ambientes melhores para você focar no que importa: as partes envolvidas, ou stakeholders.

Algumas maneiras de deixar os processos mais leves e as pessoas em destaque:

  1. Faça o trabalho ser divertido (para você e seu time). Use cores, jogos. Seja criativo. Você vai descobrir por que é tão importante gerir o projeto com equilíbrio
  2. Adote técnicas que você gosta para modelar e projetar (ex. design thinking, design sprint, BPMN, UML) em vez de pular essa etapa
  3. Use o que está à sua disposição. Nem sempre você precisa criar do zero. Já existem, componentes, serviços, micro serviços para reuso, suficientes para executar qualquer tipo de trabalho.
  4. Pare de disfarçar seu cascágil. No desenvolvimento de software, a clareza dos métodos define o sucesso da implementação. Os métodos ágeis são suficientemente claros para solucionar as questões que surgem durante as sprints. Se você fica aguardando o trabalho de outras pessoas para poder executar o seu, isso não é ágil, é cascata.

Como entregar software sempre e com boa documentação

A entrega de software deve ser frequente e funcional. Não adianta entregar algo com bug e achar que está tudo bem e depois fazer o time sofrer para consertar. A crise do software existe porque ainda tem gente demais achando “normal” entregar programas defeituosos. Qual o efeito dos erros a longo prazo? Quantos danos podem ser causados em cadeia por software que não atende às necessidades? Trabalho a mais, demissões, retrabalho, vidas dentro do squad e atingidas pelo negócio do cliente, direta e indiretamente. Tenho certeza de que você não quer essa encrenca para você.

Portanto, para fazer um software continuamente bem-feito:

  1. Não use o ágil como desculpa para fazer algo meia boca. Lide com a construção de software como a sua obra de engenharia perfeita.
  2. Documentação não é relatório do que foi construído. É o seu plano do que deve ser implementado. Você não precisa engessar os incrementos por causa de um ou outro documento. Se você fez um plano e o documentou corretamente antes de iniciar a codificação e implementação, terá tudo à mão para ser ágil.
  3. Adapte a documentação. Por exemplo, o RUP adaptou-se ao AUP (RUP ágil). Atividades antes prescritivas foram substituídas por histórias com modelagem, somente.
  4. Eleja os artefatos suficientes para tornar o seu processo transparente. Outra pessoa deve saber de onde continuar ao pegar o seu projeto / código.

Como colaborar com o cliente e ter boas negociações

A profissional que negocia os termos do contrato normalmente não é a mesma que desenvolve. Porém, ela deve estar extremamente alinhada com o time de desenvolvimento. Do contrário, a equipe estará em maus lençóis e terá um péssimo clima para trabalhar. Dessa forma, em conjunto, todos devem pensar no melhor para o cliente desde o princípio:

  1. Abra mão de entregar com bug para depois consertar e poder cobrar pela manutenção do que foi mal planejado / executado.
  2. Escopo, custo, tempo e qualidade. Tenha em mente as necessidades do projeto.
  3. Calibre suas métricas de acordo com as necessidades do cliente. Não abaixe a régua.

Como entender que o plano requer adaptações

O planejamento é o começo de qualquer grande projeto. Sem essa etapa, certamente haverá problemas no caminho. Porém, cabeças abertas trabalhando em conjunto poderão tomar as melhores decisões a fim de fazer todo o necessário para ajustar o que surgir durante a execução do plano. Parece utópico? Tente isso:

  1. Não seja teimoso. Aceite mudanças, pois elas acontecem o tempo todo onde você menos espera. Abra mão do controle e desfrute do seu próprio trabalho. Afinal, você o escolheu. Abra mão do estresse curtindo a jornada, por mais maluca que ela pareça.
  2. Você pode dar qualquer nome para as partes do projeto, mas todas têm que estar lá. Adaptabilidade não quer dizer que você não terá um plano inicial, mas que terá flexibilidade para mudar uma coisa aqui e outra ali, se necessário.

E agora, o que eu faço?

Falamos apenas das sentenças iniciais do manifesto. Porém, com uma leitura atenta, fica fácil compreender que elas resumem os doze princípios que vêm na sequência. Se você tem dúvidas, leia tudo mais algumas vezes até o ágil real dominar a sua mente e a sua prática diária.

A agilidade nunca se propôs a acabar com a seriedade e complexidade desse trabalho. A base da nossa expertise é a engenharia: processos, estimativas e métricas. É um trabalho intelectual baseado em muito raciocínio matemático, como dissemos lá no início do texto. As práticas ágeis servem para ajudar o profissional a estimar tempo, custo, qualidade, esforço e outras variáveis a partir da análise dos seus próprios dados históricos.

Portanto, honre o seu trabalho com o melhor dos seus esforços. Use a agilidade a seu favor com excelência. E lembre-se: norma é aquilo que se deve fazer. Método é o caminho. Metodologia é o estudo de como fazer. Estude sempre, renove-se. E conte conosco para iluminar o seu caminho profissional.

O seu próximo nível

Tudo o que falamos aqui é a linha mestra da nossa pós-graduação em Engenharia de Software, em parceria com a Universidade Paulista (Unip) que está com matrículas abertas somente até o próximo dia 8.

Se você quer fazer parte da solução e ser um Engenheiro de Software ágil de verdade, agende agora a sua entrevista clicando aqui. Você pode começar a mudar o rumo da sua carreira ainda este ano.

Publicado em

Como |Softwares| Podem Gerar Prejuízo na Sua |Empresa|

Software deveria ajudar, mas só quando o projeto e a programação são bem feitas. E disso nós entendemos.

O que está acontecendo?

Podia ser meme, mas esse print é real. Foi hoje mesmo, há apenas algumas horas.

Não é de hoje que estamos penando para encontrar empresas especializadas em limpeza. 

Temos visto maus exemplos em vários nichos, entre produtos e serviços. E, para nós é triste perceber que o “sistema” tem sido a justificativa. Afinal, nosso DNA está na nossa história de mais de 30 anos formando profissionais de desenvolvimento e engenharia de software.

No caso acima, enviamos mensagem pelo chat do site. Em 15 minutos, o sistema retornou com um time out por falta de interação. Isso normalmente acontece quando o cliente fica muito tempo sem responder. Mas dessa vez, quem não interagiu foi a empresa. Curioso, no mínimo! O mais irônico foi o título da janela: “facilitador online”. E que tal o rodapé? “Conectando pessoas”. (Risos)

Em outra plataforma, tivemos que remarcar e cancelar as diárias algumas vezes. Quando realmente deixamos correr a reserva, com profissional designada, confirmação pelo app conferida na véspera… surpresa! Diária cancelada. Ficamos perplexos. Quando o cliente quer desmarcar, tem que fazer com 24h de antecedência. 

Nesse caso, não recebemos qualquer aviso, por app, e-mail, SMS, nada. A resposta da empresa: “nosso sistema entendeu que você estava querendo cancelar o serviço e fez isso automaticamente”. Então pedimos um novo agendamento avulso. E, adivinha!? Também foi cancelado unilateralmente pelo “sistema”, sem nenhum aviso. Desistimos de contratar a empresa.

Como virar a chave?

Acima de tudo, cuide bem da sua empresa. Esteja atento e presente para o que acontece em todos os âmbitos. E aqui vai uma lista de atitudes que pode virar a mesa a seu favor:

  1. Ouça os clientes insatisfeitos. Estimule o feedback por parte dos clientes. Uma escuta ativa pode mudar o rumo dos negócios. 
  2. Analise os dados como se procurasse ouro em uma mina. Eu ousaria dizer que nos comentários negativos tem ouro, diamante e muito mais riqueza para qualquer negócio crescer.
  3. Experimente o sistema que está atendendo o seu cliente. Simule um atendimento normal como se você fosse um deles. Se coloque no lugar dele.
  4. Pare de acreditar que só porque pagou pelo software, está tudo ok. Nem se convença do sucesso só porque alguém garantiu que seria bom. A responsabilidade é sua. Afinal, é a sua empresa.
  5. Abra mão da ilusão da tecnologia. “Ah, mas eu tenho Inteligência Artificial trabalhando dia e noite para otimizar meus resultados”. E você conferiu se ela está configurada adequadamente às suas necessidades e às dos clientes? IA também requer configuração.

Finalmente, adote ferramentas tecnológicas, mas não se vislumbre. Software não é a solução em si. Ele não faz nada sozinho. Precisa de humanos para pensar, planejar, programar. E também para usar adequadamente. Do contrário, será apenas mais um gerador de caos. E, pior: você terá de treinar seu time para criar desculpas para os erros do sistema em vez de focar na excelência do produto ou serviço que você deveria estar entregando.

Moral da história

“Entre pessoas e sistemas, quem é que está mandando em quem”? É uma pergunta que nós fazemos muito. Mas não gostaríamos de responder. Infelizmente, o “sistema” anda tendo mais moral do que as pessoas. Temos visto humanos robotizados por rotinas como se fossem sistemas. Gente defendendo softwares acima das pessoas. Pessoas terceirizando a responsabilidade por softwares mal projetados para os usuários e perdendo dinheiro por isso. 

E isso está nos incomodando. Por isso, nos mantemos firmes no propósito de formar e capacitar pessoas em soft e hard skills, com pensamento crítico a partir do ensino de princípios profissionais. Acreditamos que, dessa forma, podemos contribuir para a geração e incremento de tecnologias que aprimorem a condição humana.

Em nosso horizonte enxergamos que a solução está em unir esforços entre profissionais e gestores. Acreditamos que a tecnologia e os negócios provêm de pessoas engajadas com a excelência.

Somos uma escola com oportunidades de capacitação em diversas disciplinas das áreas de Sistemas de Informação, Análise e Desenvolvimento de Software e Inteligência Artificial com cursos livres, mentorias e pós-graduações.

Somos consultores de empresas. Somos mentores de profissionais e empresários. Somos aliados de quem está aberto a ser parte da solução e não do problema. Somos a CTA.

Envie uma mensagem para saber mais.

Publicado em

Como O |Atendimento| Pode Ser A Falta De Alma do |Negócio|

Você já culpou o cliente por um erro de um funcionário ou sistema? Como chegar ao atendimento de excelência?

Nós da CTA presenciamos isso na pele, como clientes. E, como mentores, queremos compartilhar as melhores práticas.

Confira nosso comentário:

Por 

Hélia Scremin de Souza Germano Nogueira

Costumo insistir com alunos e mentorados que, para obter sucesso na carreira e nos negócios, precisamos ouvir atentamente nossos clientes e saber cada detalhe das necessidades deles. Afinal, uma empresa só existe para preencher essa lacuna com alguma solução. E, se você é empregado, o seu trabalho existe justamente com esse propósito, seja diretamente no atendimento ao cliente ou indiretamente.

E toda vez que falo isso, vejo uma grande expressão de interrogação no rosto e nas atitudes deles. Não é apenas sobre entender o problema do cliente, mas de se conectar genuinamente.

E isso começa no dia a dia. Seja mais apaixonado pelo cliente do que pela solução da empresa ou pelo seu próprio trabalho. Ao atender um cliente, pergunte mais, fale menos do produto e deixe-o falar do que importa para ele. Com o tempo, você vai descobrir que essa escuta contém ouro. Parece complicado, mas é apenas sobre ser humano e praticar algo esquecido por aí: empatia.

Experiências “mágicas”

Temos visto muitas situações em que o mínimo não está sendo feito. Algumas ocasiões nos deixaram perplexos com a desconexão das pessoas com outro ser humano e nos fizeram questionar como ainda podem haver empresas funcionando dessa maneira.

Uma academia tinha a prática de dar boas-vindas aos alunos com uma plaquinha. Cheguei e estava escrito Paula. Brinquei com o professor e ele disse que ele não mudou pois não era função dele. Totalmente desconectado do pertencimento ao local de trabalho. Em qualquer formação de funcionários que se preze, o lema é “os problemas da empresa são problemas de todos”. Teria sido mais fácil esconder o letreiro do que pagar o mico de dar boas-vindas à aluna errada.

Em outra academia, muitos meses depois, a recepcionista estava ausente e meu nome não constava na agenda. Detalhe: sempre marco o mesmo horário que meu marido, fato já sabido por funcionários e professores. O nome dele estava na agenda e ninguém estranhou. Detalhe 2: a tal pessoa agendada não estava no local e já havia passado o horário de tolerância. A professora olhou pra minha cara, validou meu check-in (garantindo o pagamento para a escola) e disse que não ia me atender porque não estava na agenda. Escolheu as outras alunas que estavam com nome na lista e assistindo à cena. Virou as costas sem nem nos dar chance de argumentar. O outro professor, que já nos conhecia, contornou constrangido a situação e pediu para eu enviar a confirmação de reserva pelo whatsapp para a escola poder comunicar o problema de integração de sistemas. Ele fez o que ela poderia ter feito gentilmente e evitado o imbróglio.

Ainda uma última situação, repetida em inúmeros atendimentos presenciais e virtuais: “nós enviamos o e-mail, você não viu sua caixa de spam”; “o sistema enviou automaticamente”, “você não recebeu a mensagem no whatsapp porque não adicionou o contato à sua lista”. Traduzindo em miúdos: tudo culpa do cliente. Isso pode até ser verdade, mas é realmente necessário ser agressivo?

O que está errado e o que fazer

Onde foi parar o pessoal do “o cliente sempre tem razão”? Óbvio que tem muitas vezes que o freguês está errado, mas não precisamos iniciar a violência pra tentar defender o quê? A empresa? A perfeição da equipe? Ou pior, o sistema?

Esqueceram de contar pra esse pessoal que sistemas falham e que a conferência também faz parte do trabalho, mesmo quando a empresa é automatizada. Inclusive, se os próprios sistemas informatizados trabalham com redundância a fim de reduzir falhas, por que nós, humanos, não deveríamos?

A melhor maneira de responder a um cliente é perguntando. Acusar e apontar dedos não é jeito de se comunicar em nenhuma relação, nem dentro nem fora de casa. A exemplo da CNV, Comunicação Não-Violenta, existem inúmeras técnicas e teorias de comunicação eficaz para minimizar conflitos e otimizar acordos.

E, se você pensa em se destacar na sua profissão, comece melhorando a sua comunicação e tornando-a mais empática. Eu raramente vi pessoas sendo demitidas porque não davam conta de algum requisito técnico, mas já vi muitas perdendo emprego por tratarem mal clientes e colegas.

Riscos e responsabilidades

Essas situações me fizeram lembrar de um discurso de Sam Walton, fundador do Wal Mart:

Samuel Moore Walton, fundador da rede de hipermercados Wal Mart. Fonte: Wikipedia

“Eu sou o homem que vai a um restaurante, senta-se à mesa e pacientemente espera, enquanto o garçom faz tudo, menos anotar o meu pedido. Eu sou o homem que vai a uma loja e espera calado, enquanto os vendedores terminam suas conversas particulares. Eu sou o homem que entra num posto de gasolina e nunca toca a buzina, mas espera pacientemente que o empregado termine a leitura do seu jornal. Eu sou o homem que explica sua desesperada e imediata necessidade de uma peça, mas não reclama quando a recebe após três semanas somente. Eu sou o homem que, quando entra num estabelecimento comercial, parece estar pedindo um favor, ansiando por um sorriso ou esperando apenas ser notado. Eu sou o homem que entra num banco e aguarda tranquilamente que as recepcionistas e os caixas terminem de conversar com seus amigos, e espera pacientemente enquanto os funcionários trocam idéias entre si ou, simplesmente abaixam a cabeça e fingem não me ver. Você deve estar pensando que sou uma pessoa quieta, paciente, do tipo que nunca cria problemas. Engana-se. Sabe quem eu sou? Eu sou o cliente que nunca mais volta!”

Para além do risco que Walton relatou, eu fico pensando em quantos clientes um estabelecimento pode perder a partir de um único desabafo em uma rede social pessoal e quantos mais com resenhas negativas no Google, com virais e tudo mais.

Foque em estabelecer vínculo genuíno e ouvir seu cliente em todo contato, faça com que ele se sinta bem-vindo e ele será leal e um promotor da marca. Trate-o mal uma única vez e corra o risco de perder este e vários outros.

Para o empresário, há responsabilidades ainda maiores. Mas isso representa também a grande oportunidade de ter um time que sustenta a empresa e a leva para patamares cada vez mais elevados com entusiasmo. Entenda que seu funcionário, além de seu representante, é seu cliente interno, e portanto, seu primeiro cliente.

Para que seja mais fácil tratá-lo bem, escolha gente conectada com os valores da sua empresa. Não tem salário que compense desconexão de propósito. Ouça-o e atenda rapidamente às necessidades apresentadas, dando condições de trabalho reais em todos os níveis. Faça-os crescer para que possam voar e isso trará crescimento também para o seu negócio. Gente que se sente estagnada não fará com que você cresça. E, mesmo que eles saiam, tenha certeza que levem uma excelente imagem do tempo que passaram servindo ao seu empreendimento.

Para as diversas fases de desenvolvimento de carreiras e negócios, conte com a CTA. Temos soluções para formação de profissionais em TI, formação de líderes, análise individual e empresarial de perfil comportamental, programas de coaching, acompanhamento para criação de MVP, e muito mais. 

Conte conosco para fazer a sua presença e da sua equipe serem notadas positivamente. Agora que você leu nossa opinião, clique aqui e fale conosco.