domingo, 9 de outubro de 2011

Participação no Teched Brasil 2011


Nos dias 29 e 30 de setembro participamos do Teched Brasil 2011. O objetivo do evento é promover o encontro de desenvolvedores de software e profissionais de tecnologia da informação, que utilizam suas ferramentas para administrar sistemas. Foi um grande evento onde a Microsoft reuniu mais de dois mil participantes, desenvolvedores, DBAs, analistas, gerentes, CIOs, todos focados em tecnologia.
 As palestras eram ministradas em várias salas simultaneamente, organizadas por trilhas. Exemplo de trilhas: Plataforma de Aplicação e infraestrutura , Windows Phone, Cloud Computing e Online Services, Office e Sharepoint, Windows, Servidores e, evidentemente, Ferramentas de desenvolvimento, linguagens e frameworks, claro que tudo isso focado no ambiente Microsoft.

Detalhes de algumas trilhas 

DEV - Ferramentas de Desenvolvimento, Linguagens e Frameworks
Seu conhecimento de linguagens de desenvolvimento e proficiência com as ferramentas que você usa para criar software são o núcleo do seu conjunto de habilidades. A trilha Developer Tools, Languages & Frameworks é baseada em formação técnica profunda que abrange o melhor da Microsoft ® Visual Studio ®, SDK Kinect, WebMatrix  e o Microsoft ® .NET Framework. Obtenha informações detalhadas sobre a criação de software de missão crítica utilizando nativos e gerenciando Visual C++ ®, Visual Basic ®, F # e Visual c# ®. Aumente o impacto de desenvolvimento de aplicativos com Application Lifecycle Management (ALM) utilizando as melhores práticas do Visual Studio, Visual Studio Test Elements e Team Foundation Server. Desenvolva as habilidades que você precisa para gerar impacto imediato na sua organização durante a preparação para a adoção da versão mais recente do Visual Studio.
WEB - Desenvolvimento e Design Web
A trilha de Plataforma Web traz para você as últimas informações sobre tecnologias de ponta da Web e fornece as mais recentes experiências no desenvolvimento para o usuário, a partir da área de trabalho do Windows ® para dispositivos móveis-interbrowser e multi-plataforma na Web. Receba as informações mais recentes sobre o Windows Presentation Foundation, XAML, HTML 5, CSS 3, Microsoft ® Expression ® Studio e Microsoft ® Silverlight ™, bem como toda a cobertura aprofundada do Internet Information Services (IIS), Microsoft ® ASP .NET, AJAX, Windows Internet Explorer ® e Windows Live ™ Platform. Se você está interessado em elevar seu desenvolvimento em ASP .Net para um nível mais alto, ou descobrir como você pode usar suas habilidades de desenvolvimento .Net para criar experiências ricas, a trilha Web Platform é para você.
WPH - Windows Phone
O Windows Phone ® 7 é um tipo diferente de telefone projetado para reunir o que os usuários mais gostam. Ele foi projetado para acomodar suas necessidades de mobilidade e tecnologias web 2.0. Ele também pode conectar em sua infraestrutura existente do Windows e aproveitar a rica funcionalidade disponível em produtos como o Microsoft ® Exchange Server e Microsoft ® SharePoint ® Server. Existe uma grande quantidade de profissionais de TI e usuários que vão apreciar. Usuários estão procurando para experiências ricas em Windows Phone, e gostariam de personalizá-la com aplicativos. A trilha de Windows Phone irá proporcionar o conhecimento para desenvolver aplicações atraentes.
OSP - Office e SharePoint
A trilha Office e SharePoint fornece aos profissionais de TI e desenvolvedores uma visão geral de todos os novos investimentos nos produtos em 2010 e aprofundamentos em áreas específicas, incluindo Microsoft ® Project Server 2010, SharePoint Online, Microsoft ® SharePoint ® Server 2010 e Microsoft ® Office 2010. Aprenda com especialistas do setor sobre as práticas recomendadas para planejar, projetar, implantar e implementar soluções de classe mundial construídas sobre a tecnologia das plataformas Office e SharePoint. Profissionais de TI aprenderão mais sobre o SharePoint Server e aplicativos para clientes do Office, com sessões que cobrem a segurança, implantação, gestão, administração de personalização. Desenvolvedores aprenderão sobre como aproveitar sua experiência com Microsoft ® ASP .NET para o ecossistema SharePoint, como construir novas tecnologias baseadas em SharePoint e Office.
DBP - Plataforma de Base de Dados
A plataforma de dados do Microsoft ® SQL Server ® ajuda sua organização a gerenciar quaisquer dados, em qualquer lugar, a qualquer momento com a segurança, confiabilidade e escalabilidade que as suas aplicações de missão crítica exigem. O banco de dados oferece o conhecimento necessário para maximizar seus investimentos em Microsoft SQL Server e obter as habilidades necessárias para executar perfeitamente um ambiente de missão crítica. Conheça ideias para investimentos futuros em SQL Server, a tecnologia cujas apostas feitas hoje vão continuar a pagar no futuro.
COS - Cloud Computing e Online Services
Computação em Nuvem é o próximo passo lógico na evolução da computação. Ele representa uma mudança na indústria de software que não é exclusivamente o PC, nem centrada no navegador e mistura arquitetura cliente-servidor tradicional com a entrega de software baseado em nuvem. A trilha sobre Computação em Nuvem & Serviços Online fornece informações sobre tecnologia Microsoft e a inovação em software + serviços. Saiba mais sobre os serviços de software corporativo para serviços online da Microsoft, como o Office 365, Microsoft ® Exchange Online, Microsoft ® SharePoint ® Online, Microsoft ® Office Communications Online e Microsoft Dynamics ® CRM online. Essa trilha também fornece informações sobre o Azure Services Platform ™, onde desenvolvedores podem tirar proveito de uma plataforma de serviços de internet em nuvem hospedado em data centers da Microsoft para criar novos aplicativos em nuvem ou estender os aplicativos já existentes.

