CBSoft - Trilha da indústria - Programação

 

[26 de setembro (segunda-feira)]


9:00 - 9:45

Ivaldir Junior (Softex Recife)

  • Atualmente podemos perceber a intensa busca das organizações de TI e, mais especificamente nas empresas de desenvolvimento de software por melhorias em seus produtos. A ausência de um processo definido de teste de software vem trazendo grandes prejuízos para essas organizações. Incentivado por este contexto, foi concebido o modelo MPT.Br que é baseado nas melhores práticas de teste de software. Esse modelo promove a integração das atividades de engenharia de software, otimizando os processos de teste para alcançar os resultados desejados através da entrega de produtos com qualidade. O principal objetivo da palestra é prover para os participantes uma visão geral do modelo que trata da melhoria do processo de teste de software através de melhores práticas que tem como principais benefícios:
  • • Abordar a melhoria contínua nos processos de teste conforme os objetivos organizacionais e nível de maturidade almejado;
  • • Fornecer uma base para avaliação e consequente identificação do grau de maturidade presente nas organizacionais; e
  • • Reunir as melhores práticas e estruturá-las segundo o grau de complexidade versus o nível de maturidade que a mesma estará relacionada.

9:45 - 10:30

Joseph Yoder (The Refactory)

  • Strapline:
  • • Adaptive Architectures to make systems more flexible and scalable in The Cloud.
  • • Meta-Architectures to enable scalability and flexibility in The Cloud.
  • • Learn how and when to build systems that can dynamically adapt to changing requirements.
  • • Get introduced to real world scalable systems built using metadata.
  • • Architectures that enable dynamic and scalable systems through metadata.
  • The recent surge in cloud computing has really changed the way architectures are evolving. Platforms as a Service (PAAS) and Software as a Service (SAAS) is becoming where organizations can get necessary resources as needed without having to worry about many hardware and software configuration issues. It is no longer the case that systems need to be isolated to a single platform or set of platforms with a lot’s of possible maintenance issues. The core premise with the cloud is that different resources including services can be allocated and integrated as needed, adapting to the specific needs of the organization or systems being built.
  • Additionally, “Cloud Computing” allows for a large numbers of users and flexibility for different services being provided. Different types of resources and services provide maximum configuration and flexibility within the cloud and metadata is key for this type of variability. , It is quite often the case that cloud applications need to be able to dynamically adapt at runtime, without stopping the application. It is important to provide a way for users to customize their own experience with cloud applications. Trying to do this without ways for users to describe and adapt to their specific needs will not scale at all. This scaling and adaptability problem becomes even more imperative when you have many different organizations with different requirements. If, in the cloud, these organizations cannot adapt and define their different needs, the cloud solution would not be that compelling to them. In these situations, it is important to allow the ability for different customizations of the services, and to allow the users themselves to dynamically configure the systems. In order to be able to adapt to these dynamic requirements, the demand for Meta-architectures, such as those provided by Cloud solutions such as SalesForce, are necessary to make these types of adaptability possible!
  • What does it take to build a system that can be changed and adapted without programming? When is it appropriate to consider stepping into the meta world to build such an extensible system specifically in the “Cloud” environment? This talk answers these questions and presents ideas about using meta-architecture to scale in the “Cloud”.

10:30 - 11:00: Coffee-break



11:00 - 11:45

