Estrategia para o Gerenciamento de projetos com qualidade
Hoje no Brasil, e até mesmo fora do Brasil, existem muitas empresas de softwares que desenvolvem sistemas de forma rápida, e esquecem a qualidade que é o ponto principal do projeto para da entrega ao cliente. Estas empresas não adotam um modelo para que possam proporcionar uma rotina diária de qualidade para garantir a qualidade e a usabilidade do sistema que é fundamental.
Por esse motivo, há uma demanda muito grande de reclamações, bugs constantes, entrega de versões demoradas, falta de feedbacks aos clientes, e outros problemas que impedem a qualidade do software. Como minimizar esses erros?
Em primeiro lugar, para gerenciar um projeto é importante definir um modelo para o gerenciamento de sistemas que possa garantir a qualidade do software durante o desenvolvimento, e com isso venha de fato agregar valores para a empresas, e principalmente satisfazer os clientes de forma que eles se sintam seguros com a entrega do software.
Garantir um desenvolvimento do sistema consistente é bastante trabalhoso, e para isso, deve-se evitar o máximo possível de erros, para que não haja perdas de produção, ou retrabalhos irreparável.
Hoje, é realidade que muitas empresas fecham as portas por que muitos softwares fracassam, ou não atinge o esperado. Este motivo é software com alto custo, mal planejado, requisitos levantados de forma inconsistentes, prazos que não são cumpridos, equipe isoladas uns dos outros, pressão psicologias, clientes insatisfeitos, e principalmente falta de motivação das equipes.
Atualmente muitas empresas, sejam elas, medias, ou pequenas, lidam com uma rotina de entrega de software diariamente, muitas atualizações acontecem justamente por falta de um gerenciamento, que proporcione uma rotina para se obter um gerenciamento que garanta a qualidade. É importante que estas empresas, tenha compromissos sérios com à qualidade do software, até mesmo para que ela ganhe confiança e credibilidade de seus clientes.
No Brasil, nesse grande mercado de Tecnologia, existem diversas empresas concorrentes, por isso, é importante que as empresas adotem metodologia de projetos que melhore todas estas situações, e partir dai possam obter um deferencial na emprega do software. Um sistema bem sucedido, é aquele que obtêm um diferencial, agregando valores as empresas que irá utilizá-lo, levando-a de alguma forma o objetivo esperado. Mas como garantir que um projeto de um sistema seja realmente bem planejado, e obtenha o seu objetivo esperado?
Primeiro de tudo, é que as empresas tenham atitude e reflitam a importância de se planejar e gerenciar os projetos de forma que o sistema tenha método gerenciável de planejamento na sua implementação. Apresentar uma serie de procedimentos norteando as boas praticas ações e métodos para:
Redução de Riscos e custos relacionados às novas mudanças funcionamento e desempenho que os apresentar cem por cento um projeto pronto para entrega ao cliente. Aumentar a qualidade e produtividade dos sistemas
Segundo: Foco nesse princípios; Qualidade, gerenciamento, entrega continua, e Melhores praticas para o desenvolvimento de Sistema,
Qualidade
De acordo com Fernandes (2000), a norma ISO, sigla que define o International Organization for Standardization ou organização Internacional para padronização, “qualidade é a totalidade das características de um produto, e ou serviço que lhe confere a capacidade de satisfazer as necessidades implícitas de seus usuários”. (p.175). Fernandes (2000) cita ainda que “de conjunto de normas ISO, destaca-se a ISO 9004, como a mais abrangente, e que define os elementos para o gerenciamento da qualidade e diretrizes para o Sistema da qualidade” (p.175).
Portanto, essas características de qualidade e usabilidade deve está dentro do padrão de sistema que propõe e assegura qualidade e segurança ao usuário do sistema..
O papel do sistema é garantir além do controle dos processos gerenciais de uma empresa, também garantir a qualidade aos membros e aos gestores que utilizarão o sistema.
Qualidade é fator principal, seja em qualquer software de gestão, se não existir a qualidade a aceitação do sistema no mercado será insatisfatório. Para garantir um sistema realmente prático, é preciso muito esforço, e através desse esforço, é que de fato faz existir software de qualidade aceitável no mercado. (Daniel, 2000)Afirma que:
Qualidade é resultado de um processo continuo de melhoria e melhoria e tem seu foco no ajuste do processo. Tanto a norma ISO9000 quanto o modelo CMM apresentam mecanismos de implementação de qualidade. (p 176).
Gerenciamento
O principal foco no gerenciamento da análise são os aspectos lógicos para a implementação de um sistema. Determina-se na fase de projeto como o sistema funcionará para atender aos requisitos. Essas fases conduzem a uma descrição computacional do que o sistema deve fazer. A análise deve ser coerente para que não haja ambiguidade nos processos lógicos do software.
Após o levantamento das análises dos processos do software, parte para a fase de implementação, em que o sistema é codificado seguindo a descrição computacional realizada na fase de projetos em código executável, mediante uma ou mais linguagens de programação.
Para um processo de desenvolvimento de Sistema, é importante que tudo o que for planejado e levantado com o cliente através da comunicação, seja definido de forma clara para que o sistema seja desenvolvido da forma esperada. Mas, a comunicação em projetos não é feita apenas com conversas.
É importante no gerenciamento da analise determinar a equipe, determinar participações e responsabilidades, identificar as diretrizes e necessidades e planejar o trabalho. Levantar as necessidades principais, levantar os problemas globais, detalhar os requisitos funcionais, detalhar os objetivos principais ou requisitos funcionais desejados, relatar os problemas e limitações principais, relatar as expectativas de prazos, levantar sistemas envolvidos, levantar os perfis dos clientes e/ou usuários. Porém não são suficientes essas informações para o desenvolvimento do sistema, é importante descrever o modelo do sistema como um todo, ou seja, é necessário construir uma visão externa do funcionamento das análises levantadas para a construção do software que pode ser utilizado determinado com a UML.
Entrega continua
A entrega contínua existe para que as funcionalidades sejam liberadas continuamente e de forma segura para o cliente. Imagine que ao submeter um arquivo para o repositório de código-fonte, o ambiente de homologação seja automaticamente atualizado e o ajuste seja disponibilizado para testes sem a necessidade de intervenção manual.
Esta é a promessa da entrega contínua, do ponto de vista de desenvolvimento. A equipe está focada em criar o melhor software possível, sem gastar tempo com atividades mecânicas, como atualizar ambientes ou verificar se os testes unitários estão passando e se o build está compilando. Do ponto de vista da equipe de qualidade, a execução dos testes automatizados possibilita uma homologação automática, permitindo também a atualização mais rápida do ambiente de produção.
Formalmente, a entrega contínua é definida como “um conjunto de práticas e princípios com o objetivo de compilar, testar e liberar software de forma mais rápida e frequente”. Observe que a definição em si não menciona programas específicos, mas sim uma filosofia a ser seguida.
Melhores praticas
A rotina básica de desenvolvimento de software é simples: baixar o código de um repositório, codificar, validar o que foi criado e, se tudo estiver como esperado, integrar os novos artefatos ao repositório e testar as novas funcionalidades. Esta rotina, no entanto, pode ficar mais complexa ao ter novos passos adicionados, ser compartilhada através da programação em pares, não fazer uso de controle versão, entre outras possibilidades. Além disso, ela também pode ser simplificada, principalmente em cenários onde não há trabalho em equipe. Independentemente disso, isto é, em qualquer um desses casos, o que realmente irá torná-la impraticável ou ineficiente é a utilização de más práticas de desenvolvimento.
A partir disso, será possível identificar, em cada uma das fases, problemas ou dificuldades causadas pelo uso de práticas indevidas, que podem levar ao atraso de entregas ou até mesmo do projeto como um todo. Descrever brevemente cada uma dessas fases e listar alguns dos problemas que ocorrem durante cada uma será o objetivo da primeira parte deste artigo. Posteriormente, serão apresentadas práticas para tornar o processo de implementação mais eficiente e eficaz, focando na melhoria da qualidade do código fonte, na metodologia e práticas de testes utilizadas.
A rotina descrita inicialmente será considerada como o padrão adotado no dia a dia de uma empresa de TI.
- Fase de aquisição ou atualização do código;
- Fase de codificação;
- Fase de validação do código desenvolvido;
- Fase de integração do novo código;
- Fase de testes;
- Utilizando boas práticas de desenvolvimento;
- Metodologias de desenvolvimento;
- Boas práticas de programação;
- Utilização de um padrão de arquitetura;
- Utilização de padrões de projeto;
- Boas práticas de testes de software;
Terceiro: Foco no Cliente, quando a empresa pensa nos seus cliente, traz para si uma responsabilidade de entregar o melhor e fazer o melhor para os cliente
Os Stakeholders(Clientes) devem está envolvidos no projeto para obter o sucesso?
Sim é claro! Stakeholders são indivíduos, grupos de indivíduos ou organizações que podem influenciar de maneira positiva ou negativa o projeto.
Principais Stakeholders
Processo de Gerência de Stakeholders Para o sucesso do Projeto acontecer.
Stakeholder é o público estratégico e descreve uma pessoa ou grupo que fez um investimento ou tem ações ou interesse em uma empresa, negócio ou indústria.
stake significa interesse, participação, risco. Holder significa aquele que possui. Assim, stakeholder também significa parte interessada ou interveniente. É uma palavra muito utilizada nas áreas de comunicação, administração e tecnologia da informação cujo objetivo é designar as pessoas e grupos mais importantes para um planejamento estratégico ou plano de negócios, ou seja, as partes interessadas.
Ao entender a importância dos stakeholders, o responsável pelo planejamento ou plano consegue ter uma visão mais ampla de todos envolvidos em um processo ou projeto e saber de que maneira eles podem contribuir para a otimização deste. Os stakeholders são elementos fulcrais em termos de planejamento estratégico de uma empresa ou organização.
O stakeholder é uma pessoa ou um grupo, que legitima as ações de uma organização e que tem um papel direto ou indireto na gestão e resultados dessa mesma organização. É formado pelos funcionários da empresa, gestores, gerentes, proprietários, fornecedores, concorrentes, ONGs, clientes, o Estado, credores, sindicatos e diversas outras pessoas ou empresas que estejam relacionadas com uma determinada ação ou projeto.
Stakeholder tem se tornado cada vez mais comum, uma vez que é uma peça muito importante para contribuir no desempenho de uma organização e influenciar as atitudes e ações do stakeholder dentro da empresa. Na área de tecnologia da informação, o stakeholder também exerce importante papel, pois para a arquitetura de software é importante ter o conhecimento das partes interessadas.
Stakeholders e Shareholders
Existem dois principais e mais conhecidos modelos empresariais: o modelo baseado nos stakeholders e o baseado nos shareholders (acionistas).
De acordo com o modelo stakeholders, que surgiu nas recentes décadas, a empresa é vista como uma organização social que deve trazer algum tipo de benefício a todos os parceiros de negócios ou partes interessadas, ou seja, os stakeholders. Este modelo também é conhecido como um modelo de responsabilidade social, tendo em conta que este modelo visa um equilíbrio social. O lucro alcançado pela empresa é dividido proporcionalmente de acordo com a participação de cada elemento: acionistas ou proprietários (shareholders), clientes, fornecedores, etc. Este modelo não privilegia somente a vertente financeira, mas também dá valor à vertente social e retributiva. Por esse motivo é considerado como um modelo de responsabilidade social ou corporativo.
Agentes de Mudança
.
Reduzir Riscos e custos relacionados as novas mudanças funcionamento e desempenho que façam com que apresentem cem por cento um projeto pronto para a entrega ao cliente, e gerar lucratividade com software bem definido, e com isso garantir um software sem ambiguidade.
Aumentar a qualidade e produtividade dos sistemas, garantindo satisfação dos clientes, proporcionando-lhe a analise pratica da gestão de projetos de desenvolvimentos de software, e melhorar o desempenho no Gerenciamento e na gestão dos projetos, focando na qualidade e boa produtividade tornando isso real.
Proporcionar a interação entre desenvolvedores e operadores, unindo um único propósito para melhorar a comunicação e interação entre equipe.
Os Novos Clientes
O cliente está mais exigente e menos tolerante do que nunca, a tolerância pela Qualidade virando commodity. Preocupação hoje é com a “experiência” proporcionada, Os maiores lucros vêm de relações duradouras. Um conhecimento detalhado do cliente e o atendimento personalizado se transformam em diferencial. O cliente exige um relacionamento simples, direto e objetivo.
E para isso deve acontecer a mudança rápida por parte das empresa, pois se o objetivo das empresas for apenas em lucrar com software mal planejado infelizmente estará fora do mercado.
Os Anseios da Sociedade
A sociedade de hoje, estão totalmente intolerantes a perdas, sejam elas minimas possíveis, o que elas desejam e anseiam é por algo que traga benefícios e lucros, e não gastos desnecessários, principalmente quando se trata de softwares. Quando uma empresa contrata um software, seja ela, grande, media, ou pequena, o primeiro pensamento é que o sistema irá solucionar seus problemas e gerar lucratividade, e é isso que realmente deve acontecer, pois o proposito dos sistemas é mudar a realidade do negocio do cliente, e com isso os cliente se sentam satisfeitos com o sistema, e além de tudo traga-lhes soluções e lucratividade. Sendo assim, as empresas anseiam por empresa de softwares que tenham um olhar de responsabilidade em lhes entregar soluções que venha de fato controlar os processos internos, e sobre tudo sentem o desejo de;
Que as empresas Mantenha-se sempre dentro da ética;
Que as empresas se Planeje cuidadosamente táticas de contingência para emergências;
Produzir produtos com preocupação de não afetar negativamente o ambiente;
Produzir produtos que não prejudiquem a saúde da comunidade;
Dar apoio a empregados participantes de processos de downsizing, reengenharia, reorganização, etc
Como acontecem as mudanças
Projetos surgem de uma Necessidade
Necessidades tem várias fontes: interna, clientes, governo, competidores, etc.;
Uma vez reconhecida, a necessidade deve ser articulada e seus requisitos funcionais e técnicos estabelecidos.
Os clientes normalmente sabem exatamente o que NÃO precisam, depois de ver o produto;
Mesmo quando dizem que sabem o que precisam, a informação deve ser vista e revista novamente;
À medida que o produto se desenvolve (fica mais tangível), os clientes vêem novas possibilidades e tentam mudar o projeto de acordo com elas;
Seu projeto fracassará se o produto não for corretamente utilizado ou não atender as especificações de seu cliente
Principais problemas ligados a Definição de Requisitos
- Requisitos incorretos baseados em necessidades mal definidas;
- Requisitos ambíguos ou imprecisos;
- Mudança de Requisitos;
- Natureza dinâmica dos projetos.
Projetos devem contribuir para obtenção de resultados empresariais a curto e longo prazo, Gerentes de projeto devem ser incentivados a entender o porque de estarem implementando determinado projeto e participar do processo desde sua fase de concepção. A ramificação das estratégias empresariais em projetos é passo fundamental neste processo.
A Estratégia e a Gestão de Projetos
Um Projeto é um “Processo único, consistindo de um grupo de atividades coordenadas e controladas com datas para início e término, empreendido para alcance de um objetivo conforme requisitos específicos, incluindo limitações de tempo, custo e recursos.”. Ainda de acordo Pmbok, 2004 pág.5 um projeto é “Um empreendimento temporário, com objetivo de criar um produto, serviço ou resultado único.”
Com o projeto nasce o programa (Software) que é formado por um um grupo de projetos gerenciados de forma coordenada, visando obter benefícios difíceis de serem obtidos quando gerenciados isoladamente
Gerencia de Projetos envolve o balanceamento entre:
- Escopo, tempo, custo e qualidade;
- Stakeholders com diferentes necessidades e expectativas;
- Requerimentos identificados (necessidades) e requerimentos não identificados (expectativas).
Para que o Projeto tenha Sucesso, é importante que haja competência entre os envolvidos, esses conhecimentos devem ser técnicos, e também devem está ligados tanto a parte gerencial, quanto parte do negocio. Esse trem níveis de competência devem existir desde o inicio do projeto até o fim, que são elas;
Dentro dessas competências para o projeto obter sucesso e ser bem executado, deve-se seguir o ciclo de vida, todo projeto tem que existir o ciclo de vida, caso o projeto não siga esses princípios, infelizmente o projeto pode fracassar, o Ciclo de vida garante a qualidade do projeto, pois segue os passos essenciais de inicio até o fim do projeto, Seguindo esses princípios com certeza seu projeto e seu produto irá obter o sucesso esperado, e sobre tudo, seus clientes estará satisfeito com o projeto, pois foi planejado e entregue o esperado.
Conclusão
Em um ambiente globalizado e altamente competitivo, é importante que as empresas possam desenvolver métodos no gerenciamento e no desenvolvimento de sistema que possam se destacar no mercado. Isso é de grande importância quando se trata de sistema de informação. Essas palavrinhas chaves são fundamentais como; inovação, confiabilidade, desempenho, compromisso, respeito, pois são elementos fundamentais para uma empresa sair na frente dos seus concorrentes, diante disso, um gerenciamento com qualidade se tornou uma importante ferramenta estratégica.
Desta forma, as empresas devem ter como premissas boas metodologias e ferramentas para um bom gerenciamento de sistema, proporcionando a criação, e a entrega do software com qualidade, e sobre tudo, assegurar ao cliente que o sistema irá atender suas necessidades.