O evento foi sensacional, pudemos conversar com vários especialistas nas ferramentas Microsoft e tirar dúvidas sobre ambientes de desenvolvimento. Alguns destaques apresentados para desenvolvedores foram o Visual Studio (vNext), Silverlight 5, Windows Phone 7.5 Mango, ASP.NET MVC 4, HTML 5, Team Foundation Server entre outros.

Agora é colocar as idéias em ordem, atualizar os contatos, compartilhar o conhecimento e aproveitar todas as novidades para crescimento profissional. Agradecimento em especial a Useall Software que incentivou e apoiou nossa participação!

[]

quarta-feira, 7 de setembro de 2011

ANÁLISE ARTIGO “MIOPIA EM MARKETING” DE THEODORE LEVITT

1. De que trata o artigo?

O artigo mostra o quanto empresas têm uma visão distorcida ou curta do mercado em que atuam. Pensando somente no produto e esquecendo os clientes e os mercados. Esta miopia consiste na atitude de concentração nos produtos da empresa, sem atender aos mercados, aos clientes e à concorrência, impedindo a definição adequada das possibilidades de mercado.

O artigo mostra ainda exemplos de empresas que atuavam em mercados prósperos, mas que foram praticamente descontinuados devidos a erros de administração e erros na visão de futuro do próprio negócio.


2. Qual o foco do autor?

            O autor destaca vários exemplos de miopia em marketing, e destaca idéias muito pertinentes, principalmente para a época em que foi escrito. Muitas dessas idéias são válidas até os dias de hoje. As afirmações são fortes e atingem diretamente a camada gerencial preocupada com o planejamento e futuro das organizações onde trabalham.

Perigos causados pela falta de visão administrativa em relação as reais necessidades do mercado. Limites impostos pela visão curta das empresas em relação ao cliente. As empresas estavam mais preocupadas com o produto do que com o cliente.

O autor quis passar a idéia de que a eficiência da produção não é garantia para a empresa no longo prazo, pois as necessidades dos consumidores também mudam e a empresa precisa estar atenta para se antecipar a essas mudanças e sair na frente dos concorrentes. Para isso o contato com o cliente é imprescindível para coletar informações importantes para atender as necessidades dele.

