Monday, November 14, 2005
#
Já não é a 1ª vez que assistimos a notícias que divulgam que a Microsoft internamente usa Scrum nos seus projectos. Esta notícia na eWeek deixou-me muito satisfeito, tendo em conta que na Agilior somos aficionados em Scrum. Para aqueles que não quiserem ler a notícia deixo aqui apenas este excerto:
David Treadwell, corporate vice president of the .Net Developer Platform group at Microsoft, said that while Microsoft welcomes the use of methodologies like Scrum, "we're not mandating them, but we're encouraging them. So Scrum is one process—the idea that teams meet once a day for half an hour, figure out what they're going to do then go off and do their work very quickly.
Na notícia em causa vem também uma referência à utilização de Extreme Programming, tal como é dito neste excerto
One way Microsoft's development teams intend to deliver on this is through the use of agile development methodologies, such as extreme programming and Scrum, company officials said.
Na minha opinião esta combinação é extremamente ágil, e é por isso que hoje em dia já existem duas novas metodologias que fazem esta combinação:
A único questão que me intriga é o facto desta notícia não fazer qualquer referência à metodologia MSF v4.0. Ainda que esteja em Beta, esta metodologia propõe duas abordagens: uma formal, designada por CMMI e outra por Agile. O Visual Studio Team Systems suporta de raíz estas duas abordagens. Não conheço de fio a pavio o MSF Agile, mas confesso que não deixa de ser estranho na notícia não haver qualquer referência ao MSF Agile.
BFC
Thursday, October 13, 2005
#
Um dos componentes das metodologias ageis, é a integração contínua. A integração continua advoga que toda e qualquer alteração ao sistema, deverá despoletar (tipicamente disparada quando alguém faz um checkin de artefactos do projecto) uma compilação e teste "completo" do sistema. (build+ testes unitários/regressão é mais habitual, mas poderá ser complementada com testes de cobertura, stress, tudo o que nos possamos lembrar etc).
Contudo, quem está a utilizar ou irá utilizar em breve o Team Systems (VSTS) e utilize integração contínua, terá que prescindir da mesma já que o Team Build não suporta integração contínua (apenas builds agendados (ou pelo menos tinha, já que PDC foi apresentado uma maneira de fazer integração contínua com o VSTS , e o Dion Olsthoorn construiu custom tasks para o fazer também).
Isto era verdade até dia 10 deste mês. A equipa do projecto VSTS Plugins, lançou um plugin para o CruiseControl.Net que permite utilizar o cruise control com Team Systems.
Noticia aqui.
Ainda não tivemos oportunidade de testar o plugin ,mas parece ser uma excelente notícia para os agilistas que já estão a usar o Team Systems.
Tiago Pascoal
Wednesday, August 31, 2005
#
Uma das grandes potencialidades do Visual Studio 2005 Team System é o facto de permitir adoptar qualquer metodologia de desenvolvimento. Basicamente, aquando do arranque do projecto, é só escolher de uma lista qual a metodologia a adoptar, e automaticamente são criados os artefactos do projecto associados à metodologia em causa, bem como são definidos os tipos de Work Items e o processo de Workflow associado. Uma equipa pode definir os seus próprios templates e importá-los para dentro do VSTS, de forma a contemplar necessidades pontuais. Essa customização tem algum esforço associado, pois implica conhecer internamente o formato dos ficheiros de configuração onde consta a definição da metodologia. Actualmente já existe um parceiro da Microsoft, Osellus que oferece uma solução visual (Iris) para a definição dos processos, os quais podem ser exportados para o formato esperado pelo VSTS.
Não é dificil imaginar que este ponto de extensão do VSTS levará ao aparecimento de templates para metodologias conhecidas, como sejam XP, Scrum, MSF, RUP, etc. Julgo que na versão final serão incluidas apenas as metodologias MSF e MSF Agile (não sei se virá também XP). Já por diversas vezes manifestei o meu imenso gosto pelo Scrum, ao ponto de ser um amante da metodologia. Estando a usar o VSTS Beta2 actualmente num projecto, iniciei uma busca pelo template de Scrum, tendo como destino agradável uma empresa designada de Conchango. A conchango está a desenvolver um plug-in para incorporar o Scrum no VSTS. Encontrei inclusive esta apresentação, que olhando para os screen-shots parece ser promissor. Entrei em contacto com a Conchango, na tentativa de sermos um early adopter do plug-in. Infelizmente a conchango só estima lançar o produto em novembro com o VSTS, e que estará disponível para free download. Até lá continuaremos a usar de forma desintegrada os artefactos Scrum, em particular o Sprint Backlog, e os Work Items do VSTS.
Não esquecer no entanto, e tal como é referido na apresentação, a ferramenta não substitui o processo. Pode ajudar e ser uma fonte de aprendizagem, mas na minha opinião, nunca devemos cair no extremo de pretender substituir, por exemplo, algo tão importante como o Daily Scrum por algo disponibilizado pela ferramenta.
BFC
Wednesday, July 06, 2005
#
Já está disponível para download a nova versão do Enterprise Library June 2005, a qual não é mais do que um minor update à versão de Janeiro. Estou com alguma expectativa para ver a próxima versão, que já será sobre a framework 2.0 e Visual Studio 2005.
Tenho reflectido bastante sobre a utilização ou não da Enterprise Library. Ainda que existam na comunidade opiniões divergentes sobre a qualidade do desenho e arquitectura da EntLib, existe um facto inegável: a EntLib ganhou momento. Actualmente já existem pequenos projectos que são feitos em volta da EntLib (basta ver o resultado da pesquisa por Enterprise Library nos workspaces do GotDotNet).
Destaco em particular o Data Maping Application Block que não é mais do que um acelerador para a construção de DALCs. Nesta área de gestão de Entities, continuo a pensar que adopção de um O/R Mapper ainda é a melhor abordagem (a minha preferência vai para o LLBLGen Pro).
Como conclusão, penso que faz todo o sentido adoptar a EntLib, pois ofereçe um conjunto de bibliotecas que são comuns a todos os projectos, e além disso podemos usufruir de ferramentas e outros novos blocos aplicacionais que são feitos em volta da EntLib.
BFC
Tuesday, June 28, 2005
#
Segundo este artigo da CNET, a Microsoft vai lançar no PDC um toolkit de Ajax (suporte para .NET 2.0 e VS 2005).
Parece que o pendulo que tanto se inclinava para os smart clients começa a ficar agora um pouco mais equilibrado.
Tempos interessantes.
Via Scoble
Tiago Pascoal
Sunday, June 19, 2005
#
Recentemente ocorreu um evento em Lisboa patrocinado pela SQL Server Magazine onde se fez a apresentação do SQL Server 2005.
O programa era interessante,e ocorriam sempre 3 apresentações em simultâneo; uma dedicada a administração, outra dedicada ao desenvolvimento e finalmente uma outra dedicada a business intelligence (BI).
Pessoalmente não estava particularmente interessado na administração, a contudo a sessão de desenvolvimento interessava-me bastante por ser a nossa área principal de actuação, e a de BI porque apesar de não ser o nosso core, é uma area em clara expansão, e julgo que daqui a uns anos (não muitos) não saber BI, é como não saber SQL actualmente. Por isso mais vale ir já deitando um olho ao assunto, para depois não ser apanhado de surpresa.
A escolha era díficil, mas optei por iniciar com uma sessão de desenvolvimento sobre a utilização de .NET dentro do SQL Server. Sem dúvida que esta feature tem o seu interesse, mas das novas capacidades introduzidas com o 2005, esta é aquela que eu receio mais, julgo que será usada e abusada, mas sobre isto já dissertei o ano. A sessão foi interessante,mas estava à espera de mais tendo em conta que costumo seguir o blog orador Niels Burglund.
Para a segunda sessão, não podia deixar de assistir mais uma vez à sessão sobre o novo Service Broker. Esta é uma das novas features que considero mais interessantes. Ainda não tive oportunidade de a estudar em detalhe, mas tendo em conta o que já vi, considero que poderá ser extremamente interessante para aumentar a escalabilidade de sistemas de maiores dimensão quando bem utilizada. Contudo esperava um pouco mais desta sessão,o Niels alongou-se sobre os pequenos detalhes do broker. Como enviar mensagens, como subscreve-las, etc,etc quando eu esperava que se restringisse mais ao alto nível. Com a descrição de cenários de utilização, como tirar partido do broker,como não utilizá-lo,etc.
Na terceira sessão, não podia deixar de faltar à sessão de BI, já que sigo com bastante interesse o reporting services, e ainda não tinha visto nada sobre a nova ferramenta de reports ad-hoc que resultou da aquisição da ActiveViews. A apresentação foi muito boa, a sala estava apinhada e o orador era simplesmente excelente. O Report Builder (nova ferramenta de queries ad-hoc) é a novidade que me parece mais interessante (todas as outras novas features do reporting services pareceram-me incrementais, isto porque não me dedico a usar o RS para fontes não relacionais, já que pelo que vi o suporte para analysis services foi muito melhorado) já que tem o potencial de deixarmos de ouvir a frase mortifera "só mais uma coisinha mas é muito simples, é só mais um campinho no relatório".
Já instalei a última CTP numa máquina virtual, e tenho andado à procura de informação sobre o report builder (o facto do foxpro ter também uma coisa chamada report builder não ajuda nada) antes de começar a escarafunchar. Até agora ainda só encontrei este artigo,não entra em muitos detalhes de implementação mas dá já um excelente overview do report builder. Em breve conto também visionar este video
Tiago Pascoal
Sunday, June 05, 2005
#
The greatest challenge to any thinker is stating the problem in a way that will allow a solution.
Bertrand Russell (1872 - 1970)
- O Indigo mais tarde ou mais cedo (pronto mais tarde) irá implantar-se com a plataforma de excelência em ambientes Microsoft para o desenvolvimento de sistemas distribuídos já que englobará sem alterações de código vários transportes de messaging, aqui podemos acompanhar em tempo real (com uma latência muito grande :-) ) a escrita de um livro sobre o Indigo (3 autores).
- A comunidade organizou-se para juntar uma série de ferramentas open source (NUnit,Nant, etc) de uma forma coesa para que possa ser alternativa ao Team Systems da Microsoft. O projecto denonima-se NTeamNTeam
- Dot Net Powered lista de linguagens que suportam geração de código IL e podem correr sobre .Net, a lista parece não ter fim, até de Logo existem implementações.
- A Microsoft está a oferecer cursos de ELearning gratuitamente, por enquanto ainda só tem um curso de computação 64 Bits, mas estão prometidos para breve mais cursos.
- Why smart people defend bad ideas, é uma boa questão e a resposta encontra-se aqui.
- Adam Bosworth disserta sobre Ajax, decididamente alguém que pode falar sobre o assunto, já que foi ele que criou as bases (DHTML e XMLHTTPREQUEST) para que isso fosse possível enquanto esteve à frente da equipa do IE. Mas fico com a ideia que está apenas a usar aqui o Ajax, para continuar a dissertar sobre a "sua" plataforma web, que suporte cenários offline, com caching (entre outras coisas (alchemy ++ ??).
- E para terminar, algo para libertar o stress.
Tiago Pascoal
Friday, May 20, 2005
#
Uma das grandes vantagens do Infopath é a capacidade de trabalhar em offline com um determinado formulário. No entanto, e caso não sejam tomadas determinadas precauções, essa mesma vantagem pode desaparecer. Uma situação muito comum nos formulários é ter "Drop Down Lists" que são alimentadas por "Secondary Data Connections", as quais se podem encontrar associadas a um web service, a uma base de dados, ou a um ficheiro de resources. A solução do ficheiro de resource é aquela que se coaduna com a capacidade de trabalhar em offline, pois o mesmo encontra-se no cab do formulário. Mas por outro lado, ficamos restringidos a dados estáticos. O ideal é trabalhar com o ficheiro de resources, mas na abertura do form, tentar sincronizar com os dados que por exemplo são oriundos de um web service.
Para tal, basta que o binding da Drop Down List esteja associado ao ficheiro de resource. Para facilitar, o ficheiro de xml deverá ter o mesmo schema que a mensagem de resposta do web service. Seguidamente, deve ser criada uma "Secondary data Connection" associada ao web service em causa (não esquecer desactivar o carregamento automático na abertura do form).
No evento OnLoad do formulário, será feito uma chamada ao web service, e caso a mesma seja sucedida, o conteúdo do web service é copiado para a Data Connection associado ao ficheiro de resource.
function XDocument::OnLoad(eventObj) {
var wsAdapter = XDocument.DataObjects("GetPayerList");
try {
//Call the web service
wsAdapter.QueryAdapter.Query();
wsAdapter.DOM.setProperty("SelectionNamespaces","xmlns:s0='http://schemas.agilior.pt/agfis/v1'");
var xmlNodeToCopy = wsAdapter.DOM.selectSingleNode("//s0:GetPayerListResponseMsg");
if (xmlNodeToCopy != null)
{
XDocument.DataObjects("Payer").DOM.documentElement = xmlNodeToCopy;
}
}
catch (ex) {
XDocument.UI.Alert("Error updating 'Payer' resources. Your resources may be out of date.\nError: " + ex.description);
}
}
Quando o utlizador não tem conectividade, a cópia não é sucedida e é lançada uma mensagem de alerta. Claro está que de tempos a tempos deverá ser feito um novo deploy do formulário, com as resources mais actualizadas. Os ficheiros de resources reflectem os dados à data do deploy.
Infelizmente não descobri maneira de esmagar os ficheiros de resources, de forma a q estes reflictam a última chamada ao web service.
BTW: Tenho alguma dificuldade em perceber como é que um produto tão potente como o Infopath ainda não ganhou momento. Será apenas o problema do licenciamento?
BFC
Wednesday, April 27, 2005
#
Da pilha enorme de livros que tenho para ler, decidi escolher o livro do Martin Fowler - Refactoring: Improving the Design of Existing Code. Devo dizer que estou a gostar bastante do livro, mas aquilo que me levou a fazer este post foi ter lido uma frase que me ficou gravada na memória. A todos aqueles que se auto-designam de "Great Programmers", passo a transcrever a frase para futura reflexão (reparem no autor da frase):
I am not a great programmer. I am just a good programmer with great habits. -- Kent Beck
BFC
Sunday, March 06, 2005
#
O aparecimento de anúncios de contratação em blogs não é um acontecimento raro, e potenciam a focalização do anúncio a quem segue o blog. Esta estratégia de contratação tem grandes vantagens pois tipicamente quem responde primeiramente ao anúncio é quem segue o blog com algum frequência. Sendo assim, a Agilior decidiu avançar com esta estratégia.
Procuramos uma pessoa com o perfil de Developer, que seja proactiva e que procura a constante aprendizagem. Em termos técnicos pretendemos alguém com as seguintes características:
- Possua conhecimentos da Framework .Net (em termos de linguagem de programação a preferência é C#)
- Possua conhecimentos de ASP.NET
- Possua conhecimentos de MS SQL Server
- Possua conhecimentos básicos de Software Configuration Management
Candidaturas aqui
BFC
Sunday, February 27, 2005
#
Num dos projectos em que a Agilior está envolvida, foi solicitado pelo cliente poder extrair do BizTalk um conjunto de métricas sobre os pedidos que são tratados pelo BTS, o que me levou então a explorar as funcionalidades do Business Activity Monitoring (BAM). De facto é impressionante o quão depressa é possível ter um conjunto de métricas extraídas directamente para uma Pivot Table do Excel, e permitir então fazer ali um pouco de BI. Fiquei realmente impressionado. No entanto deparei-me com um problema que me levou a reflectir um pouco sobre a utilização do BizTalk.
Na altura em que se está a configurar o wizard para definir as actividades e os atributos (tempos de resposta, respostas com erro, etc.) que pretendemos monitorizar, existe um tipo de item "Duration". Uma das métricas que queria extrair era o tempo de resposta do pedido, que não é mais do que a duração, definida por um "Duration" Item, entre duas "Business Milestones", uma que corresponde ao Receive Shape associda à recepção do pedido, e outra ao Send Shape final para o envio da resposta (estou a usar os termos definidos pelo próprio BAM). Depois de ter tudo configurado, e ter submetido o BTS a alguns pedidos de teste, consegui finalmente ter resultados na Pivot Table. No entanto saltou-me logo à vista que a tal duração estava expressa numa medida que não percebi inicialmente. Comecei a googlar, procurar na documentação, até que finalmente coloquei um post nos newsgroups de BizTalk para tentar obter uma resposta. Finalmente consegui obter a resposta por uma pessoa da MSFT, a qual passo a transcrever:
"It is in days. In the next release, we plan to enable users to define that in the Bam Excel UI."
No problema em causa, a medida que nós pretendiamos mostrar seria Segundos ou mesmo Milisegundos, mas claro está, nada que uma fórmula de excel não resolva. No entanto fiquei a matutar o porquê de esta medida ser em "Dias" e levar a questão para outro plano: será que o BizTalk foi "desenhado" para cenários exaustivos de Request-Reply, com tempos de resposta na ordem dos Milisegundos/Segundos? Ou será que este facto não revela um sintoma de que o BTS é por excelência desenhado para "Long Running Transactions"? É uma discussão interessante, que eventualmente só as pessoas que conceberam o BTS estão em condições de responder.
No entanto, uma coisa é certa, isto do BAM é espectacular!
BFC
Saturday, February 26, 2005
#
A facility for quotation covers the absence of original thought.
Lord Peter Wimsey
- Actualmente existem vários gladiadores na batalha pela interface no lado do cliente, se no futuro (não muito próximo) teremos o XAML da Microsoft (embora já existam algumas empresas a oferecer já hoje runtimes de XAML), actualmente temos básicamente (para além das tradicionais interfaces HTML+JS),três tipos de abordagem para o desenvolvimento de aplicações client side. A abordagem smart client da Microsoft (que provávelmente ganharão algum terreno quando sair a versão 2.0 do .NET e o ClickOnce), os denominados Rich Internet Applications (RIA, onde por exemplo temos o Lazlo e Flex da Macromedia), e a abordagem (à falta de nome melhor) DHTML+JS+XML técnica (provávelmente, que encontrar prior art não é fácil) iniciada pelo Oddpost (entretanto comprada pela yahoo) que oferecia uma interface igual ao outlook (com o mesmo nível de interactividade e velocidde) num browser, e mais tarde massificada pela Google com o gmail e o gmaps. Tudo isto para tentar condensar num paragrafo (pronto, já sei que escrevo paragrafos demasiado longos) esta boa introdução ao tema: Serving Client-Side Applications. Também podem uma boa explicação da técnica DHTML+JS+XML, por alguém que a denoninou de Ajax
- Nunca é demais relembrar, falta de sono não é particularmente productivo para programar.
- O Ward Cunningham lançou este excelente wiki sobre patterns. Um recurso a monitorizar.
- Tenho uma certa tendência para tomar demasiada atenção a processos e a métodos colaborativos,na agilior temos-nos debruçado internamente sobre a utilização de tecnologias colaborativas de modo a melhorar a productividade e os processos de desenvolvimento. Achei extremamente este artigo/entrevista sobre a utilização de tecnologias colaborativas na BBC (foruns, wikis,etc).
[Update] Guide to Using XMLHttpRequest (with Baby Steps), utilizar o objecto XMLHttpRequest para actualizar partes de uma página sem ter que refrescá-la. (o objecto normalmente utilizado na técnica DHTML+JS+XML, é rápido, simples e é cross browser (leia-se IE e familia Mozilla)).
Tiago Pascoal
Saturday, January 29, 2005
#
Process is not a substitute for talent, common sense, hard work, and good management.
-- Esther Derby
- Finalmente saiu a Enterprise Library, disponível para download aqui. A enterprise library, representa a visão do Patterns & practices group de uma biblioteca que representa as best practices de alguns building blocks que dão suporte a uma aplicação. Resultou de uma parceria entre a Microsoft e a Avanade (uma joint venture entre a Microsoft e a Accenture). Ainda não tive oportunidade de analisar a biblioteca, mas é a junção dos diversos building blocks que a MS tem vindo a disponibilizar ao longo dos anos (EIF,Caching,Data Acess, Exception Management, Logging,Aggregation Applicatiom,Authorization and Profiling,Configuration Management,User Interface Process,etc,etc) de uma forma coesa e coerente. Veremos se isto foi realmente conseguido, ou é apenas a agregação dos building blocks já existentes (dos que vi alguns era realmente bons mas outros enfim, digamos que não deviam ter visto a luz do dia).
- As ferramentas que possuimos hoje em dia permitem fácilmente (demasiado fácil, o que facilita uma má implementação, Contract first Anyone?) transformar objectos/componentes em web services. Mas mais importante de que ter ferramentas que o façam fácilmente é saber fáze-lo. Um bom artigo sobre a escolha entre componentes e WS, quando e como devemos usá-los.
- Saber quando dizer não. É necessário saber quando dizer não, e como dizem nos filmes manhosos que passam na TVI às 4 da manhã, um não é um não. :-)
- Post Cache substitution Existe uma nova funcionalidade que irá estar disponível no ASP.NET 2.0 e que permite que objectos que estejam em cache, contenham "lá dentro" fragmentos dinâmicos. Neste post, é-nos apresentado esta capacidade, e é providenciado código fonte de um helper, que facilita a utilização desta capacidade.
- Dear Manager, They Need a Build Machine - Um manifesto que dá uma ajuda para convencer os superiores hierárquicos da necessidade de um build server. Já temos implementado em alguns clientes um build server (totalmente automatizado com deploy e tudo de maneira a que uma alteração em source control, automáticamente despolete a instalação de um sistema completo pronto a ser utilizado) e os resultados tem sido muito satisfatórios. A escola do XP e derivados,advoga a integração continua, eu pessoalmente advogo um build server quer se use metodologias XP (e afins) ou não.
- Permite detectar atempadamente muitos problemas
- Impõe disciplina no desenvolvimento e facilita a integração de código (recorda-me uma história em que duas pessoas que andarem a desenvolver código separadamente durante 2 semanas, e como tinham interfaces bem definidas (ou assim pensavam) diziam que no fim era só juntar (uma questão de uma hora ou menos diziam-me). Resultado demoraram 3 dias a integrar tudo. A aplicação de simples uma filosofia TDD ou testes unitários também teria sido benéfica e até traria outras vantagens, mas uma integração contínua tinha poupado ~23 % de esforço.
- É a aplicação natural da teoria Broken Windows, as pessoas tem tendência a resolver os problemas quando estes são públicos em vez de os protelarem, especialmente quando estes afectam outros. Não advogo muito um (build hall of shame) onde é afixado o top da lista de pessoas que partem os builds (embora por vezes em algumas equipas isso seja remédio santo), mas a visibilidade de problemas por vezes ajuda à sua rápida solução. (assim é a mente humana).
- Podia continuar, mas isto é suposto ser uma rapidinha. :-)
- Shhh. Por vezes dá vontade de usar esta técnica. Um método para aplicar aquelas pessoas que insistem em que ouçamos (juntamento com todas as pessoas que se encontram num raio de 20 metros ) as suas conversas ao telemóvel.
- A sabedoria do Warren Buffet
Tiago Pascoal
Tuesday, January 18, 2005
#
Das conversas que tenho que tido com amigos e colegas de profissão, fico com a percepção que a iniciativa dos Virtual Labs tem passado despercebida. Eu pessoalmente acho a ideia extremamente interessante, em particular numa altura em que cada vez mais a virtualização é a palavra do dia.
A ideia é muito simples, mas também muito poderosa. Um simples registo no site, uma instalação de um ActiveX e temos ao nosso dispor um conjunto de máquinas virtuais com configurações base pré-definidas, como por exemplo uma máquina com BizTalk Server 2004 (BTS). Depois é só seleccionar o Lab que desejamos, e esperar um pouco enquanto uma máquina virtual é clonada. Cada Lab tem associado um tempo pré-determinado para a sua conclusão, ao fim do qual a máquina virtual é "morta". Eu pessoalmente tenho usado, mas não me restringo ao Lab, e faço o que bem entendo com a máquina. A minha utilização tem sido sobretudo a fazer experiências em BTS. A instalação completa de uma máquina com BTS e todos os requisitos associados é muito morosa. No meu caso demorou apenas uns minutos: o registo nos Virtual Labs. (além disso, o meu portátil só tem 512 MB de RAM, pelo que se torna um pouco difícil de correr VPC ou VMWare). O único senão, são as configurações base, que no meu caso só achei interessante a de BTS. Seria perfeito vêr na lista de imagens as frases "Visual Studio Team Systems" e "SQL Server 2005".
Vale a pena dar uma olhadela na empresa que montou a solução para a MS, Surgient, e perceber o potencial deste tipo de soluções virtuais.
[UPDATE] mais um virtual lab disponível. Deste vez o SQL Server 2005 Virtual Hands-on labs
BFC
Wednesday, January 05, 2005
#
Uma das áreas que muitas vezes é negligenciada por todos nós é a área de gestão de configurações de software, usualmente conhecida pelo acrónimo SCM. Penso que uma das razões para que isto aconteça é o facto de ainda não se dar muita importância ao assunto nos programas de licenciatura de Engª Informática, bem como em cursos de programação. Fala-se muito superficialmente de alguns conceitos em cadeiras como Engenharia de Software, Ambientes de Densenvolvimento, etc., mas nada o suficiente para ficar sensibilizado do quão importante é esta área num projecto de software.
Na minha opinião, penso que a comunidade de programadores deveria dar muito mais importância a esta área. Numa era em que os "Patterns" são regra, é complicado um programador "sobreviver" neste mundo se não conhecer minimamente um conjunto de Patterns básicos como o Factory, Singleton, Proxy, etc. Na área do SCM o mesmo se aplica, sendo que existem Patterns bem conhecidos. Um excelente livro que eu recomendo vivamente a sua leitura é Software Configuration Management Patterns: Effective Teamwork and Practical Integration. Eu li uma versão Draft este livro em 2001, e na altura percebi o quão leigo estava em termos de SCM. Actualmente estou num cliente, com uma função dedicada exclusivamente a este assunto, no sentido de melhorar os processos internos da sua equipa de desenvolvimento. Penso que todas as equipas de desenvolvimento deveriam ter pelo menos uma pessoa com conhecimentos qb. nesta área, que permitisse responder a certas questões como por exemplo:
- Quando e em que situações é que eu faço um branch?
- Como é que eu faço um refactoring sem afectar o resto da equipa?
- Como é que eu posso iniciar os desenvolvimentos de uma nova release e poder corrigir bugs da que está em produção?
- Como é que eu garanto que o processo de build é um processo consistente e repetível?
- Como é que posso fazer check in sem o tornar visível para o resto da equipa?
Enfim, existe um conjunto de variadíssimas questões que alguém no projecto deve ter a capacida de responder. Indepentemente do sistema de controlo de versões ser o VSS, CVS, Clear Case, Vault, etc., estes são conceitos que são um pouco agnósticos à ferramenta. Obviamente que poderão existir limitações ao nível da ferramenta, e todos nós sabemos das limitações do VSS.
Assim como assumi que Factory, Singleton, Proxy são de conhecimento geral no vocabulário de um programador, espero um dia que o mesmo se passe com os termos Mainline Development, Task Branch, Release-Prep, Smoke Tests, Private Branch, etc. (pelo menos que quando ouvimos os termos sabemos minimamente de que estamos a falar de SCM)
BFC