O futuro do arquiteto e das arquiteturas Java Enterprise

40
Globalcode – Open4education Passado, presente e futuro das arquiteturas (e do arquiteto) Java

description

Palestra apresentada durante o www.thedevelopersconference.com.br 2011 em São Paulo.

Transcript of O futuro do arquiteto e das arquiteturas Java Enterprise

Page 1: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Passado, presente e futuro das arquiteturas (e do arquiteto) Java

Page 2: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Agenda

A escada rolante

Java & negócios

Arquitetura com Java

Dimensões de um arquiteto

ALM

Demonstrações técnicas

Page 3: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• desenvolvedor desde moleque;

• várias linguagens de programação;

• fundador da Globalcode e Elétron Livre;

•mais de 15 cursos publicados na rede Globalcode;

•mais de 10 anos com Java;

• vários projetos Java executados;

• fabricando modelos exclusivos de Arduino e robôs;

• sócio e casado com @yarasenger

• pai de dois lindo filhos sou apaixonado por beatles, boa comida, vinho, violão, violino, surf, pizzas, barco.

Vinicius Senger

Page 4: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

T.I. é uma escada rolante...

Page 5: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• texto -> gráfico -> desktop -> web 1.0 – web 2.0 -> RIA -> Computação Física

• Video-texto -> BBS -> E-mail -> ... -> Twitter -> Google+

• TXT -> XML -> WSDL -> WebService -> REST / JSON

• TCP/IP -> CORBA -> EJB 1 -> EJB 2 / Spring -> EJB3

• Na mão -> Ant -> Maven / Gradle-> Hudson

• Application Server: caro e pesado -> leve e open-source

• Hard deploy -> Hot deploy -> Continuous Deploy

• CGI -> Servlet -> JSP -> JSF -> Inúmeras opções

• TXT -> Hierárquico – Relacional – OO -> noSQL

T.I. é uma escada rolante...

Page 6: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Negócios também!!!

Page 7: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

•moeda -> dinheiro -> cheque -> cartão -> pagseguro

• boca-a-boca -> jornal -> radio -> tv -> internet

• telefone -> fax -> e-mail -> B2B

• conexão local -> extranet -> internet -> internet rápida

•mercado local -> regional -> nacional -> internacional

• centralizado -> poucos fornecedores -> distribuído -> muitos fornecedores

•Go horse - Business Plan - Cascata – UP – XP – Agile – SCRUM – Lean / Startup

Os negócio também!

Page 8: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Ambas estão evoluindo em um ritmo alucinante!

• A mesma trilogia para T.I. e negócios:

• Definir, implementar e gerir

• Vários negócios novos sendo alavancados!

• TODOS precisam de um software!

•Mas, sabemos usar tais escadas rolantes???

• T.I. como escada para negócio?

• Negócio como escada para T.I.?

Em sinergia?

Page 9: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

?

Page 10: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

?

Page 11: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

?

Page 12: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Arquiteto e o Negócio

•Os papéis técnicos e de negócio estão sendo refatorados:

• Técnicos cada vez mais comprometidos com negócio

• Pessoas de negócio cada vez mais comprometidas com a técnica

• Exemplos:

• DSL’s: meio de criar linguagens para pessoas de negócio

• Lean Startup: uma forma de tornar o técnico empreendedor

• ALM: técnica + negócio

Page 13: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Java no mundo dos negócios

• Excelente histórico em grandes empresas e startups

• Escolha segura para investidores

• Proteção de investimento

•Opções de tecnologias para diferentes cenários

•Muitas empresas envolvidas

• Esta ficando cada vez mais simples

• Alto índice da adoção no governo

• Sim! Seu processo de evolução é mais lento

(ainda bem!)

Page 14: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Bulling Java

• Diariamente declaram a morte do Java, mas:

•MULTI-PLATAFORMA

•Mobile, embedded, server-side, RIA, Web, índices de transações nível e-bay, projetos na NASA

•Oracle, Google, IBM, SAP, Nokia, Motorola, Mais de 100 linguagens rodam na JVM

• cases, Cases, CASES. de todos os tamanhos

• Eu mudo, você muda, nós mudamos

• Arquiteturas clássicas até “piercing software”

•Gaste tempo fazendo sua tecnologia crescer e não a dos outros morrer!

Page 15: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Escolher linguagens

Java

.NET

PHP

Ruby on Rails

Grails

NodeJS – V8

...

ps. uma nova linguagem não substitui um psicólogo.

quase todas podem atender a quase todos os tipos de

negócio, principalmente Web! #fato

quase todas podem atender a quase todos os tipos de