A estagnação das ferrovias é um exemplo muito importante citado pelo autor, pois mostra como a visão somente no produto e não no cliente, afeta diretamente a continuidade próspera de uma organização. Neste caso era um mercado consolidado, mas que não prosperou e não acompanhou as novas necessidades dos clientes, perdendo espaço para novos meios de transporte como as auto-estradas, caminhões e aviões por exemplos.

Trata de marketing sendo a relação entre clientes e suas necessidades.

A autor insere uma idéia bem perturbara que pode ser definida como a destruição criativa, onde empresas buscam um novo negócio que possa substituir o negócio atual e que crie ou satisfaça a necessidade dos seus clientes. Com isso a empresa pode ter mais segurança em relação a seu trabalho e sair na frente da concorrência neste novo negócio.


3. Qual a relação entre o artigo e disciplina de gestão avançada de marketing?

Todas as idéias passadas pelo artigo são muito importantes e devem ser consideradas na análise do posicionamento organizacional. Por isso, a empresa precisa definir criteriosamente qual é o seu negócio.

A empresa deve ter atenção voltada para o cliente e para as necessidades dos clientes. Deve estar sempre próximo ao cliente, buscando e gerando informações úteis para atender as necessidades desses clientes. A empresa precisa adaptar-se as exigências do mercado.

A empresa deve estar atenta também aos não clientes, pois isso pode demonstrar alguma limitação desta empresa e definir o sucesso na conquista desses clientes.

É necessário ter muita imaginação para inovar em marketing. A inovação é muito importante em marketing.

As decisões deve ser baseadas em fatos, não apenas em opiniões. Os fatos a maioria das vezes estão relacionados diretamente com o cliente e suas necessidades.

As empresas devem prestar atenção ao que seus concorrentes estão fazendo e quais os rumos que o mercado está tomando. A empresa deve enxergar e definir melhor quem são seus concorrentes. Do mesmo modo, a empresa deve revisar sempre seu próprio posicionamento, para que não siga na contra-mão dos clientes e do mercado.

Por fim, todo este trabalho deve ser constante e fazer parte da cultura da organização. Não basta fazer algumas ações específicas num período específico, esta luta deve fazer parte da história da empresa.

Texto escrito em outubro de 2007 como atividade na pós graduação no ICPG.

[]

domingo, 17 de julho de 2011

Windows Phone 7 Day em Florianópolis

Participei no dia 16 de julho de um evento especial sobre desenvolvimento para Windows Phone 7. O evento organizado pelo grupo DotNetFloripa contou com a participação de mais de cem pessoas, onde a grande maioria eram desenvolvedores buscando informações e troca de conhecimentos nesse ambiente de desenvolvimento que está crescendo a cada dia. Vários palestrantes da região de Florianópolis e representantes da Microsoft detalharam as principais novidades e os recursos e tecnologias disponíveis para iniciar o desenvolvimento de aplicações para Windows Phone 7.

                Abertura do evento foi feita por Fernando Fiqueira, funcionário e entusiasta Microsoft. Destacou as principais novidades no Windows Phone 7, demonstrando ao vivo a utilização do sistema operacional, com ênfase na sua interface baseada no conceito “metro” e na facilidade de uso e navegação entre as muitas funcionalidades do sistema. Foi apresentada a nova versão do sistema chamada carinhosamente de “Mango”.

                Iniciando as palestras, Renato Haddad falou muito bem sobre como desenvolver aplicações para o Windows Phone 7. Relacionou o que é preciso para desenvolver aplicações WP7, as linguagens utilizadas, as ferramentas necessárias, os recursos de softwares e hardwares, como usar o emulador e mostrou muito bem em exemplos práticos. Haddad é daqueles palestrantes “feras” que usa poucos slides e muito mais código e demo. Dentre as ferramentas e tecnologias utilizadas estão o Visual Studio .NET 2010, Silverlight e  Expression Blend.

                Aplicações com gráficos em 3D são ótimas no Windows Phone 7. Rodolpho Marques do Carmo apresentou o uso de Silverlight e XNA na mesma aplicação rodando no WP7. Com a integração dessas duas tecnologias podemos criar aplicações ainda mais ricas visualmente e usando todos os recursos gráficos em jogos e imagens em 3D.

                Um grande destaque do Windows Phone 7 é a sua bela interface com a linguagem visual “metro”. Manoel dos Santos apresentou os principais conceitos desta linguagem e um passo a passo para criar uma interface desde a prototipação até a implementação em Silverlight. Podemos avaliar que a experiência de usuário no WP7 é sensacional. Ele também apresentou diversos “templates” que podem ser utilizados e que facilitam muito o desenvolvimento de novas aplicações aplicando todos os conceitos de “metro”.