Teresa Nascimento, Kiran Mantripragada (IBM do Brasil)

  • As cidades são uma complexa e multidimensional rede de componentes interligados, ou sistemas de sistemas, estes representados pelos diferentes serviços prestados à população, como transporte, energia, comunicações, educação e sáude, nas quais as operações destes serviços devem funcionar de forma coordenada e eficiente entre os diferentes órgãos de forma que ofereçam segurança e qualidade de vida para o cidadão. A gestão de operações em uma cidade requer o suporte da tecnologia com o uso de soluções específicas para ajudar a controlar os níveis dos serviços, atuar na resposta a incidentes e emergências e minimizar os impactos de interrupções nos serviços para a população. Em se tratando de sistemas tão complexos e dinâmicos, como são as próprias cidades, tais soluções precisam ser flexíveis para se adaptar à natureza dinâmica da gestão de operações de uma cidade, que, dado o contínuo desenvolvimento e progresso urbano, conta com novos desafios, novos tipos de incidentes a serem tratados, novas informações disponíveis, novos processos a serem gerenciados. Este trabalho apresenta os resultados da implantação de uma solução para gestão de operações, um sistema baseado em arquitetura orientada a serviços, em uma cidade brasileira que está em constante desenvolvimento. A solução desenvolvida apresenta algumas características que permitem a sua constante evolução face a novos requisitos: facilidade de integração com outros sistemas, simplicidade da interface do usuário e para adaptação da mesma e agilidade na configuração e uso de componentes reusáveis de software.

11:45 - 12:30

Alisson Andrade, Viviane Malheiros, Ronaldo Agra (Serpro)

  • Durante a palestra, serão apresentados o conceito de modelagem de negócio e como esta pode ajudar a reduzir problemas como redundância de trabalho, falhas de comunicação e falta de integração entre sistemas de apoio a processos. A modelagem de negócio, apoiada sobre os pilares de processo, dados e estrutura organizacional, será discutida com o foco na produção de modelos de negócio que possam ajudar no alinhamento das operações da organização com sua visão e estratégia, bem como na adequação e construção de sistemas que apoiem efetivamente os processos organizacionais. Para isso, será apresentado o Processo Demoiselle Modelar Negócio, que é um processo livre para guiar a criação de modelos de negócio que representem a situação atual do negócio, assim como identificar e propor melhorias em estrutura, dados ou processos organizacionais através de fluxos BPMN. O processo foi inspirado em modelos de referência de mercado e experiências em modelagem de negócio de uma empresa de grande porte. Para sua construção foram aplicados surveys e workshops com até 28 analistas de negócio.

12:30 - 14:30: Intervalo para almoço



14:30 - 15:15

Guilherme Lacerda (Facensa/UniRitter/TargetTrust/Surya Software Innovation); Daniel Wildt (Trevisan Tecnologia)

  • Nesta palestra, apresentaremos como os princípios do Lean Software Development fazem sentido na hora de desenvolver software. A partir destes princípios, veremos como que a adoção de práticas como baby-steps, refactoring, padrões de codificação e testes automatizados podem ajudar a entregar software com mais qualidade, principalmente através da escrita de um código mais simples, limpo e, consequentemente, mais fácil de manter. A base do Lean é o Trabalho Padronizado e o Kaizen, que são os primeiros passos para se chegar na padronização e entender os valores do 5S. A partir do momento que passamos a compreender estes valores, fica muito claro como aplicar estes conceitos em qualquer contexto, inclusive no desenvolvimento de software. Para esta aplicação, as práticas do Extreme Programming como refactoring, test-driven development, baby-steps e padronização de código são os nossos melhores aliados para a melhoria contínua. A palestra será conduzida “by example”, ou seja, usando um exemplo prático de código ruim e como estes princípios e práticas (e algumas ferramentas como análise estática, teste de unidade, code coverage) ajudaram a limpar o código e deixá-lo mais simples.

15:15 - 16:00

José Roberto Campos Perillo (ITA/GSW); Eduardo Guerra (ITA)

  • Esta palestra consiste na apresentação de uma abordagem de criação de arquitetura de software baseada em metadados e aspectos, a qual foi aplicada a um sistema desenvolvido na plataforma Java recentemente entregue a um órgão do governo brasileiro. No estudo de caso, serão apresentados os requisitos não-funcionais que motivaram o uso dessa abordagem, assim como cada um foi implementado. Para exemplificar, serão apresentadas questões relacionadas a implementação da segurança da aplicação, AJAX reverso, auditoria de registros de banco de dados, validação de objetos de domínio e integração com outros sistemas. Na conclusão, serão apresentados os benefícios obtidos, como o ganho de flexibilidade na aplicação e a aceleração da velocidade da equipe no que diz respeito à produtividade.