negócio, principalmente Web! #fato

Page 16: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Consumidor / Produtor

• Podemos abstrair o mercado de desenvolvimento em:

1. Produtor que não vai consumir: cria API’s, IDE’s, frameworks, linguagens / DSL, idéias, ferramentas etc.

2. Consumidor que vai produzir: utiliza um conjunto de API’s, IDE’s, frameworks etc. para produzir uma solução de negócio

• Qual o perfil do seu projeto / empresa / produto?

Page 17: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Histórico Java EE

• J2EE: abriu um excelente antecedente e fomentou padrão, competição, guerra e inovação;

• Java EE 5: ampla adoção atualmente. Uso comum de JPA com Hibernate, Faces, Wicket, GWT, Spring, EJB, JMS, Quartz, ...;

• Java EE 6:

• CDI

• Lightweight container

• JSF 2 e Facelets para aplicativos “desktop web”

•OSGi

• Suporte robusto para outras linguagens

ALM e CLOUD!

Page 18: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Por perfil de negócio

• Java EE seguro e conservador:

• JPA / Hibernate / ehCache

• EJB / Spring / Weld

• JSF, Wicket, GWT

• jQuery com REST para páginas read-only

• JMS, WS e REST

• Projetos de Inovação:

• Java EE com OSGi, Scala, MongoDB, Play, Grails

• Nichos :

• Puredata, Processing, JavaME, RTOS

Page 19: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Java: escolhas seguras

EJB (session e MDB) Spring CDI

JSF Wicket GWT

extjs jQuery Richfaces

Swing JavaMail JMS

JPA / Hibernate MongoDB ehCache

Java EE 6 puro Seam Grails

REST WebServices Mule

Maven Hudson Nexus

jUnit / easyMock Selenium jMeter

Page 20: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Test-driven development

• Clean code

• Dependências

•Modularidade

• Lightweighting

• Arquétipos

• Plug-ins

• Popularização das DSL’s

• Integração e deployment contínuo

Técnicas em foco

Page 21: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

1 projeto = 1 arquitetura

• Visão errada e vício de grande parte de developers experientes e arquitetos

• Maior parte dos projetos envolvem:

• Interfaces Web read-only (consulta) com requisitos AJAX, grandes demandas e possibilidades de cache

• Interfaces administrativas tipo aplicativo old-style

• Integração e / ou exposição de dados

• A concepção multi-arquitetura é uma tendência boa para Cloud Computing;

• Riscos técnicos maiores em negócios de menor risco

Page 22: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Analisar requisitos não-funcionais relevantes

• Apoiar as empresas nas decisões e escolhas das tecnologias de desenvolvimento

•Minimizar riscos

• Ajudar desenvolvedores na implementação

• Escrever documentos, participar de reuniões

• Fazer apresentações e treinamentos

• Resolver problemas mais graves em produção

• Arquiteto de software = Desenvolvedor sênior com habilidades de lideranças

Trabalho clássico de arquitetura

Page 23: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Requisitos não-funcionais

Escalabilidade Manutenabilidade Confiabilidade

Disponibilidade Estensibilidade Gerenciabilidade

Performance Mobilidade Implementabilidade

Usabilidade Conectividade Testabilidade

Modularidade Interoperabilidade Segurança

Ferramental Auditabilidade Internacionalização

Cross-vendoring Custo propriedade Compatibilidade

Suporte comercial Recursos humanos Acessibilidade

Entregabilidade Risco Produtividade

Page 24: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Tecnologias no mundo Java...

Maven JavaFX JSF

Wicket Vaadin EJB

Spring jQuery Richfaces

Hibernate noSQL OSGi

jUnit Scala Grails

Gradle CDI ehCache

Seam REST Spring Security

Play WebServices Nexus

Mule Portlets Hudson

Page 25: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

DEMO: arquiteto 3D

Page 26: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Para implementar

1. contrata um arquiteto ninja

2. analisa a empresa

3. analisa o negócio

4. analisa os principais requisitos não-funcionais

5. escolhe tecnologias que atende aos 3 itens anteriores

6. escreve documentos

7. implementa um aplicativo de referência

(quando o arquiteto ainda sabe programar)

7. e...

Page 27: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Arquiteto ninja

Page 28: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Ninja Pattern

• Empresa: tem a visão que é um trabalho finito

• Arquiteto: tem a visão que ao término da arquitetura não nada mais de excitante para se fazer

• Consultorias: são contratadas e esperam delas uma reencarnação tecnológica expressa

• Arquitetura é um trabalho orgânico e contínuo;

• Arquitetura evolutiva / contínua!