Veja os princípios da interface metro:
. Interface limpa, leve e rápida
- Concentração em tarefas primárias
- Fazer muito com pouco
. Destaque no conteúdo
- O conteúdo é a interface do usuário
- A interação direta com o conteúdo
. Celebrar a tipografia
- Tipo bonito, não apenas legível
. Demonstrar em movimentos (animação, efeitos)
- Transição entre a interface do usuário é tão importante quanto o design
- Adiciona dimensão e profundidade
Seguindo esses princípios podemos criar interfaces realmente ricas proporcionando uma sensacional experiência para o usuário.

                Utilizar o WP7 sem conexão com a internet “não tem graça”. Seguindo nessa linha, Bruno Belizário mostrou como voar nas nuvens (cloud) acessando serviços WCF (Windows Communication Foundation) e Azure no Windows Phone 7. Utilizando o Visual Studio .NET 2010 podemos construir aplicações dinâmicas com a acesso a serviços via WCF e/ou na nuvem com total segurança em todas as transações.

                Para desenvolver as aplicações em Silverlight no WP7, podemos fazer de forma tradicional ou amadora. Ou então aplicar os conceitos de arquitetura e engenharia de software e ainda aplicar padrões de desenvolvimento. Um padrão muito utilizado apresentado por André Carlucci é o MVVM (Model-View-ViewModel). Utilizando esses padrões, teremos mais facilidade em desenvolver aplicações mais fáceis de manter, organizadas, testáveis e fáceis de manter.

                Porém, nem todas as aplicações poderão ser 100% conectadas. É necessário utilizarmos recursos para gravar as informações diretamente no seu “celular”. Renato Haddad mostrou como é fácil usar o SQL Compact no Windows Phone 7 para criar aplicação usando o banco de dados para manter e manipular informações dessas aplicações desconectadas. Apresentou também os recursos que auxiliam no desenvolvimento da aplicação, fazendo o mapeamento objeto relacional com ferramenta SqlMetal e acesso ao banco de dados utilizado LINQ (Language integrated query).

                Durante as palestras, os participantes trocavam informações e faziam avaliações via Twitter com a hashtag #WP7Day. As apresentações se realizaram durante todo o dia, encerrando com o sorteio de vários brindes, com destaque para uma licença do Windows 7 autografada por Steve Balmer e um celular HTC com Windows Phone 7.

Não ganhei os brindes, mas como em todo evento desta natureza, recebi informações privilegiadas sobre tecnologias de ponta, as quais podemos utilizar para fazer a diferença, na nossa vida pessoal e profissional.

[]

domingo, 10 de julho de 2011

Teste de software vai muito além do passou/falhou


Qualidade é um processo contínuo e de responsabilidade de todo o time de desenvolvimento de software. Para atestar qualidade, além de um bom processo de desenvolvimento, é necessário testar. Testar não é a última coisa a fazer num projeto de software. Deveria ser a primeira e, continuar por todo o projeto. Os testes devem atestar a qualidade dos sistemas construídos ou modificados pelo desenvolvimento.

Mas não basta ter responsabilidade com a qualidade, é necessário colaboração, confiança e transparência entre testadores e desenvolvedores. Todo o time deve entender e compartilhar do que está sendo construído. Desta forma poderão criar o produto certo, ou pelo menos de maneira certa.

O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.

