| Apr 07 |
Novo blog sobre arquitetura Java e SOAAlow Brasil !!! Post rápido para fazer uma propaganda básica, ok? É que o Gilberto Holms, arquiteto java/soa aqui da nossa equipe na Stefanini iniciou seu blog sobre arquitetura. O cara é um monstro, simplesmente não tem o que falar dele. Pessoal costuma dizer que ele é o ser mais “ignorante” da equipe. Não sabe mesmo brincar… Altamente recomendado para quem quiser saber um pouco mais sobre arquitetura de software em java e SOA. Para acessar o blog é só clicar AQUI !!! Também estará nos meus links … Grande Abraço André Nascimento |
| Apr 04 |
Campanha: Programe Gerente !!!Alow Brasil !!! Gostaria de lançar uma campanha no mercado de desenvolvimento de software, é a campanha: Programa Gerente ! Trata-se de uma campanha muito simples, mas difícil de aplicar, então vamos precisar de muita colaboração de todos para que ela aconteça. Quase todo dia eu vejo um gerente reclamando de que sente muita falta da “época em que programava”, porque naquela época ele não tinha que fazer tanto trabalho inútil e que tinha uma visão muito melhor do resultado daquilo que ele construia. A situação é a seguinte: Quem está numa posição gerencial acaba passando horas (as vezes o dia todo) trabalhando feito louco, mas se alguém perguntar o que ele fez nesse tempo, muitas vezes a resposta será: NADA !!! E o pior é que verdade, as atividades de gestão são complicadas e acabam não dando visão alguma de que algo realmente ficou pronto. Se você é um gestor, sabe exatamente do que eu estou falando. O problema é isso acaba desmotivando profissionais e causando altos níveis de stress. Outro problema óbvio é que quanto mais um líder se distancia da realidade técnica no dia-a-dia, mais ele perde. Pessoalmente, eu nunca acreditei na história de que quanto mais se cresce na carreira, menos técnico você fica. Acredito que um profissional que siga para uma posição executiva tenha que generalizar mais a sua visão, mas isso não significa que ele tenha obrigatoriamente que jogar fora seu lado técnico. Convivo com alguns executivos hoje que acabam sendo cegos o bastante para não olhar com bons olhos outros executivos que são técnicos e especialistas. Para esses, o lado técnico precisa necessariamente morrer para que o lado “administrador” domine. Que piada !!! Os melhores executivos com quem já tive a honra de trabalhar são técnicos e a mesma coisa serve para gerentes, líderes, coordenadores, etc. Voltando à campanha, a idéia então é muito simples: Vamos fazer com que o gerentes, coordenadores, líderes e cia participem de algum projeto – por menor que seja – programando alguma coisa. Pode ser uma tela, uma rotina, um componente, não importa. O importante é que o “chefe” se envolva na programação e na construção do produto. Vamos iniciar com isso aqui na Stefanini, ok? Então não dá pra dizer que isso não é aplicável numa grande empresa Se você é um gestor ou coisa parecida, junte-se a nós nessa campanha… recupere aquele conhecimento técnico que você perdeu quando foi para o lado gerencial e que te fazia tão feliz. Você verá como suas atividades de gestão e liderança ficarão muito mais divertidas e darão um retorno muito maior para você, equipe e para sua empresa. Aos poucos vou atualizar o blog com os resultados dessa experiência, ok? Grande abraço e nos desejem sorte \o/ André Nascimento |
| Mar 29 |
Fábrica de Software: O Modelo Falido! Porque?Alow Brasil !!! Vou tocar num assunto delicado hoje, estou trabalhando neste post há algum tempo e como estou com uma crise de insônia terrível decidi termina-lo e publicar, ok? É um post um pouco extenso, então peço sua paciência para ler até o final A motivação para este post, nasceu de algumas conversas com amigos e com executivos de mercado, também em algumas empresas que visitei nos últimos tempos e é claro do meu dia-a-dia de trabalho. Grande parte dessa motivação veio do fato de que existem ainda muitas empresas e pessoas que vêem este formato de “fábrica” de software como a salvação dos problemas, sendo poucos os que acabam percebendo que esse modelo criado para a indústria de software somente causou desperdício de recursos financeiros desde a sua criação. Quero deixar claro que não estou criticando as empresas chamadas de fábrica de software, certo? Até nisso existe confusão. Os atuais fornecedores de software e serviços são denominados simplesmente de “fábricas de software”, principalmente pelos próprios clientes. Claro que você já ouviu a famosa frase: “Não vamos conseguir fazer internamente este projeto, manda pra fábrica…” Bom, posto esses parâmetros, vamos então a uma definição resumida que encontrei no wikipedia:
Nos anos 90, quando estávamos vivenciando o ápice do processo de downsizing nas grandes companhias, passamos por um grande problema de produção nas empresas. O mercado contava com poucos profissionais especialistas e os que tinham essa especialização estavam se tornando cada vez mais caros. Por causa de vários deste problemas, pensou-se então que a saída seria “industrializar” o setor de serviços de software. O pensamento foi simples:
Ora, no século passado tivemos um problema parecido com este, como ele foi resolvido? Com a criação da linha de montagem de Ford. A idéia básica era a de que muitas pessoas, distribuídas em funções e realizando operações repetitivas conseguiriam criar um produto semi-acabado ou até mesmo acabado. Era verdade que conseguiu-se com este modelo chegar ao impressionante tempo de 98 minutos para se fabricar um carro. Pronto, temos então a linha de raciocínio que nos levou à criação do que foi em minha humilde opinião um dos maiores erros na história do setor de serviços de TI e desenvolvimento de software: A Fábrica de Software. Imaginou-se no início que a solução então seria segregar as atividades de desenvolvimento de software em várias áreas distintas, sendo as principais:
Pronto, com essa divisão clara de “fases” e “disciplinas” num projeto de software ficava muito mais fácil de industrializar o processo, pois poderíamos então fazer qualquer uma dessas fases com pessoas diferentes, em locais diferentes, tudo orientado por um único processo. O modelo derivado deste pensamento pode ser expresso da seguinte forma: Para sustentar essa fantástica “linha de produção”, o mercado teve que se basear totalmente num modelo de engenharia que já era adotado na era dos mainframes, o famoso processo Waterfall, ou cascata. O processo Waterfall foi importante para a manutenção do modelo fabril porque dá uma idéia muito parecida com uma linha de montagem e não oferece o que chamamos de retro-alimentação em seu ciclo de vida. A idéia é de cada fase seja executada de forma separada, em momentos diferentes e por profissionais diferentes, alimentando com isso a segregação dos profissionais e baseando-se exclusivamente nos processos e na documentação. Ok! Já vimos como este modelo foi criado, certo? Agora vamos analisar um pouco como está o mercado depois de quase 2 décadas da implantação deste modelo. Você já deve conhecer esse relatório, não conhece? Já falamos sobre ele em outro post. O chaos report do standish group demonstra de forma muito clara como caminha o mercado de desenvolvimento de projetos de software. O leitor pode estar se perguntando: Mas o Chaos não diz que esses resultados são causados pelo modelo de fábrica de software. Com certeza, realmente não menciona, mas menciona problemas que foram causados por este processo e principalmente pela abordagem waterfall nos projetos de software. Outro estudo que você já deve conhecer é o de que entregamos hoje em dia apenas 20% de funcionalidades que realmente serão utilizadas pelos usuários finais dos sistemas. Podemos ver este resultado na imagem abaixo: Consigo abordar alguns pontos cruciais para afirmar que o modelo chamado de Fábrica de Software não funciona. Vamos a alguns deles: Gera e alimenta a segregação das equipesO fato de dividir o projeto em fases => etapas => atividades, executadas por equipes diferentes que não se comunicam ou se comunicam pouco é nocivo para um projeto de software. As pessoas das pontas, que trabalham com o desenvolvimento do projeto não possuem contato com o cliente ou usuário final pois, uma vez que as fases de análise são terminadas a documentação funcional é enviada para a “fábrica” e só tem retorno quando o software está “pronto”. É necessariamente baseado em documentaçãoO processo de fábrica tem a obrigação de se basear em documentação, já que não possui comunicação fluente entre os membros da equipe e principalmente com o cliente. Cada fase executada deve conter inúmeros documentos que descrevem como o software deve ser construído. Já trabalhei em projetos com processos em que tínhamos que entregar 32 artefatos de documentação ao longo do desenvolvimento. Esse número muitas vezes representava até 70% do esforço gasto no projeto. Sabe quanto tempo gastávamos com processos de qualidade e testes? Pois é, não sobrava tempo, muito menos dinheiro… Outro ponto é que a empresa de fábrica precisa se basear nos documentos para se proteger do processo de contratação imposto pelo modelo de escopo fechado. Se aceitar alterações durante o projeto e elas não estiverem documentadas, o fornecedor terá que pagar a conta. Promove uma pseudo-previsibilidadeComo medimos o andamento de um projeto de fábrica? Com a famosa coluninha de % completo do project, certo? Se o projeto é separado em fases extensas e executado num modelo distribuído de fábrica essa prática torna-se indispensável. Agora a pergunta: Como podemos dizer que um projeto andou 50% se não temos uma unica linha de código escrita? Ainda não mostramos nada ao cliente, somente protótipos e documentos de requisitos. Mudanças naturais decorrentes de um projeto são tratadas como alteração de escopoComo já citei no item 2 as empresas precisam se basear no tal escopo fixo para executar o projeto. Qualquer alteração que ocorra durante seu desenvolvimento deverá ser tratada como mudança de escopo e negociada (paga), a parte. Se levarmos em consideração a cultura de punição que temos hoje para quem não consegue dimensionar um projeto de software com 100% de assertividade – tanto nos fornecedores quanto nos clientes – veremos que as mudanças ficarão engavetadas, engordando as estatísticas de funcionalidades entregues e não utilizadas. Parte do pressuposto de que o desenvolvedor é simplesmente um operárioOra, se todas as atividades que precisam de raciocínio já foram realizadas pelos analistas de negócio, arquitetos e analistas de sistemas nas fases de levantamento e definição do projeto então não só precisaremos do cara que escreve o código. É a atividade repetitiva de que fala o modelo fabril criado por Ford. Este talvez seja o ponto onde a fábrica se saiu pior. Com este pensamento as empresas lotaram suas “fábricas” com estagiários e profissionais Jrs, realmente acreditando que codificar é simplesmente uma atividade braçal, e que o conhecimento especialista está nas mãos dos analistas, arquitetos, etc. Este modelo gerou, inclusive, a idéia de carreira que temos no mercado hoje (trataremos disso em outro post). Com essa atitude o mercado acabou gerando desenvolvedores de software que estão condicionados a receberem uma especificação detalhada e escrever código. A verdade é que temos um número absurdo de profissionais medíocres nas empresas. Pessoalmente acho que grande parte disso se deve ao fato de que limitamos estes profissionais com um modelo onde o programador deve ser burro e não onde unimos a solução com o desenvolvimento da aplicação. Possui foco em processos e não em pessoasQuando pensamos em fábrica de software somos levados a acreditar que neste modelo a dependência das pessoas é menor. A verdade é que isso não passa de marketing e é uma grande mentira! Um dos sonhos vendidos pelo modelo de fábrica é que o processo é mais importante e que ele suportará a ausência de qualquer pessoa. Afinal temos tudo muito bem documentado. Ora, sempre seremos dependentes de boas pessoas num projeto de software e para isso não importa o processo. Nunca acredite numa empresa que fale o contrário! Não permite colaboraçãoIsso se inicia na contratação. O cliente não quer colaborar com o fornecedor e joga em seu colo todo o risco na contratação. Podemos analisar isso claramente nos processos de RFP que temos no mercado e até já falei isso em outro post. Como o fornecedor sabe que vai ficar com todo este risco, vai basear todo o desenvolvimento do projeto em documentos para que não tenha que assumir os problemas financeiros que certamente vão acontecer. Neste modelo não há como se ter colaboração entre cliente e fornecedor, pois não há espaço para negociação no momento de mudanças. Sabemos que um projeto de software possui mudanças e que elas devem ser acomodadas e não negociadas. Mas para isso é preciso uma postura de colaboração, que não é compatível com o modelo de fábrica de software. E no final… Por todos este pontos e por diversos outros que podemos citar é que acredito que o modelo de fábrica de software está falido e que rapidamente chegará ao final. Este modelo vai amadurecer e evoluir naturalmente para outros modelos mais adequados ao desenvolvimento de projetos de software. Creio que a evolução natural será para o outsourcing baseado em processos colaborativos. Nestes modelos, os riscos são compartilhados e as decisões tomadas em conjunto: Cliente x Fornecedor. Todos entendem que é melhor uma relação de ganha x ganha. Podemos pensar em formas diferentes e mais efetivas para se desenvolver software e criar produtos melhores para as áreas de negócio nas empresas. Este é o nosso objetivo. Grande abraço André Nascimento |
| Mar 08 |
Então você é certificado? Ok, vamos ver o quanto isso vale.Alow brasil !!! O título desse post já diz muita coisa, certo? Vamos falar um pouquinho sobre certificações. Em primeiro lugar, quero que você leve em conta que eu nada tenho contra certificações. Mas, quero levantar algumas questões que julgo importantes. Então, vamos lá. Todos sabemos que nosso mercado chegou a um estágio de incrível prostituição e um dos grandes responsáveis por isso são as grandes consultorias de serviços. Elas incentivaram as piores práticas de gestão de pessoas, que hoje infelizmente são seguidas também pelas médias e pequenas empresas de serviços. Todo mundo é recurso, não é? Já convivemos com o termo “certificação” há algum tempo em nossa área. Não vou resgatar a história lá atrás, tudo bem? Mas, se levarmos em conta, de uns anos pra cá tivemos o que podemos chamar de um “boom” nos modelos de certificação e no número de profissionais certificados. Você já deve ter visto muitas vezes anúncios de emprego exigindo um profissional certificado, ou mesmo quando foi pedir uma promoção que precisava de mais certificações para demonstrar seu domínio sobre o assunto. O fato é que o mercado de consultorias valoriza e muito um profissional que possui certificações e cada vez mais exigem isso. No entanto, existem dois tipos de profissionais que se certificam. Vamos olhar cada um deles: O cara que domina um assunto, tem experiência e se certifica para homologar este conhecimento – Este é o cara que faz justiça as suas certificações. Ele possui experiência prática em todos os níveis abordados pela sua certificação e não é somente um vendedor de tecnologia ou produto. Se chamado para resolver um problema demonstrará que realmente é um especialista no assunto e mesmo que não domine todas as técnicas possíveis para resolver um problema, usará seu perfil investigativo para aprender novas formas e no fim vai dar um jeito. O cara que estudou o assunto a fundo, leu muito material e foi fazer a prova – Este profissional participa de fóruns de discussão, faz diversas apresentações nos mais importantes eventos da comunidade e adora exibir seus títulos a qualquer momento (quem não adora assinar Fulano de Tal, PMP por exemplo?), e quando chamado para resolver um problema, já carrega seu fantástico notebook com kilos de material com propagandas. O problema é que esse cara geralmente não tem experiência prática com o assunto. Ele gosta muito de ler, mas não consegue resolver um problema simples. Além do que, passa tanto tempo se dedicando as apresentações que faz que acaba não tendo tempo para participar da entrega de um projeto de verdade. Infelizmente, o segundo tipo de profissional está dominando o mercado atual. Não são raros os casos em que conhecemos profissionais com “baldes” de certificações que não justificam nada. A qualidade de seus trabalhos é completamente medíocre. Mais uma vez vemos que o próprio mercado é um dos grandes culpados disso. Ora, como avaliamos os profissionais hoje? Isso é assunto para mais um post, mas para resumir: Não temos gente qualificada para selecionar os profissionais hoje em dia e a certificação ajuda muito neste trabalho. Vamos pegar como exemplo uma das certificações que está na moda: A tal de ScrumMaster. Este é um exemplo perfeito de certificação que não serve pra nada. Desculpe-me os CSTs, ok? Outro dia, realizando uma apresentação numa empresa ouvi o seguinte comentário:
Para se tornar ScrumMaster até há pouco tempo era só participar de um treinamento de 16 horas com um CST e receber o certificado. Que especialidade há nisso? Pelo amor do bom Deus! Este tipo de certificação é uma das coisas que autorizam pessoas totalmente desqualificadas a falar de um assunto para o mercado e se mostrarem como especialistas de algo que pouco entendem, fora aquilo que leram num livro. Outro exemplo que podemos ver na comunidade de desenvolvimento de software: Quantas vezes já precisamos aqui na empresa de ajuda de especialistas e corremos atrás de profissionais certificados, com títulos, etc. Nenhuma vez consegui trazer aqui um “especialista” que conhecesse muito mais do que a minha própria equipe. Com tudo isso, gostaria que você pensasse um pouco sobre a importância de ser realmente certificado em algo. É um titulo importante. De fato, os grandes profissionais com quem trabalhei e que eram realmente especialistas, não tinham nenhuma certificação. Para finalizar, gostaria de compartilhar algo sobre o processo de seleção que fazemos aqui na empresa. Nós não nos importamos nem um pouco se o profissional tem ou não certificações. Peço ao RH da empresa que não coloque nada relacionado a certificações ou mesmo a formação acadêmica quando mandamos uma vaga para o mercado. Agora, se o candidato coloca em seu CV aquela lista gigante de certificações, com certeza ele terá um trabalho bem grande para justificar seu conhecimento para o pessoal que vai entrevistá-lo. Exemplos:
E então: Qual será a sua próxima certificação? Links interessantes: Abs André Nascimento |
| Mar 05 |
Scrum na UbisoftAlow Brasil !!! Nos dias 22 e 23 de fevereiro estive em Porto Alegre ministrando um workshop de Scrum e práticas ágeis no estúdio de games Ubisoft Brasil. O pessoal já conhecia algumas práticas ágeis pois um de seus produtores havia participado de outro workshop e levado o conceito para dentro da empresa. Algumas coisas que a equipe já utilizava no dia-a-dia:
O objetivo era alinhar o conhecimento de todos os membros da equipe e fortalecer as bases do Scrum e da agilidade, pois nem todos tinham uma idéia clara dos princípios ou do porque realizavam algumas das cerimônias. Decidimos então fazer um workshop muito baseado nos princípios ágeis, abordando pontos como:
Tivemos cerca de 30 pessoas no treinamento, entre elas: Designers, programadores, produtores e testers. Todo o time do estúdio participou o/ Conseguimos tirar muito proveito do workshop, principalmente nas discussões com o pessoal. Foram levantadas questões pertinentes ao desenvolvimento ágil no cenário da Ubisoft – desenvolvimento de games. Existem várias particularidades que a área de games possui para a utilização de práticas ágeis e são grandes os desafios que essas particularidades impõe. Algumas coisas interessantes que discutimos:
Existiram vários outros pontos em que paramos, pensamos, discutimos e chegamos a algumas conclusões muito interessantes. No final, duas coisas ficara bem claras:
O workshop contou com várias dinâmicas, que demonstraram na prática como funciona trabalhar com agilidade no dia-a-dia. A melhor delas foi a da fábrica de aviões, todos gostaram muito Ao final, fizemos uma retrospectiva sobre o workshop e o pessoal deu um feedback muito positivo. Como ponto negativo, os designers e artistas pediram para eu não mencionar tanto assuntos de programação no “próximo” workshop num estúdio de games. My bad pessoal, mas pedi um desconto por ser da área de software e tudo ficou bem. Muito obrigado a todos da Ubisoft que participaram do workshop. Espero que vocês tenham sucesso no dia-a-dia com práticas ágeis !!! Referências: Se você quiser saber mais a respeito de processos ágeis na indústria de games, segue um livro interessante: Amazon: Agile Game Development With Scrum Youtube: EVE Online Fanfest 2009 – Scrum & Agile EVE Online Fanfest 2009 – Scrum & Agile Abraços André Nascimento |












