Conceber e entregar software como antigamente

Olá!

Em pleno domingão, temperatura agradável em Londrina/PR, ao baixar a edição do dia 11/08/2019 no Estadão Digital, seleciono alguns conteúdos e um me chama muito a atenção:

Seguro, despachante, aluguel e desmanche já são feitos por celular

A matéria do estadão fala de mobilidade urbana e a onda de startups com foco no setor automotivo.

“Se não assistimos televisão como antigamente, não usamos banco como antigamente, não nos deslocamos pela cidade como antigamente, precisamos questionar também outras relações de negócios ainda engessadas”, ressalta Ricardo Bernandes, presidente da Onsurance

Lendo o texto integralmente, a gente identifica umas opções bem diferentes e com foco na dor do cliente.

Diante disto, pensei, Por quê a gente ainda esta fazendo software como antigamente?

Explico.

Ainda perdemos uma infinidade de tempo tentando detalhar todo o escopo de um projeto de software, todas as possibilidades, exceções e fluxos.

Perdendo tempo, em identificar e/ou mitigar todos os riscos.

Muitas vezes, ignorando as REAIS necessidades do usuário final.

Perdendo tempo, construindo o produto errado.

Processos de construção morosos!

Eu gosto muito das seguintes práticas:

  1. Identificar a dor a ser resolvida – Lean Startup
  2. Envolvimento do usuário final como co criador
  3. Time de negócios e técnico trabalhando juntos
  4. Ter uma visão macro da dor a ser resolvida
  5. Participação ativa da área de negócios na priorização e detalhamento
  6. Uso de prototipação como ferramenta de comunicação ágil entre todos
  7. Iniciar a construção por uma pequena parte
  8. Entregas incrementais com ciclo curto, aliada a muito feedback e colaboração na veia

Já pensou se nossos projetos de softwares, pudessem adotar as práticas acima?

Parece simples, né?

#prototipandorequisitos

dinossauroAntigamente

 

 

 

 

Ingredientes para prototipagem de requisitos de softwares

Olá!

A prototipagem ou prototipação de requisitos de softwares tem a finalidade de obter grande quantidade de informações sobre um problema, permitindo uma coleta de requisitos muito ágil e fluída. Possibilitando ao usuário final atuar como cocriador.

Diante do desafio de coletar requisitos de softwares, utilizar abordagens colaborativas e construção incremental de partes do produto, permite um melhor resultado devido a dois fatores:

  1. Participação do usuário final
  2. Utilização de ciclos curtos de feedback para correção e ajustes, contribuindo com a construção de produtos com foco nas REAIS necessidades dos clientes e/ou usuários

Antes de propor um sessão de prototipagem para coletar requisitos, sugiro alguns ingredientes básicos:

  1. Entendimento do problema a ser resolvido
  2. Quais os resultados esperados
  3. Definição do time multidisciplinar
  4. Escolha de uma funcionalidade chave que resolverá o problema de forma plena
  5. Definição de agenda para realizar a sessão
  6. Apoio de um sponsor

Dependendo do cenário, mais ingredientes poderiam ser necessários, mas vamos começar com estes.

1. Entendimento do problema a ser resolvido

Como assim o problema a ser resolvido? Explico.

Um desafio de negócio que hoje causa impacto negativo no processo atual, ou que poderia ser evoluído ou criado.

Vamos citar alguns exemplos:

  • Um novo processo de aviso de férias para facilitar a vida do RH, colaborador e gestor
  • Um relatório gerencial para área de compras visando apresentar as maiores compras por departamento e economia realizada
  • Uma tela de pedido de venda simplificada para ser utilizado por representantes na visita a clientes
  • Um aplicativo ou portal que permita acompanhar os custos dos projetos através de diversos indicadores para área de PMO

Todos estes problemas acima, precisarão da criação ou evolução de softwares com foco em melhoria de processo, automatização, redução de custos ou outros pontos.

Entender o problema e como as pessoas são impactadas é o primeiro passo.


2. Quais os resultados esperados

Tendo em vista que já sei qual o problema a ser resolvido, fica muito mais fácil estabelecer os resultados esperados.

Supondo que o nosso problema fosse:

Um novo processo de aviso de férias para facilitar a vida do RH, colaborador e gestor

  • Processo muito manual e sujeito a erros
  • Envio de planilhas entre os envolvidos
  • Falta de controle eficiente

Resultados Esperados:

  • Automação do processo e eliminação de erros
  • Visibilidade do processo para todos os envolvidos
  • Diminuição do custo operação para gestão do processo de férias

3. Definição do time multidisciplinar

Consiste num time que se complementa e as diferenças de visões contribuem para um produto mais aderente as reais necessidades

Apesar de ser um time, “Um por todos e todos por um” tenho dois perfis bem distintos: Técnico e de negócios

Técnico: Programadores, arquitetos, DBAs, Profissionais de UX/UI, Lider Técnico e testador

Negócios: Cliente, usuário final, gestores, Product Owner, analista de requisitos/negócios e partes interessadas.

O foco deste time deve ser a entrega do produto em ciclos curtos, muita comunicação e colaboração. Parece até ser fácil!

Acrescente um facilitador, e escolha um dos presentes para ser o escrivão da sessão de prototipagem, para registro e documentação dos requisitos discutidos.


4. Escolha de uma funcionalidade chave que resolverá o problema de forma plena

Imagine um produto contendo inúmeras funcionalidades, porém tem uma (ou conjunto delas) que é chave, aquela que “resolve a dor do cliente”

Vamos pensar no Uber, qual seria esta funcionalidade matadora?

Solicitar corrida.

Ok, alguns estão bravos comigo porque chamei de funcionalidade, e não de tema ou épico. Mas se realmente você esta preocupado com a terminologia utilizada, você não entendeu nada do que estou falando.

Chame do que você quiser: Épico, tema, macro funcionalidade, funcionalidade…

O importante é entender o conceito.Ok?

Escolhida a funcionalidade chave.

Em nosso exemplo do problema das férias do RH, vamos chamar a funcionalidade chave de: Solicitação de férias através do colaborador


5. Definição de agenda para realizar a sessão

Avise antecipadamente(normalmente utilizo uma semana de prazo) todos os envolvidos.

Informe:

  • tema
  • data
  • horário
  • duração da sessão em horas, deixe claro os intervalos
  • regras para interrupções/uso de smartphone/internet
  • local
  • nome da sala
  • fone/email/whatsapp para contato rápido

E dois dias antes do sessão, envie um lembrete a todos. Invista na comunicação intensa de seus projetos!


6. Apoio de um sponsor

Conselho básico, muitas vezes esquecido.

Proximidade com este sponsor, venda a ideia pra ele, forme uma parceria no sentido mais amplo da palavra.

Que este sponsor seja politicamente forte, afinal nem tudo se resume a utilização de abordagens ou lindos post-its coloridos, precisamos de resultados reais e mensuráveis!

O apoio deste sponsor é fundamental para iniciação do projeto, e durante a caminhada, os possíveis problemas que surgirão.

Mantenha um dialogo constante e franco.

Ao final da sessão de prototipagem, devemos ter um entendimento claro sobre a funcionalidade e o alinhamento entre todos os envolvidos.


Dica Extra

Não adianta nada utilizar todas estas dicas, e não construir o produto de forma incremental o mais breve possível com uso intenso de feedback.

#boraprototipar

#foconousuariofinal

#prototipandorequisitos

Softwares, impactam vidas!

Olá!

Incrível, como somos dependentes dos softwares, e como estes, tornaram-se assunto de boteco, happy hour e do dia a dia entre pessoas comuns, e não somente profissionais da área de Tecnologia. As pessoas podem comentar sobre o seu dia de trabalho, e quando percebemos, tem uma pontinha de software ali… Pode ser uma visão meio nerd? Talvez! #UmDiaQueroSerNerd

Trechos de um bate papo, ocorrido entre eu(Fernandes) e a uma motorista do Uber .

“Eles poderiam liberar logo a funcionalidade, pois nos ajudaria muito em nosso trabalho”

Por quê acha isso?

“Eu saberia desde quando o usuário está na plataforma”

Verdade…

“Hoje, eu configurei a forma de pagamento mais restrita, quero medir o volume de corridas”.

Não sabia que isto era possível. Este recurso é novo?