Independentemente da metodologia de trabalho empregada no desenvolvimento de um software, para que se obtenha um produto final com um certo nível de qualidade, é imprescindível a melhoria dos processos de engenharia de software. Um desenvolvimento de software organizado tem como premissa uma metodologia de trabalho. Esta deve ter como base conceitos que visem a construção de um produto de software de forma eficaz. (Wikipédia)

Para atestar qualidade, você precisa ter especificações, algo que você pode avaliar. Você especifica o sistema para depois testar? Ou testa para gerar especificações de seu sistema? Uma sugestão é focar em “test driven” e não em “defect driven”. Se você esperar o sistema ficar pronto para testar, certamente encontrará erros.

É muito comum falar que teste de software demora e é perda de tempo, pois os programadores deveriam entregar o produto “pronto” e sem erros. Mas você pode utilizar ferramentas para ajudar na automação de testes. Num ambiente ágil você deve aplicar os princípios ágeis para automatizar testes. O teste deve fazer parte do “done” “pronto”.  Mas lembre-se, ferramentas de automação não são a solução para todos os seus problemas de qualidade de software. Teste automatizado não é moleza. Não é só gravar um script e depois executar. Testes simples e repetitivos podem ser automatizados. Invista tempo em testes manuais mais complexos. A maioria dos defeitos ainda é encontrada por testes manuais de sistema e aceitação.

É importante eliminar desperdícios nos testes.
. Testar rápido: usar processos ágeis;
. Testar melhor: maior cobertura, múltiplas visões do teste, foco na qualidade;
. Testar mais barato: redução de retrabalho, menor ciclo de testes, não duplicar testes;
. Não adianta “tentar testar o máximo” tem que ter metodologia e estratégia de teste;
. Testes de sistema e de aceite podem aumentar a produtividade dos desenvolvedores e a qualidade dos seus produtos se software.

Software muda constantemente e, quando uma nova funcionalidade é adicionada a um sistema que já estava testado e funcionava bem, sempre existe a possibilidade desta funcionalidade afetar outras. Uma boa maneira de assegurar que tanto esta funcionalidade, como todo o resto do sistema esteja funcionando corretamente, é fazer a integração contínua, ou seja, faça o “checkin” de seus códigos e “build” de seus sistemas constantemente.

Testar software é uma arte, que a maioria dos analistas e desenvolvedores não fazem com grande apreço. Desenvolvedor gosta de testar para “fazer funcionar” e não para garantir qualidade. Neste cenário, pensar em criar uma equipe de teste para formar um time com esses desenvolvedores pode ser considerado um grande avanço.

É importante definir algumas diretrizes e responsabilidades para a área de testes, como por exemplos:
. Vamos testar todos os softwares?
. Quanto tempo vamos investir nos testes? Este tempo é investimento mesmo ou é visto como custo para a empresa?
. Qual o nível de abrangência? Vamos testar tudo? O que é essencial?
. Qual o foco do teste? Vamos focar mais em teste de regras de negócio ou testes técnicos do sistema?
. Quais as características de qualidade serão avaliadas e, qual a peso de cada uma dentro desta avaliação?
. Como o time será avaliado?

As respostas para essas perguntas poderão ser assunto para outro post.

[]

sábado, 2 de julho de 2011

Usabilidade de software

Usabilidade é um dos muitos atributos que podem ser percebidos e avaliados pelos usuários de um sistema computacional. É um indicador que mostra se o sistema é intuitivo, fácil de utilizar e fácil de aprender a utilizar o software.  Essa característica influencia diretamente no interesse e aceitação do usuário que, pode simplesmente não gostar de software e, muitas vezes não sabe nem explicar o porquê.
O desenvolvimento de software deve colocar a usabilidade como um dos atributos chaves, durante a concepção e criação dos sistemas. A usabilidade deve ser pensada durante todo o processo de desenvolvimento, visando atender todas as características de qualidade.

