Numa sessão dinamizada por João Pedro Martins (Create It), que vem seguimento de uma sessão realizada internamente na Create It, e da qual viria também a sair a sessão INT06 do TechDays 2008, o objectivo desta sessão foi fazer uma revisão de algumas das inúmeras iniciativas na área de cloud-based computing e social networking, pensar um pouco sobre os impactos tanto em termos de arquitectura e desenvolvimento de aplicações como do que se pode esperar para o futuro próximo, em termos de IT. Foi uma sessão com tanto de conceptual como de arquitectura, apimentada pelo lançamento na véspera do AppEngine do Google, seguido imediatamente pelo "leak" de uma iniciativa «Red Dog» da Microsoft.
Os slides da apresentação estão disponíveis aqui. Dois outros links interessantes, pelo contexto mais de sociedade, são as colunas do blog do Nicholas Carr e do Robert X. Cringely.
Aproveitando a visita do Pavel Hruby à PRIMAVERA, realizamos uma sessão GASP@Porto que contou também com a participação de outras empresas da região de Braga e com docentes da Universidade do Minho.
O Pavel Hruby é um entusiasta de model-driven design que trabalhou vários anos na Navision e na Microsoft Business Solutions. Nos dias de hoje é um dos principais especialistas em REA (Resources, Events, and Agents).
A sessão versou sobre os conceitos principais da ontologia REA e na concretização desses conceitos (e outros) na framework de desenvolvimento de aplicações de negócio que o Pavel está a explorar no âmbito do seu projecto REA Technology.
Os slides da apresentação estão disponíveis em anexo e foram gentilmente cedidos pelo Pavel Hruby.
A terceira edição do TechDays 2008 realizou-se em Lisboa no mês passado, e este ano aproveitou-se a disponibilidade e cortesia da organização para organizar dois painéis do GASP no espaço do evento. Ambos os painéis aconteceram ao final do dia, já depois das sessões, e foram abertos tanto nas participações como nos temas. Falou-se das mais variadíssimas questões, desde a eterna "o que é arquitectura", a como lidar como evolução tecnológica constante, estimativas em projectos de desenvolvimento, metodologias ágeis, identificação de granularidade de serviços, processos de selecção de frameworks, e vários outros temas.
No primeiro dia o painel terá contacto com cerca de 30 pessoas, e na sexta-feira outras 20 (obrigado!), entre participantes na conferência e elementos do GASP. O encerramento do recinto foi o que ditou, em ambos os dias, o fim das sessões.
Foi a primeira vez que o grupo organizou um evento fora do espaço das reuniões mensais, e foi interessante recolher feedback de grupos mais alargados de pessoas, abrindo ainda espaço para outras iniciativas no futuro. Claramente um formato interessante, e a repetir.
A sessão do dia foi com uma pessoa da Shlock Labs, uma empresa luso-indiana de desenvolvimento Offshore. O objectivo era conhecer um pouco mais das práticas das empresas que praticam Offshore, não apenas na Índia mas nos países do BRIC e outros. Outro aspecto interessante é o facto de a empresa ter efectivamente começado em Portugal, o que à partida lhe permitirá ter facilidade de realização de projectos no país.
A discussão centrou-se muito nas práticas comuns de gestão e controlo de qualidade das equipas externas, e no modelo de trabalho em equipa. Um aspecto que pessoalmente achei curioso, foi que não achei que as metodologias de desenvolvimento estivessem especialmente avançadas, se comparadas com as práticas actuais de várias das pessoas presentes, em termos de aspectos como Integração Contínua ou Testes Unitários. Seria talvez de esperar que uma indústria com 2 milhões de pessoas no país tivesse um efeito de escala tal que lhe permitisse ser líder em áreas como Software Factories e Modelação, por exemplo. Por outro lado, o Babu referiu que não ter qualquer espécie de dúvida que a equipa dele é capaz de fazer mais rapidamente e melhor que uma equipa localizada cá, e também com custo significativamente mais interessante. Um dos problemas que referiu, no entanto, é que nem sem sempre é simples ganhar confiança de clientes para aquele primeiro projecto que pode demonstrar o benefício de uma relação deste tipo a médio/longo prazo.
E é claro, transmite uma grande sensação de humildade perceber que na Índia, a cada 1-2 anos terminam cursos de informática talvez tanta gente como há actualmente no mercado de IT em Portugal inteiro.
O projecto CADIMO2 (cadastro de imoveis) foi apresentado pelo Paulo Cunha (IT Sector) que descreveu as principais motivações e dificuldades encontradas no projecto (ver apresentação em anexo).
A discussão foi prolífica e debateram-se opções nomeadamente sobre a utilização de Active Record ou Domain Model + Data Mapper e beneficios/experiência de integração continua.
O Mitch Lacey esteve em Portugal em Janeiro para eventos e uma certificação de Scrum. Aproveitando a estada dele no país, convidámo-lo para uma reunião do grupo. Especial interesse até pelo facto de vários dos presentes terem alguma experiência de "mundo real" na utilização de Scrum, e terem assim oportunidade de confrontar práticas. Foi aliás a segunda vez que o grupo se reunião para falar de Scrum.
A reunião foi conduzida como um projecto Scrum: foram identificados os vários tópicos de interesse a discutir (product backlog), determinou-se um intervalo de tempo para cada um, atribuiram-se prioridades (cada pessoa distribuíu 10 pontos pelo tópicos identificados), e começou-se a discussão por ordem. Os temas que não couberam no sprint terão de ficar para o regresso do Mitch a Lisboa. :-)
Vários dos temas discutidos foram os previsíveis, como sejam a relação entre Scrum e projectos de preço fixo, a produção de estimativasd e o "cone of uncertainty" (www.codinghorror.com/blog/archives/000623.html), o papel de arquitectos em equipas e projectos Scrum, e sobre formas de estruturar equipas e o papel dos especialistas/consultores.
Foi uma discussão interessante e animada, veremos se no regresso do Mitch haverá o segundo sprint.
A sessão dividiu-se em duas partes apresentadas pelo Francisco Duarte e Luis Martins, mas focando nos aspectos de desenvolvimento de interfaces com o utilizador.
Na primeira parte, o Francisco Duarte apresentou uma visão histórica das interfaces gráficas com utilizadores no dominio dos computadores, mas lançou algumas questões/provocações sobre o futuro das interfaces e dos dispositivos. Houve algumas opiniões divergentes sobre se interfaces tipo Microsoft Surface serão ou não adequadas a aplicações de negócio ou apenas para entretenimento/show off com clientes. Para terminar, o Francisco colocou a questão de quais as interfaces que teremos daqui a 100 anos: Computadores com Humanos Embebidos ou Humanos com Computadores Embebidos?
Na segunda parte, o Luis Martins apresentou um pouco o que é o Silverlight com alguns exemplos para demonstrar que nos encontramos ainda longe daquilo que realmente pretendemos. Após acessa troca de opiniões :-) sobre o que o silverlight é ou não é as opinioes pareciam divididas: por um lado havia os que achavam que o silverlight é fantastico e bem resolver uma serie de problemas com as tecnologias actuais (da Microsoft); por outro há os que acham que o XAML e o silverlight são apenas para resolver um problema de persistencia da apresnetação e que continuam longe do objectivo de declarar a intenção da interacção, que é o que o designer de interacção pretende. Como exemplo, o Luis Martins mostrou várias animações tipicas dos exemplos do Silverlight mas que o Silverligth não suporta, obrigando o programador a "mastigar" o código do exemplo para o tentar usar nas suas aplicações.
A última reunião do GASP Lisboa aconteceu na Gare Marítima de Alcântara, aproveitando o convite do CodeBits para utilizar um espaço no local, com uma apresentação e discussão com Mahesh Prakriya da Microsoft sobre Linguagens Dinâmicas. A sessão foi em modo "walk-in", com uma participação alargada e interactiva.
O Mahesh fez uma apresentação relativamente rápida sobre linguagens dinâmicas e as suas diferenças face a ""linguagens tradicionais"" como C# ou Java, nomeadamente no facto de utilizarem "dynamic typing" e permitirem "object morphability" (por exemplo, adicionar métodos a uma classe em run-time, ou até a instâncias de uma classe). Fez também a ligação aos universos de duas linguagens "decanas", o Lisp e o SmallTalk.
Aquilo que se nota mais à primeira vista ao ver exemplos de código é obviamente a sintaxe não totalmente familiar, mas também um dos "selling points" destas linguagens, o facto de serem menos verbosas (diria que uma maior relação signal-to-noise). Igualmente interessante foi a ligação ao modelo de Test Driven Development (TDD), que geralmente caminha braço-a-braço com linguagens dinâmicas, até porque a flexibilidade e dinamismo também tem um custo, quando se troca as verificações em compile-time por um ambiente runtime.
A sessão acabou por ser guiada para algumas questões mais técnicas e específicas da implementação do Dynamic Language Runtime (DLR), IronPython e IronRuby, e o Mahesh fez demos que incluíram invocação a web services, Ink/reconhecimento de texto, Speech, e utilização em conjunto com SilverLight. Bastante elucidativas.
Em termos do universo .Net, uma limitação da DLR é que apesar de se poderem invocar assemblies com código "não dinâmico", o inverso não é infelizmente verdade devido à diferença no modelo de execução. Claramente seria uma potencialidade interessante, permitindo trazer este tipo de linguagens a mais cenários, especialmente empresariais.
Pessoalmente, sou grande adepto de modelos de Domain Specific Languages (DSL's), e enquadro este tipo de linguagens nesse universo. Existe um conjunto de universos aplicacionais em que as linguagens dinâmicas são especialmente interessantes.
No sentido de procurar partilhar com a comunidade aquilo que tem sido o foco das actividades do GASP desde Julho de 2005, está a ser criado este blog onde vão ser colocados conteúdos relativos às reuniões e temas discutidos no grupo. Passa a ser o canal oficial do grupo.
O GASP tem actualmente mais de 2 anos, com 3 grupos regionais e cerca de 40-50 pessoas a participar. Apesar de isto já ser significativo em termos de representatividade da indústria em Portugal, obviamente que há muitos mais profissionais com competências e experiências interessantes que seria bom ter envolvidos no grupo.
O grupo nasceu com o principal objectivo de aproximar um conjunto de pessoas com vasta experiência na área de IT do mercado nacional, permitindo a troca de experiências em torno de temas da área Arquitectura de Software. Este objectivo tem sido largamente conseguido, tendo inclusive sido efectuado um primeiro encontro anual no início de 2007.
O problema do modelo seguido está no facto de ser baseado em reuniões regulares com um número muito limitado de participantes, o que obviamente não é escalável a uma participação alargada de mais profissionais. A vantagem do modelo seguido, por outro lado, está na grande proximidade que permite, com a consequente criação de relações de confiança entre os envolvidos. Este factor tem sido o principal motivo, juntamente com as questões logísticas, para o grupo se manter fechado e com participações por convite.
Outro aspecto de referir tem a ver com a relação com a comunidade de desenvolvimento. A área de Arquitectura de Software é muito frequentemente vista com desconfiança, apesar de em muitos muitos casos, quem trabalha em arquitectura não serem "eles", mas sim "nós" com alguns anos em cima e determinado perfil e tipo de competências. Este é um dos aspectos que se procura sempre desmistificar, nem sempre com grande sucesso. O grande pedido que é feito entre pares arquitectos, também acontece com esta comunidade: partilha de experiências. Acho importante tentar encontrar um modelo em que isto seja possível e interessante para todos os envolvidos.
No outro extremo do espectro está o Negócio, as arquitecturas empresariais em grande escala, e é uma área em que tem claramente de ser feito mais trabalho para juntar mentes e pessoas.
Finalmente, um último aspecto que queria referir é o da participação do grupo na sociedade civil. O grupo tem espaço e capacidade para assumir um papel interessante não apenas como advisor nas suas áreas de actividade, com a pool de competências que tem, como para apoiar eventuais projectos sem fins lucrativos em que seja necessário envolvimento desse tipo.
Dito isto, está feita a introdução ao blog. O ArquitecturaDeSoftware.Org tem abertos não apenas os comentários a posts como os fóruns, pelo que convido os interessados na área a dar a suas opiniões sobre este assunto.
João Pedro Martins
Coordenador do GASP