“Não, faz tempo, eu utilizo muito quando trabalho até mais tarde”

Realmente, é muito mais que uma simples funcionalidade, é sim, uma proteção extra para sua integridade física

“Eu, só fico com medo quando tem atualização do aplicativo, percebi que algumas coisas podem mudar ou PARAR de funcionar. Isto complica nossa vida”

Software, funcionalidades, requisitos, deixaram de ser papo de T.I., projeto e área de negócios…

Softwares, impactam vidas!

Quando a gente entender isto, iremos nos preocupar VERDADEIRAMENTE com as entregas.

Seu projeto também é assim!

#VidaRealAlemDoPostIt

#FernandesLima

#PrototipandoRequisitos

Design Features – Detalhando funcionalidades de forma colaborativa

Olá!

Quantas vezes você já presenciou um cenário, onde uma “pequena funcionalidade”, acaba se transformando em um conjunto enorme de funcionalidade? Esta situação é muito comum, e normalmente algo muito simples, parece inclinado a ganhar musculatura de forma desordenada!

Claramente, isto não ocorre de maneira proposital. Simplesmente, quando iniciam o aprofundamento das discussões, começam a aparecer as ramificações, fruto de diferentes atores envolvidos

Acredito que eu tenho visto este novela, diversas vezes! Bem que eu poderia ter contado.

Pensando um pouco nisso, resolvemos unir alguns artefatos que utilizamos no dia a dia para identificar e detalhar Features de forma ágil, leve e colaborativa.

Desta união surgiu o roteiro passo a passo: Design Features – Detalhando funcionalidades de forma colaborativa.

Este roteiro normalmente, tem duração máxima de 7(sete) horas úteis e com extremo foco, um time de entrega: Product Owner, Lider técnico, usuário final(ou representante) e facilitador.

Antes de iniciar uma sessão de Design Features, você precisa ter muito claramente entre todos os participantes, qual deve ser a funcionalidade alvo.

Além de pensar nos participantes, existe uma agenda prévia que precisa ser cumprida, com o intuito de facilitar a logistica, alinhamento, reforçar a importância do foco extremo, comprometimento e disposição física e mental dos envolvidos. Imagina algum destes participantes, apenas comparecer, sem a devida energia para produzir, poderia comprometer o resultado.

Vamos pensar em um exemplo que esta em nosso dia a dia:

Download de series do Netflix:

Veja quantas ações e ramificações tem envolvidas:

  1. Além do Download em si
  2. Cancelar download
  3. Expirar download
  4. Renovar Download
  5. Meus downloads
  6. Lista de downloads em andamento
  7. Assistir episodio que esteja baixado
  8. Próximo episodio baixado
  9. Limpar lista de downloads
  10. Validar download

Algumas macro atividades de uma sessão de Design Features:

  • Alinhamento
  • Mapa das funcionalidades
  • Canvas Feature
  • Prototipação
  • Checklist

Imagine uma ferramenta, que propicia alto grau de alinhamento entre: Product Owner, Desenvolvedor e/ou Lider Técnico e usuário final(ou representante)!

Design Features, é mais uma ferramenta do movimento “Prototipando requisitos”

Em breve estaremos falando mais sobre este assunto!

#boraprototipar

#prototipandorequisitos

#FernandesLima

Desafios na coleta de requisitos de softwares

Olá! Quanto tempo hein!

Realizamos algumas pesquisas para entender melhor quais seriam os desafios na coleta de requisitos de softwares.

Fizemos uma pergunta aberta-> Quais são seus maiores desafios na coleta de requisitos de softwares?

Após receber dezenas de respostas, listamos abaixo sem nenhuma classificação:

1.Extrair as (REAIS) necessidades do cliente

2.Disponibilidade dos envolvidos

3.Obter detalhes importantes

4.Definir o que é essencial

5.Alinhamento

6.Identificação de stakeholders relevantes

7.Comprometimento dos envolvidos

8.Prazos insuficientes

9.Estabelecer um bom fluxo de coleta e organização

10.Detalhamento incompleto

11.Falta de objetivos claros

12.Falta de priorização

13.Dificuldade de comunicação

14.Excesso de demandas

15.Equipe insuficiente

16.Ambiente Multiprojeto