Conforme o modelo de qualidade da Norma ISO 9126 (http://pt.wikipedia.org/wiki/ISO_9126), a característica da usabilidade é a capacidade do produto de software ser compreendido, seu funcionamento aprendido, ser operado e ser atraente ao usuário e pode ser avaliada e subdivida nas seguintes sub-características:
Inteligibilidade que representa a facilidade com que o usuário pode compreender as suas funcionalidades e avaliar se o mesmo pode ser usado para satisfazer as suas necessidades específicas;
Apreensibilidade identifica a facilidade de aprendizado do sistema para os seus potenciais usuários;
Operacionalidade é como o produto facilita a sua operação por parte do usuário, incluindo a maneira como ele tolera erros de operação;
Atratividade envolve características que possam atrair um potencial usuário para o sistema, o que pode incluir desde a adequação das informações prestadas para o usuário até os requintes visuais utilizados na sua interface gráfica.

A utilização de sistemas de software pode feita por qualquer pessoa, independente do nível de instrução. Os usuários preferem um sistema de seja fácil de utilizar, onde ele não perca tempo, por exemplo, procurando opções ou menus, que na visão do usuário deveriam estar ali, ao alcance do mouse ou tecla de atalho. O usuário não pode perder tempo durante a execução de suas atividades no software.
A característica da usabilidade deve fazer cada vez mais parte do vocabulário e do ambiente de desenvolvimento, principalmente agora com a explosão da utilização de dispositivos móveis, que, com sua limitação de tamanho, requisitam ainda mais usabilidade nos sistemas utilizados pelos usuários.
Durante a implantação de um sistema com alto grau de usabilidade, podemos notar boa avaliação dos usuários que realizam suas tarefas com mais eficiência, diminuição da necessidade de apoio aos usuários e facilidade na utilização e aprendizados dos recursos do novo sistema.

Avaliar a usabilidade de um sistema pode não ser tão simples quanto parece. Devemos avaliar todas as características e utilizar métricas e critérios de avaliação. Exemplos de informações que podemos coletar para ajudar na avaliação:
. Número de vezes que o usuário expressa satisfação ou frustação.
. Tempo que o usuário demora a realizar uma tarefa.
. Percentual de tarefas concluídas.
. Percentual de sucessos ou falhas na execução.
. Tempo perdido com erros ou tentativa de execução com erros.
. Percentual de erros encontrados.
. Número de opções utilizadas para executar uma tarefa.
. Número de opções disponíveis e não utilizadas.

Podemos notar que todos os critérios de avaliação da usabilidade da interface de um software compreendem vários fatores, principalmente facilidade de uso e satisfação do usuário na utilização do sistema para realizar suas tarefas.
Para os desenvolvedores de sistemas fica o desafio de perceber essas necessidades dos usuários, aplicarem os conceitos de usabilidade e qualidade de software e disponibilizar software cada vez melhores e mais usuais.

[]

domingo, 22 de maio de 2011

Empresas e pessoas de talento

As empresas estão a procura de pessoas de talento. Por outro lado, esses profissionais precisam demonstrar que realmente são bons.
O mercado de trabalho está muito aquecido na área de tecnologia da informação e comunicação (TIC). Os profissionais “estão podendo” escolher suas oportunidades e, com isso salários também são inflacionados.

O que os profissionais querem que as empresas façam para atraí-los?
. “As pessoas não são recursos”. As pessoas tem valor e precisam que este valor seja visto e aproveitado pela equipe
. Os profissionais querem ser reconhecidos constantemente no seu trabalho
. A empresa deve valorizar o trabalho em equipe
. Ambiente inspirador que estimule a criatividade
. Os profissionais devem estar no projeto certo, para realizar seu trabalho com liberdade de criação
. Benefícios, planos de saúde
. Reconhecimento financeiro

Os profissionais devem mostrar seu “algo mais”
. Mostre seu talento
. Tenha paixão pelo que faz, convicção no que acredita
. Gostar de cliente é palavra chave
. Demonstre seu melhor e que você pode crescer
. Criatividade e ousadia devem estar presentes
. Profissional de talento deve ser inspiração para os colegas
. As empresas querem gente rápida, focada em resultado
. Disposição, gostar e ter prazer de trabalhar, independente de quantidade de horas
. Aprendizado constante, leituras, filmes, palestras
. Profissional deve estar ligado em tudo que está acontecendo
. Qualificação técnica na sua área de atuação

[]