• Calma: também não significa que você precisa ter um arquiteto full-time!

Page 29: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Tem uma visão mais ampla de negócios

• Escolhe tecnologias para negócios e não para sua ansiedade

• Fazem revisões constantes de código

• Implementam métricas de qualidade PKI

• Ajuda a cadenciar a motivação técnica da equipe

• É adepto a agilidade e lean (ou pelo menos entusiasta)

• Conhece Application Life Cycle Management

Arquiteto multi-dimensional

Page 30: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Entender o tipo de empresa

Empresa pequena Média Grande

Gigante Multinacional Seu tio

Startup Rede nacional Governo

Gigantes de TI Conservadora Moderna

Bom momento Estável Péssimo momento

Pesquisas Inovação Junior

Cooperativa Associação Órgão público

Profissional autônomo Investidor Familiar

ONG Holding “Fio do bigode”

Page 31: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

Entender o negócio / projeto

Mercado de Ações Agropecuária Startup Web

Games Fábrica de aviões Padaria

Cervejaria Eletrônicos Open-source

Supermercado Redes de loja Prefeitura

Exército Banco do Governo Banco Privado

Escola pública Escola privada Universidade pública

Projeto Inovação Sex shop Embarcados

Marketing Projeto Google Dispositivos móveis

Um “e-bay” Arte tecnológica Robótica

Page 32: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

•Gestão de requisitos / backlog / roadmap

•Gestão de Código e versões

•Gestão de Construção e integração continua

•Gestão de Componentes e dependências

•Gestão de Repositórios de componentes

•Gestão de Arquétipos

•Gestão de Wiki / Documentação

•Gestão de Testes

Gestão de arquitetura

Page 33: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

DEMO: arquiteto multi-D

Page 34: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Application Lifecycle Management: gerenciamento contínuo do software;

• Casamento da gestão de negócio com engenharia de software;

• Requer ferramentas integradas para gerenciar:

Requisitos;

Repositório de código;

Construção integrada;

Arquitetura e codificação;

Testes e qualidade;

Gerenciamento de versões e componentes;

A.L.M.

Page 35: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

A.L.M.

• Independente de metodologia, arquitetura e tecnologia TODA EMPRESA PRECISA DE A.L.M.

• Não documentar o futuro (Agile / Scrum) é uma coisa, poder rastrear o passado é outra;

• ALM = é como álbum de fotografia do seu software, com retratos tirados automaticamente a cada mudança, falha, novo requisito, novo release, etc.

• Todo mundo sai ganhando: bom para o developer, gerente, arquiteto, Scrum Master, P.O., V.P., CIO, CTO, Asponi, etc.

Page 36: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Expõe a arquitetura facilitando e motivando sua a gestão:

• Requisitos / Bugs / Backlog / Atividade / User Story

• Documentação (wiki / files) e suporte (fórum)

• Versionamento, tags, brunches, ..

• Componentes

• Repositório de componentes

• Arquétipos

• Construção

• Testes – Homologação - Produção

• Deployment

Gestão de Arquitetura

Page 37: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Exemplo de pilha A.L.M. open-source:

A.L.M. open-source

Disciplina Software

Gerenciamento de Requisitos Redmine

Gestão de código / versionamento SVN e GIT

Construção e dependências Maven

Gerenciamento de arquétipos Maven

Integração Contínua Hudson

Repositório de componentes Nexus

Ferramenta para desenvolvimento Eclipse IDE com plugins

Page 38: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Vantagens na adoção:

•Maior rastreabilidade;

• Cultura de planejamento de releases;

•Gerenciamento integrado;

• Simplificação nos processos;

• Agilidade na construção do software;

• Conseqüente aumento na cultura de testes;

• Aumento da reusabilidade;

A.L.M. - vantagens

Page 39: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

DEMO

•O que der tempo:

• ALM

• Scala com Java EE 6

•OSGi com Java EE 6

•O que não der tempo faremos no stand da Globalcode sob-demanda!

Page 40: O futuro do arquiteto e das arquiteturas Java Enterprise

Globalcode – Open4education

• Arquitetura é um trabalho multi-disciplinar que demanda diferentes visões

• Arquitetura não é um trabalho finito

• Arquiteto é o nome utilizado principalmente no Brasil, mas refere-se a um senior de software;

• Habilidade de T.I. senior somadas as habilidades de negócio, gestão e startuping pode transformar você em um empreendedor técnico;

• Ser arquiteto não signifca parar de codificar;

• Ser de negócio não significa parar de codificar;

• E ser arquiteto e codificar não significa não ser de negócio

Conclusões