E você, quais dos desafios acima você tem enfrentado?

Desafios na coleta de requisitos de softwares

4 motivos para envolver o usuário final na concepção de produtos digitais

Olá!

Vamos começar explicando o que é um produto digital: Um software, seja ele uma app, aplicação desktop/web, embarcdo ou outra encanação qualquer.

E quem é o usuário final em nosso ponto de vista? O profissional que utiliza frequentemente o produto digital para:

  • Realizar alguma atividade que impacte (in)diretamente o cliente
  • Facilitar suas tarefas com o apoio do produto digital
  • Contribuir para tomada de decisão com base em informações extraídas deste produto digital
  • Otimizar sua rotina, liberando para atividades mais nobres
  • Outros

Veja os 4 motivos:

  1. Seu cliente é importante
  2. Engajamento do usuário final
  3. Construir/evoluir produtos melhores com foco nas reais necessidades
  4. Cliente satisfeito gera mais dividendos

Agora, vamos falar um pouco sobre cada um deles

1.Seu cliente é importante

Quando você através de um produto digital, realiza um bom atendimento, você esta respeitando e valorizando o seu cliente.

Pense no seguinte cenário:

Vamos supor que seu cliente, é uma operadora de telefonia, e o atendimento aos clientes do seu cliente é realizado via call center.  Neste local, você tem inúmeros atendentes que utilizam produtos digitais para responder dúvidas e fazer procedimentos para os clientes do seu cliente.

E se este produto digital, tivesse uma pane? Se ele fosse lento? Se ele fosse confuso…

Na pratica, isto significará que o produto digital, não levou em consideração as reais necessidades do seu cliente, ou melhor do atendente, logo o seu cliente não esta sendo importante.

2.Engajamento do usuário final

Você gosta de ser ouvido ou ignorado?

Ao ouvir o seu usuário, você estará de maneira muito simples, “dando voz a ele”.

Faz sentido ouvir este usuário final? Com total certeza, pois ele esta DIRETAMENTE envolvido no dia a dia do produto digital.

E com o engajamento, ele vai contribuir de maneira mais intensa com o produto digital. E o conhecimento que este profissional tem da operação? e do seu cliente? Vai ignorar este conteúdo?

3.Construir/evoluir produtos melhores com foco nas reais necessidades

Para construir/evoluir, a maneira mais simples é entender o dia dia da operação, fluxo de documentos, atividades, restrições…

Quem não ouviu falar de produtos que nunca foram utilizados por seus usuários?

Que são confusos?

Que não atendem minimamente as reais necessidades?

É uma forma barata e mais assertiva de construir, com proximidade com usuário final e trazendo ele para o seu time.

4.Cliente satisfeito gera dividendos

Vivemos num mundo onde o consumidor é rei, então tratá-lo bem, é nosso dever.

E quando este personagem esta satisfeito ele gera dividendos para todos:

  • a marca
  • a empresa
  • o produto
  • colaboradores

Cliente satisfeito, compra mais, indica seu produto e pode até tornar fã- do seu produto.

É fácil?

eBook-04 motivos para envolver o usuario final na concepcao de produtos digitais_Outubro_2018_v01

 

 

 

 

 

Um guia rápido para a implementação do ATDD – Infoq.com

Olá!

Quem realiza os testes de seu software?

Vocês utilizam o famoso TDD? Teste Depois do Deploy – rs..rs

O que deve ser testado?

Como deve ser testado?

Por quem?

As dúvidas são muitas em relação a testes de softwares.

Veja no portal Infoq.com

Testar, deveria ser parte fundamental do processo. Para mim, testes e qualidade de código andam juntas.

Então vamos usar e abusar de código limpo, refatoração, extreme programming, testes unitários e TDD. Um código bem escrito contribui muito para manutenção do software.

Que tal  acrescentar ATDD? Além da melhoria da qualidade, a colaboração gerada e alinhamento são dois grandes bônus.

Qualidade não somente no comportamento/automação de testes, mas nos bastidores do seu software, seu código fonte agradece.

Veja mais informações:

ATDD passo a passo

Para ter bons testes unitários, o código fonte precisa ser limpo

Vídeo(43 min) sobre Qualidade de código com Wagner Fusca