Entrevista Exclusiva com Rodrigo de Carvalho, Gerente de Produtos do Visual Studio
Visual Studio 2010: uma poderosa IDE para quem busca código de qualidade
O Visual Studio 2010 é fornecido com recursos novos e aprimorados que simplificam todo o processo de desenvolvimento, desde o design até a implantação. A nova versão é focada na produção de códigos com melhor qualidade, na interoperabilidade e principalmente na integração de toda a equipe de desenvolvimento.
]Oferecido em quatro versões, a nova versão da ferramenta da Microsoft foi lançada em abril deste ano e tem provado ser eficiente em tudo a que se propõe. Entre outras características, o Visual Studio 2010 é a primeira ferramenta da família de produtos da Microsoft que já nasceu preparada para o desenvolvimento na nuvem.
Saiba mais sobre as novidades da ferramenta nessa entrevista com Rodrigo de Carvalho, Gerente de Produtos das Ferramentas de Desenvolvimento Microsoft. Ele fala das novidades da IDE e também um pouco sobre mercado, certificações e muito sobre a importância da qualidade no desenvolvimento.

Rodrigo de Carvalho, Gerente de Produtos do Visual Studio
01. A última versão do Visual Studio é de 2008. Porque fazer mais uma versão do software, 2 anos depois?
O desenvolvimento de software é um trabalho em equipe. E o advento das metodologias ágeis fez com que o nível de maturidade dessas equipes melhorasse e as ferramentas de desenvolvimento acompanharam essa evolução, ou essa transformação da área de desenvolvimento de software.
02. Quais são as novidades específicas do VS2010?
Acho que os principais recursos que podemos destacar, considerando toda essa evolução que eu falei, tanto na indústria quanto nas equipes de desenvolvimento, seriam introdução de ferramentas para a área de qualidade e testes de software, recursos para o planejamento de arquitetura e um grande apoio à interoperabilidade.
03. Você pode explicar cada um desses destaques mais detalhadamente?
Vamos por partes. O primeiro grande ponto que eu acho que merece destaque são as ferramentas e os recursos para área de qualidade em teste de software. Até então a Microsoft não atuava neste mercado da mesma forma que outros players atuavam. Nessa versão, introduzimos ferramentas para um público que até então a MS não conversava muito: o testador. Agora, o Visual Studio possui ferramentas para ajudar a equipe de testes a trabalhar mais integrada com a de desenvolvimento.
Outro fator muito importante no VS 2010 são os recursos para o planejamento da arquitetura da aplicação: com isso colocamos na mão do arquiteto funcionalidades e recursos que permitam que ele desenhe, literalmente, a aplicação, usando UML (Unified Modeling Language), uma linguagem padrão visual que permite que desenvolvedores de idiomas diferentes se entendam, já que estão se comunicando através de diagramas. O novo VS tem recursos para modelagem visual, que permite a geração de código fonte a partir dos modelos e vice-e-versa.
Assim, o desenvolvedor não começa a escrever o seu código fonte sem ter uma idéia clara do que a aplicação deve fazer. Se na arquitetura de imóveis, por exemplo, antes de construir uma casa um engenheiro faz uma planta baixa, para então começar a construção em sim, a UML permite que o arquiteto de desenvolvimento construa a “planta baixa” da aplicação, criando todo o seu desenho antes de ela ser desenvolvida, o que resulta uma aplicação que respeita as boas práticas arquiteturais, permitindo que o índice de sucesso, desde o desenvolvimento, seja muito maior do que aqueles projetos em que os desenvolvedores saem escrevendo código sem um planejamento prévio.
Com isso, o software fica pronto mais rapidamente e com menos falhas, o que permite que empresas disponibilizem seus programas também mais rapidamente.
O mais interessante dessa nova funcionalidade é que se o sistema ou a aplicação foi desenvolvido, anteriormente, sem usar recursos de UML, o VS permite que você pegue o código-fonte dessa aplicação e o transforme em um recurso visual. Isso oferece um ganho muito grande, especialmente quando é preciso resolver algum problema que surja na aplicação. Imagine o tempo que o desenvolvedor vai gastar se ele precisar ler todo o código e entende-lo para poder identificar o problema. Utilizando técnicas de engenharia reversa é possível transformar todo esse código em um modelo visual, o que vai permitir que ele encontre o erro muito mais facilmente.
Além de ferramentas para testes e voltados para arquitetura de software, há também a questão de ambientes heterogêneos. Ou seja, há todo um suporte para aqueles clientes, parceiros e instituições que não desenvolvem software utilizando a tecnologia da Microsot, de forma que eles podem se beneficiar com uma série de recursos devido à interoperabilidade que o Visual Studio 2010 oferece.
No mercado existe uma velha briga sobre Java x .Net. E a MS tradicionalmente, no passado, sempre olhou para a sua própria tecnologia. Ou seja, quem desenvolvia em .Net iria sempre utilizar recursos e ferramentas somente para isso.
Com a versão 2010 do VS a gente consegue estender as funcionalidades que estão presentes no software para outras tecnologias que não somente Microsoft, o que dá um sinal ao mercado quanto ao nosso comprometimento quanto a padrões, interoperabilidade, que é um termo que está bem “na moda” no mercado. Fala também sobre a nossa aderência a boas práticas de desenvolvimento, mesmo quando as aplicações não são desenvolvidas usando ferramentas da MS. E, principalmente, isso é reflexo do respeito que a MS tem com os investimentos que seus clientes fizeram, no passado, em outras tecnologias.
A mensagem é “senhor cliente, nós temos uma forma de você desenvolver software de uma maneira mto mais produtiva, com uma série de recursos que vão garantir mais qualidade no desenvolvimento do seu software, mas se você já fez um investimento no passado em outras tecnologias, não é preciso deixar isso de lado, é possível conviver bem em conjunto”.
A gente poderia falar de vários outros pontos, mas acredito que esses são os três principais.
04. E como essa integração toda, essa questão da interoperabilidade, que o Visual Studio 2010 tem, se traduz de maneira prática?
Em algumas ações. Por exemplo, se você hoje desenvolve uma aplicação usando Javascript, você tem no VS 2010 uma série de recursos para que o desenvolvedor de JS seja mais produtivo. Recursos que talvez ele não encontre até mesmo em ferramentas específicas para desenvolvimento em Javascript. Por causa da característica de interoperabilidade do Visual Studio, eu não preciso ter outra ferramenta para desenvolver, vamos dizer, em PHP, por exemplo.
05. Por que o desenvolvedor usaria o Visual Studio, e não uma IDE específica para essas outras linguagens que não são da Microsoft?
Estudos de mercado têm mostrado que as aplicações mais modernas, mais novas ou as que estão em fase de desenvolvimento, em sua grande maioria estão sendo feitas em .Net ou Java. Isso é um padrão que vem se consolidando ano a ano. E a idéia é que não seja necessário ter outra ferramenta para desenvolver em .Net e outra para desenvolver em Java, por exemplo. Ele pode ter isso tudo dentro de uma única ferramenta, e aí ele aprende a usar a ferramenta uma única vez e utiliza esse conhecimento para as duas linguagens, o que se reflete até mesmo em sua produtividade.
É claro que uma ide específica para Java, como o Eclipse, vai ter mais recursos específicos, mas se a empresa, por exemplo, está alinhada com as tendências de mercado e utiliza as duas linguagens, ele vai se beneficiar de usar uma mesma IDE que seja compatível, e é o que nós queremos com o Visual Studio 2010.
E mesmo se a empresa toda utiliza apenas Java no desenvolvimento dos seus projetos, ainda assim ela pode se beneficiar dos recursos do Visual Studio 2010 para gerenciar o ciclo de vida de desenvolvimento da aplicação, ou termo em inglês ALM Application Lifecycle Management.
06. Se você tivesse que definir apenas um foco para o VS 2010, qual seria?
Existem varias óticas para definir um foco, mas se eu precisasse acertar um, seria garantir a integração de todo o ciclo de desenvolvimento, independentemente de quem está trabalhando naquele momento.
O que isso quer dizer? Como eu já falei, o desenvolvimento de software é um trabalho em equipe, são diferentes pessoas, trabalhando em ações diferentes, cada um tem uma determinada função e é preciso que todos ajam de forma integrada. O objetivo de todos que interagem durante o processo de desenvolvimento do software é chegar num produto final, de qualidade e respeitando os prazos e demandas dos clientes.
Mas existem diversas funções e diversos níveis de conhecimento de cada área, então você vai ter alguém que é muito bom em fazer o design, a interface, vai ter um especialista em fazer os testes, outro será focado em escrever o código fonte em uma linguagem qualquer.
Com esse cenário tão diverso em mente, eu diria que o foco do Visual Studio 2010 é garantir mais sinergia, colaboração, integração entre todos os atores do desenvolvimento de software.
07. Por que isso é tão importante a ponto de você ter escolhido isso como foco?
A realidade hoje dos projetos de desenvolvimento de software é, de certa forma, “caótica”. Existem grandes barreiras entre esses papéis que cada um desempenha. Vou dar um exemplo, de apenas uma das interações que acontecem numa equipe de desenvolvimento.
Na equipe temos os programadores e os testadores. Durante a produção, as boas regras determinam que se teste esse software antes, para garantir que os resultados serão os esperados. Normalmente equipes de desenvolvimento e de testes, literalmente, não se falam! Isso é apenas um dos tantos exemplos que podemos encontrar.
E o que acontece? É muito comum na indústria hoje um testador apontar uma falha num software e registrar isso em alguma ferramenta e, quando isso é reportado para o desenvolvedor ele fala que não conseguiu reproduzir o erro e, portanto, ele não existe.
A realidade é que equipes de desenvolvimento hoje trabalham em ilhas, formando um “arquipélago”. O Visual Studio 2010 vem estimular que se construam pontes ligando esses “mundos” separados.
Dessa forma, no nosso cenário de testes, o desenvolvedor vai falar pro testador que não existe evidência do erro, então o testador vai municiar o desenvolvedor com detalhes do problema, com prints de telas de erro etc., e isso é um processo de “ping pong” entre desenvolvedor e testador.
O número de funcionalidades que temos no VS 2010 que garantem que o testador e o desenvolvedor trabalhem de forma integrada é gigantesco. O testador pode, por exemplo, gravar um vídeo durante o teste, obtendo uma prova real do que aconteceu; o programa oferece detalhes como a versão do sistema operacional, do navegador, do banco de dados, do servidor etc.
Essas informações são pré-populadas automaticamente pela ferramenta, poupando tempo do testador e municiando tanto ele, como o desenvolvedor, com um volume enorme de dados, evidências capturadas, o que gera aumento de produtividade e diminuição do stress entre as duas equipes, e a solução efetiva dos problemas. As equipes passam a se comunicar, a conversar, as “ilhas” ficam conectadas. E isso é apenas um entre os vários cenários que a gente poderia citar, dentro do Visual Studio 2010, que melhoram essa questão da integração, da sinergia, da colaboração dentro de uma equipe de desenvolvimento.
08. Dessas novas características do Visual Studio, algumas foram solicitações diretas dos desenvolvedores?
Sim. Há mais de 10 anos a MS tem um programa chamado Connect, que permite que pessoas que estão interessadas no desenvolvimento de um produto da MS opinem, votem, dêem sugestões de alterações no software.
Se você visitar o site do Connect, terá uma ideia do que pode acontecer na próxima versão do VS (prevista para 2012). Você vai poder opinar, votar (literalmente) no que acha que é mais importante para se ter numa próxima versão.
Esse programa possibilita à comunidade participar ativamente no desenvolvimento dos nossos produtos. Isso é algo que temos há anos e que outras empresas concorrentes nossos estão começando a fazer essa interação com a comunidade agora.
Entre as features que surgiram a partir de pedidos da comunidade, está o suporte a UML. Outra é a disponibilização das Regras de Transformação, que permite que se transforme modelos (UML) para códigos de qualquer outra linguagem que não seja Microsoft.
09. Por que é interessante e importante atualizar para o Visual Studio 2010?
Porque é uma evolução natural! Veja, há 10, 15 anos era bem raro um carro ter ar condicionado. O seu carro, ou o dos seus pais, provavelmente não tinha. Mas você foi mudando, fazendo um upgrade natural, e hoje o carro dos seus pais, ou o seu, tem ar condicionado. Estou certo?
É uma evolução. E as organizações também buscam isto. Elas estão olhando para suas áreas de TI e dizendo que precisam fazer mais com menos, que precisam inovar, ter respostas mais rápidas às ameaças e oportunidades de mercado. E se continuarmos atrasando um projeto de desenvolvimento porque, como no exemplo que dei, desenvolvedor e testador não se falam, é um tiro no pé. O mercado está evoluindo, as pessoas estão, as aplicações estão mais ricas, mais modernas, e nada mais óbvio que também a sua plataforma de desenvolvimento evoluir.
Independentemente do ramo de atuação da empresa, é preciso também evoluir na área de TI. E essa inovação e evolução se dão, invariavelmente, através de software. E, para desenvolver um software mais moderno, mais inovador, é preciso ter ferramentas que te permitam isso. Se as empresas continuarem desenvolvendo software como sempre fizeram, se desenvolvedores e testadores continuarem na briga eterna, a coisa não vai andar.
O Visual Studio 2010 está mais moderno, proporciona maior produtividade, é mais integrado. No final, a ferramenta proporciona mais qualidade no desenvolvimento, de uma forma global, não só o código, não só o produto final, mas desde o relacionamento entre a equipe até esse produto final.
10. Você falou em qualidade no desenvolvimento. O que é preciso fazer para alcançar a excelência no desenvolvimento de software?
Existem vários aspectos que a gente pode abordar para falar sobre isso. Mas acho que o primeiro ponto seria, sem dúvida, a aderência às boas praticas de mercado, ou seja, garantir que o que você está fazendo está dentro das chamadas boas práticas.
Isso normalmente se traduz na adoção de processos de desenvolvimento, como por exemplo, Scrum, XP, metodologias baseadas em interatividade, as chamadas metodologias ágeis.
É claro que isso não é apenas para as metodologias ágeis. Isso foi apenas um exemplo.
E, falando do VS 2010, a gente consegue atender tranquilamente esses dois “lados da moeda”. A ferramenta atende tanto processos ágeis quanto os tradicionais. Por exemplo, ela já vem “de caixinha” com suporte a processos ágeis, mas também a CMMI, que é uma metodologia mais tradicional de desenvolvimento, permitindo que o cliente tenha uma flexibilidade também nesse sentido; independentemente da metodologia, da boa prática que a organização queira adotar, o Visual Studio está pronto para atendê-lo.
11. Acredito que outro ponto para a excelência no desenvolvimento é a certificação. Hoje, para quem desenvolve com Visual Studio, quais são as certificações existentes e que mudanças a nova versão trouxe?
A principal certificação para quem quer se diferenciar no mercado, no que diz respeito a desenvolvimento de software na tecnologia Microsoft, é a Microsoft Certified Professional Developer (MCPD). Ele valida os conhecimentos do profissional na criação, construção, otimização, distribuição e operação de sistemas desenvolvidos em .NET utilizando o Visual Studio.
Desde o lançamento do Visual Studio 2010, muitos dos treinamentos oficiais da Microsoft estão sendo colocados a disposição do mercado. Outros cursos ainda estão sendo finalizados e tem data prevista de lançamento para o final deste ano.
A primeira prova oficial disponibilizada referente ao Visual Studio 2010 é a prova do Team Foundation Server a plataforma de ALM Gerenciamento do Ciclo de Vida das Aplicações – da Microsoft. Mais informações sobre esta e outras provas e certificações podem ser encontrada no www.microsoft.com/certification.
12. Falando em certificações, existe uma grande discussão sobre a validade de se ter certificados de empresas como a Microsoft para se “comprovar” alguma habilidade, a questão de estar no mercado e ter certificações ao invés de cursar uma faculdade específica, além da discussão sobre teoria x prática. Como você vê essa discussão e, em sua opinião, qual é a validade de uma certificação para o desenvolvedor?
Muitos profissionais buscam uma certificação com a finalidade de se diferenciar de outros candidatos em eventuais processos de seleção, acreditando que ao passar num exame ou prova possuem a experiência suficiente para encarar qualquer desafio. Sem a menor sombra de dúvida, há uma diferença naquilo que aprendemos numa sala de aula (seja na faculdade especializada ou num treinamento oficial) e o que vivemos no mercado.
Numa sala de aula o ambiente é controlado, os exercícios foram testados exaustivamente pelos autores, professores, enquanto que no mercado o desenvolvedor tem que corrigir um erro numa aplicação em produção que, ao ficar parada custa milhões de dólares para a empresa, com um usuário não muito feliz preso ao telefone cobrando uma solução para o problema.
A forma pela qual os profissionais são formados não deve ser a preocupação chave, mas sim colocar em prática os ensinamentos adquiridos em sala de aula, vídeos, livros, interação com a comunidade, etc. Obviamente que, ao cursar uma faculdade especializada, o aluno deve se preocupar em pesquisar se aquela instituição aborda temas em seu programa alinhados com a realidade do mercado, mas a forma em si como o aprendizado se dará, de certa forma, é indiferente (um profissional pode fazer as provas para se tornar um MCPD sem fazer os cursos oficiais da Microsoft, por exemplo).
Agora, voltando novamente à questão da certificação, acredito que os profissionais devem continuar buscando isso, pois elas são, muitas vezes, requisitos para uma vaga de emprego, empresas tem que apresentar profissionais certificados em editais, ou seja, é algo que nunca deixará de ser importante. O ponto é fazer dela um meio e não o fim!
14. Aproveitando o gancho de mercado, como está a qualificação da mão de obra brasileira em TI? Se possível, faça uma comparação com o nosso mercado e o de outros países.
O mercado de tecnologia, em especial o de desenvolvimento de software, está em um forte e acelerado ritmo de crescimento. Recebo constantemente ligações de nossos parceiros dizendo que estão com 30 posições em aberto para desenvolvedores C#, que querem criar uma área de testes e qualidade de software, e precisam de ajuda para encontrar esses profissionais. Esses exemplos são sinais claros que nossa indústria está aquecida, há uma alta demanda e poucos profissionais qualificados disponíveis no mercado. Aliás, bons desenvolvedores estão com a faca e o queijo na mão, no que diz respeito à remuneração, diga-se de passagem.
Agora, respondendo diretamente a sua pergunta, acredito que a qualificação do mercado está muito madura, temos profissionais com alto conhecimento e domínio técnico. Estamos passando por um processo de transição, já que a nova geração de desenvolvedores não busca os recursos “convencionais” de capacitação, como salas de aula e treinamentos longos, e que algumas batalhas “ideológicas” ainda permeiam e acabam definindo qual caminho um profissional seguirá.
A realidade brasileira, e arriscaria até dizer a realidade mundial, é que alunos estão deixando de se interessar por cursos na área de tecnologia ou exatas de uma forma em geral, cursos como Física, Matemática, Estatística, entre outros. E isso representa um problema para nossa indústria em 10 ou 15 anos. Por isso é importante que as instituições privadas e governamentais estejam atentas a esta realidade, pois outros países podem se movimentar mais rapidamente e, conseqüentemente, capturar mais oportunidades no mercado global.
E, por falar em mercado global, gostaria de finalizar dizendo que não é o conhecimento nessa ou naquela tecnologia ou linguagem que garantirá um futuro promissor aos profissionais da área de desenvolvimento. O conhecimento principal que devemos buscar é o domínio do inglês. Infelizmente, ou felizmente, acho que depende do ponto de vista, trabalhar na área de TI requer do profissional domínio do Inglês, que tem que ser praticamente a sua língua oficial. E isso vem antes de ele dominar uma linguagem de programação ou framework de desenvolvimento.
O raciocínio é relativamente simples: empresas globais terceirizam o desenvolvimento e a manutenção de seus sistemas para o Brasil. Pelo fato de sermos um povo muito dinâmico, capaz de fazer muito com pouco, por nossa diversidade cultural, criatividade e dedicação, somos o alvo preferido de organizações que buscam parceiros estratégicos, por isso reforço a questão do domínio do idioma. Já dizia minha avó: “quem não se comunica, se trumbica!”.
15. Para finalizarmos, qual é o Road Map do Visual Studio?
Uma das grandes áreas que estamos trabalhando para o próximo release é, sem dúvida, aprimorar as funcionalidades na parte de testes, ou seja, fazer com que o testador possa tirar muito mais proveito das nossas ferramentas.
Outra grande prioridade é a questão da melhor integração entre as áreas de negócios e desenvolvimento. Isso se traduz em funcionalidades onde o usuário vai poder acompanhar melhor o processo de desenvolvimento, podendo colaborar com esse processo, interagindo e demandando alterações no software de forma melhor.
Resumindo: nosso foco será na gestão de requisitos e testes.