16:00 - 16:30: Coffee-break



16:30 - 17:15

Vinicius Garcia (UFPE); Eduardo Cruz, Jackson Raniel Florencio da Silva (RiSE)

  • "Relato dos resultados da aplicação de uma abordagem de linhas de produto de software com foco em aumento de produtividade"
  • Esta palestra relata os resultados obtidos na aplicação de uma abordagem sistemática de linhas de produtos de software em uma das empresas parceiras do programa de residência: a Espe3, empresa do Porto Digital que trabalha com desenvolvimento de software ERP (Enterprise Resource Planning) e de automação comercial com quase 20 anos no mercado. Além disso, almeja o melhoramento do seu processo de desenvolvimento com foco a obtenção da certificação MPS.Br nível G. Será demonstrado a abordagem sistemática utilizada e os resultados obtidos até o momento. A abordagem composta com avaliação de processo de desenvolvimento, avaliação de arquitetura, avaliação de tecnologia de desenvolvimento e extração sistemática de componentes com o objetivo de implantação de uma linha de produto. Para a análise do processo de desenvolvimento, os resultados obtidos e as ações tomadas em prol de seu melhoramento serão demonstrados
  • Além disso, será apresentada a arquitetura da família de produtos de software, um comparativo entre a tecnologia de desenvolvimento atual e algumas ofertadas pelo mercado, como o reuso tem sido incutido no processo de desenvolvimento de software, conclusões a respeito do que foi feito até o momento e as próximas atividades para estruturação da linha de produtos e migração para nova tecnologia de desenvolvimento. Ao final do trabalho espera-se que a componentização pode se tornar um diferencial para a diminuição do custo e do tine-to-marketing.O objetivo dessa apresentação é apresentar a metodologia aplicada, os resultados obtidos na indústria e levantar a discussão sobre a importância e o ganho que pode-se alcançar com a utilização de práticas de reuso de software, no que tange a diminuição do custo e tempo de desenvolvimento e consequente aumento do lucro e da produtividade em um ambiente de produção de uma empresa já consolidada no mercado. Além disso, revelar um road map para empresas interessadas em incutir reuso de software no seu ciclo de desenvolvimento.

17:15 - 18:00

Daniel Wildt (Trevisan Tecnologia); Guilherme Lacerda (Facensa/UniRitter/TargetTrust/Surya Software Innovation); Carlos Lopes (ThoughtWorks)

  • O temido “merge hell” é um dos principais e provavelmente o mais importante sintoma de que você tem abusado do seu sistema de controle de versões e, consequentemente, afetando sua produtividade e a qualidade do código que você escreve. Nessa palestra, veremos os principais problemas que a maioria dos times de desenvolvimento enfrenta ao administrar diferentes funcionalidades e versões em uma base de código e como a prática conhecida, entre outros nomes, como trunk based development, sugere maneiras de evitar esses e outros problemas relacionados a controle de versões.
  • Serão apresentados os principais problemas do uso de branches como a única forma de desenvolvimento de múltiplos projetos de software sobre uma mesma base de código (prática essa também conhecida como branching by source control), onde os mais notáveis são o temido “merge hell” e o fato de que geralmente o código desses branches fica por muito tempo em um estado “não-entregável”, entre outros. Utilizaremos exemplos reais para demonstrar o tamanho dos prejuízos que podem decorrer deste desleixo com suas bases de código, bem como casos de projetos que possuem diversas versões e funcionalidades sobre uma mesma base de código e entregas constantes.
  • Veremos também situações onde o uso de branches é desejado, já que a prática de trunk based development não é contra o uso dos mesmos, mas sim de uma aplicação mais sensata. Para finalizar, veremos um exemplo de feature toggle, uma das estratégias propostas, de maneira a suportar o desenvolvimento de múltiplas frentes de desenvolvimento sobre uma mesma base de código, provendo assim ao público informações mais tangíveis sobre como começar a colocar esses conceitos na prática.



Promoção

   

Organização

       

Patrocínio