Trabalho

Obrigado ASKSoftware!

0

Olá pessoal, após um longo tempo sem postar estou de volta com algumas novidades, algumas novidades profissionais que vou compartilhar aqui no blog e outras pessoais, quem me acompanha no facebook já deve ter reparado Alegre. A principal novidade é que após 1 ano e 8 meses eu deixei de trabalhar na asksoftware e voltei a trabalhar com o pessoal da Harpia Ventures, sendo mais específico com o pessoal do place to ask. Quem me acompanha sabe que em 2009 eu trabalhei na harpia ventures com o pessoal do Evenka.

Falando do tempo em que fiquei no asksoftware certamente não vou conseguir descrever tudo que aprendi lá. Desde as pessoas incríveis que tive a chance de conhecer até todas as tecnologias que aprendi. Muito do meu aprendizado pode ser visto aqui no blog, entre as tecnologias que usamos nos diversos projetos estão: ASP.NET MVC (1,2 e 3), Entity Framework 4, TFS. Hg,XML, XSL além de praticar um monte de coisas que acredito como TDD, agilidade e build contínuo.
Eu só tenho a agradecer pela oportunidade e pela confiança que a equipe depositou em mim, espero em breve ter a oportunidade de participar de outros projetos com a galera.

258205_164184013644858_159670080762918_377194_547019_o

Falando do futuro aqui na Harpia ventures vou continuar com um trabalho semelhante com o exercido da Harpia Ventures, com exceção do tipo de software que estamos construindo que é uma aplicação social pra internet e não um software corporativo intranet. Os primeiros conhecimentos que vou ter que adquirir/praticar aqui são otimização/escalabilidade e segurança, então já sabem que vem post no blog sobre isso ai, vou começar com o livro Ultra-Fast ASP.NET, indicação da galera aqui. Por enquanto é isso pessoal, até,

E quando Linguagem é ubíqua mas é Legada?

2

 

Contexto do problema

Olá pessoal, como o texto sugere o assunto será a linguagem ubíqua de um projeto de migração de sistema. Atualmente participo de um projeto de migração de um sistema de workflow desenvolvido em VB 6 e coisas da época, Assim que cheguei a equipe teve o início de mudança de paradigmas. As mudanças ocorreram no processo de desenvolvimento, terminologias e tecnologias. O modelo antigo usava notação Húngara e as pessoas se comunicavam usando expressões do tipo: O método A espera os parâmetros idPart e tpSt. O que isso quer dizer? depende do método! A utilização de siglas fazia com que termos tivessem mais de um significado, em determinado contexto o significado era esse:

idPart = Id do participante
tpSt = Status

Todas as equipes envolvidas com o produto falavam a mesma língua mesmo que essa língua fosse dúbia as veze, O fato é que existia e ainda existe uma linguagem ubíqua.

Solução do analista/Arquiteto

Eu desempenho o papel de arquiteto nesse projeto(sei que muitos discordam quanto a consideração de arquitetura sendo um papel) e logo que começamos a desenvolver usamos novos padrões de nomenclatura, e isso significa:

  • Eliminação da notação húngara
  • Adoção do inglês como padrão
  • Diminuição da quantidade de siglas

Estamos desenvolvendo a nova versão do produto que inclui muitos produtos “acessórios” e tudo está ocorrendo razoavelmente bem, os clientes estão satisfeitos mas de fato poderia ser melhor(assunto para outro post), a equipe está razoavelmente acostumada com a tradução entre termos e tudo mais..O problema?

Hoje vejo que fui responsável por destruir parte da linguagem ubíqua!

Hoje vejo que a comunicação seria excelente sem traduções e etc., quando cheguei no projeto não tive a maturidade para ver que já existia uma linguagem e que todos estavam satisfeitos com ela. Fico feliz em hoje conseguir ver que fiz uma escolha precipitada.

É isso pessoal, gostaria de ouvir de outros desenvolvedores que passaram por esse embate entre uma linguagem ubíqua “Fora dos novos padrões” e uma nova linguagem que não é compartilhada pela equipe. Tem experiências? conta ai..

Controle X maturidade

1

Ainda não sou um desenvolvedor sênior ou ainda uma pessoa que possui muita experiência com pessoas e trabalho em equipe, logo não posso afirmar sobre Controle X disciplina estritamente dentro de equipes ou ambiente de trabalho. Vamos falar antes de tudo sobre pessoas e maturidade.
O assunto geração Y muito me atrai,talvez pelo fato de fazer parte da geração, tento ler bastante sobre o assunto para entender como EU mesmo penso e explicar sentimentos e etc. O ultimo livro que li sobre o assunto(Geração Y o nascimento de uma nova versão de lideres) dedica uma parte a Controle e Maturidade, sem enrolação a premissa é a seguinte:

Quanto maior a maturidade de uma pessoa menor a necessidade de  controle.

O exemplo inicial é sobre o período da infância onde os pais exercem controle sobre as atitudes da criança, por exemplo colocar o dedo na tomada ou ainda mastigar alguma coisa indevida.Os pais exercem controle sobre a criança fazendo com que a mesma não repita tais atitudes, mas por que o controle? porque na infância ainda não possuímos a maturidade necessária para identificar o perigo nas ações.Os pais através do controle e informação contribuem para aprimorar a maturidade da criança, até que chega um momento onde o controle sobre tal atitude não é mais necessário.

Amadurecer envolve errar
Uma dos principais catalisadores do processo de amadurecimento é o erro, desde pequenos erramos e somos “controlados” para evitar novas falhas. Considerando o modelo de gestão que ainda considero o mais difundido é extremamente importante evitar o erro, o que isso quer dizer? preciso de maturidade ou controle. A maneira mais simples na visão de grande parte dos gestores é controlar até que o profissional se torne maduro, a questão é que a ideia de evitar erros é muito importante. Na maioria dos casos errar é um baita problema, logo o profissional evita errar então o processo de amadurecimento leva mais tempo ou nem acontece.Se o profissional

 

O gestor controla até que o profissional seja maduro.O profissional “controlado” não pode errar, logo demora mais para amadurecer então o gestor precisa controlar

 

Maturidade em variados aspectos

Este modelo pode facilmente identificar padrões comportamentais em pessoas, por exemplo: Uma determinada pessoa pode ser bem madura profissionalmente mas ainda não atingiu a maturidade em relação a uma boa alimentação + exercícios, então talvez ela precisa do controle até amadurecer este aspecto. Isso me faz pensar em que pontos eu preciso de controle e de forma posso exercer esse controle até a maturidade.

Ambiente profissional misto

Sabendo dos diferentes tipos de comportamentos como deve agir um gestão diante de uma equipe mista? deve controlar apenas quem tem necessidade ou deve tentar promover a auto-organização?Penso que o controle está presente desde a vestimenta até o controle de tempo para almoço, estou longe de liderar ou gerir alguma coisa mas fico pensando na dificuldade de tomar decisões as vezes políticas como estabelecer horários flexíveis quando é preciso liderar pessoas tão diferentes.

 

Conclusão

O objetivo do post é levar considerações de maturidade em outros aspectos como qualidade de vida e questionar como os gestores resolvem esse problema. Comentários e indicações de livros são bem vindas

E você é maduro em todos os aspectos que deseja?
como exerce controle?
modelos dependente de maturidade como agile são aplicáveis mesmo com controle?

.NET Framework suporta mais que C# e VB.NET – Programador Poliglota

0

Olá pessoal, desde que iniciei no frameworl .NET sempre escutei varios lemas, entre eles:

Uma ferramenta, várias linguagens

 

Reaproveitar o conhecimento sobre o framework

A idéia de que o framework é o mesmo paravárias linguagens teoricamente impulsiona as pessoas à desenvolver com a melhor linguagem para a melhor situação, visto que a curva de aprendizado é menor já que o conhecimento é reaproveitado.

C#, VB.NET, LOB e comunidade .NET
Acredito que a maior parte das aplicações LOB devem ser desenvovidas em linguagens consolidadas e que por consequencia possuam profissionais capacitados e material de estudo.O questionamento é quanto ao profissional e membro da comunidade que não utiliza o poder de linguagens disponíveis no framework que seriam certamente uma melhor escolha para determinados tipos de aplicações como parses e até DSLs.

A comunidade incentiva prática de dojos e até mesmo projetos OpenSource que envolvem outras linguagens, mas parece que a consciencia da importancia de saber resolver o problema de maneira diferente e /outecnologia diferente ainda não chegou em parte da comunidade .NET. Iniciativas surgem como grupo de arquiteturas com foco em .NET e não foco em C# ou VB .NET.

Comunidade Java

A comunidade JAVA parece ter uma lição à ensinar com relação a linguagens rodando sobre o framework.  Hoje escuto muito barulho de pessoas desenvolvendo software usando Groovy,JRuby e Scala. Parece que o programador JAVA aprendeu que pode utilizar diferentes linguagens e ainda aproveitar o poder do ser framework. Espero que com o amadurecimento da comunidade .NET tenhamos o mesmo, temos muitas iniciatívas mas ainda não escuto o “barulho” que gostaria.

Linguagens que rodam no framework .NET

Hoje temos algumas implementações rodando no framework, entre elas posso destacar:

IronPython – Implementação de Python

IronRuby – Implementação de Ruby

Boo –Linguagem inspirada em Python

ainda temos uma lista extensã aqui.

 

Enquanto a comunidade evolui..

Hoje a comunidade .NET encara o Open Source com outros olhos, temos diversas ferramentas muito boas como NUnit. NHibernate e muitas outras. Agora temos um gerenciador de pacotes(semelhante ao gem) chamado NuPack e um repositório de código Open Source

 

Antologia Thoughworks

No livro ThoughWorks Anthology temos um capitulo dedicado ao programador poliglota. O capitulo aborda de maneira sucinta e com exemplos sobre os benefícios da escolha de linguagens de acordo com a necessidade. Os exemplos são em Java, mas o conceito e algumas linguagens são válidas para o framework .NET

 

Moral da história
 
Seguir a dica do programador pragmatico hoje é muito mais facil com os frameworks como JAVA e .NET que possibilitam aproveitar o conhecimento já adquirido.

 

Referências:

http://en.wikipedia.org/wiki/List_of_CLI_languages
http://www.infoworld.com/d/developer-world/top-five-scripting-languages-the-jvm-855
http://en.wikipedia.org/wiki/List_of_JVM_languages

Encontros de desenvolvimento de software no RJ

0

Fala galera, este post demorou pra sair mas aqui está! hoje vou falar sobre uns encontros legais de desenvolvimento de software aqui(Rio de janeiro). O grupo DotNetArchitects está com uma vertente carioca, o pessoal do RJ já teve sua primeira reunião geral, um bate papo informal sobre desenvolvimento e agora está pronto para a segunda reunião.você ainda pode participar, pode obter mais informações aqui e aqui.

Galera do DNA

Galera do DNA

Ainda estes dias conheci o grupo de coding dojo do RJ, os caras parecem ser super organizados e já se reúnem normalmente, você pode conhecê-los aqui.

O movimento de desenvolvimento no RJ está ficando legal, estou vendo que o pessoal está perdendo a vergonha e construindo uma comunidade legal. Se você é do RJ participe, além de aprender programação pode tomar um chopp e jogar conversa fora. ;)

Eu não escrevo testes Porque o sistema em que trabalho é legado e não tem testes

0

Acho que todas as pessoas que se envolvem em projetos já iniciados já pensaram da mesma maneira do titulo. O raciocínio é simples, você entra num projeto que já estava em desenvolvimento e sua equipe não escreve testes, você como uma pessoa que sabe trabalhar em equipe vai seguir o modelo de desenvolvimento certo? Errado, na maioria dos projetos que conheço nada lhe impede de criar seus testes na maquina local. Qual a sua experiência? Você é realmente proibido de escrever os testes ou está dando desculpas?

Agora, que podemos escrever nossos testes por onde vamos começar? Afinal de contas estamos falando de um sistema que já está sendo desenvolvido desde o ultimo ano, não podemos simplesmente resolver testar o sistema todo certo? Não queremos que os outros desenvolvedores pensem que estamos perdendo tempo. Existem algumas maneiras de começar a escrever testes em sistemas legados,vamos ver algumas.

  • Escrever testes sempre que bugs forem descobertos
  • Escrever testes para novas funcionalidades
  • Escrever testes para entender o funcionamento de um componente

Outra dica relevante para os aventureiros é testar pequenas funcionalidades, é melhor e mais fácil começar testando pequenas coisas (métodos simples) do que componentes completos.

No final de tudo você pode até conseguir mostrar a relevância de testes quando algum membro da sua equipe estiver vendo você programar (isso aconteceu comigo) não consegui evangelizar o cara, mas ao menos ele viu valor nos testes unitários.

A mensagem principal do post é que não devemos diminuir nossos padrões de qualidade por causa do código legado, o código legado pode sempre ser refatorado.

Você conhece sua ferramenta de trabalho ?

0

O livro Programador pragmático contém um capítulo (3) que fala sobre o ambiente de desenvolvimento. Neste capitulo são reservados alguns momentos para abordar a ferramenta fundamental para os desenvolvedores, seu editor. Logo de cara ele vem com a dica de usar apenas um editor para realizar todos os tipos de trabalhos como programação, documentação edição de texto e etc. Usando apenas um editor você será capaz de aprender todos os atalhos, teclas secretas e melhores práticas com a ferramenta além de ser mais fácil acompanhar a evolução da mesma. Neste mesmo o capitulo aborda que o desenvolvedor deve  conhecer bem sua ferramenta de desenvolvimento e que é melhor saber usar bem um editor que ser razoável em muitos.

“Use um único editor bem”

A maior parte da galera que desenvolve em .NET utiliza o Visual Studio, e integrado a ele podem existir outras várias ferramentas como o Resharper.Tenho lá minhas dúvidas se a galera .NET sabe todos os atalhos legais ou se ao menos configura sua IDE da maneira que mais lhe convém, exemplos legais podem ser encontrados aqui e aqui. A quantidade de ferramentas para desenvolvimento vem aumentando, hoje já usamos uma ferramenta de testes (NUnit), um Cliente SGBD(SQLServer management studio), controle de versão além da IDE. Uma IDE como o visual studio fornece suporte para adaptação de diversas ferramentas como testes, debugging, controle de versão e etc.

O livro cita algumas características fundamentais para um bom editor/IDE, são elas:

  • Configurável
  • Extensível
  • Programável
  • Produtivo
  • Multi plataforma
  • Multi linguagem

A questão do post é enfatizar a importância de conhecer bem seu ambiente de trabalho. Quanto menos você tirar às mãos do teclado maior a produtividade.

PS: É claro, programar sem usar o mouse pode impressionar um programador da equipe

Release 0.6 da API Locaweb Gateway

2

Fala Galera, hoje saiu o release 0.6 da API de comunicação com o gateway de pagamento da locaweb. Este relase contém uma solução nova chamada APILocawebGatewayUI que fornece controles Drag-n-Drop para confifuração do funcionamento da API.  O visa e AMEX já foram testados e homologados,  estamos realizando testes com o Redecard(Mastercard e Dinners).

Quem quer aprender sobre a criação de controles em .NET ou como configurar e usar seções personalizadas no webConfig pode pegar o código fonte e aproveitar.

Qualquer tipo de dúvida vocês podem postar aqui ou sugestão pode ficar nos comentários ok?

Site do projeto:http://gatewaylocaweb.codeplex.com

Projeto de integração com gateway de pagamento locaweb

0

  Fala Galera, com muita felicidade estou postando sobre um novo projeto OpenSource que estou partipando. A idéia do projeto é fornecer uma API em C# para integração com o gateway de pagamento da locaweb.

  O gateway de pagamento fornece uma maneira simples de integrar com diversos cartões de crédito como: Visa, AMEX,Mastercard e Diners. É um projeto simples, onde a idéia é fornecer uma DLL com implementações necessárias para comunicação com o gateway.

   A primeira forma de pagamento a ser disponibilizada é o Visa usando o módulo VISAVBV. Já liberei uma primeira versão funcional, apenas com o intuito de algumas pessoas que procuraram para tirar dúvidas sobre a integração. Estou trabalhando em uma nova versão que deve fornecer uma DLL com uma interface muito mais organizada para realizar a comunicação. O projeto está no codeplex e sobre a licença MIT, mas assim que liberar um novo release vou trocar para licença GNU.

Fontes:

http://gatewaypaglocaweb.codeplex.com/

http://forum.locaweb.com.br/forumdisplay.php?f=86

http://www.locaweb.com.br/produtos/gateway-pagamento.html

 

É isso galera..

A lot of work to do

0

Hello people, is really nice be back. I know that make more than one month from my last post. This last month was at least different. I’ll tell you why. In the beginning of this month I left Vivina, the company I used to work. So I was really worried about be unemployed, I thought about it and I decided I would not be worried I would take a vacation, So I was looking for a new job but not worried anymore. So two days before I take a vacation I went to a interview and It was amazing, We had a chat and some minutes after I was employed again. This company is called Inforce, So you can conclude that I didn’t have a vacation.So I started working at Inforce, and everything was going fine.

Before I went to Inforce I received a phone call about a new opportunity, but I didn’t called back to schedule a interview.So one week after I start working at Inforce I received another call of this forgotten company. They Called me to an interview but I was well at Inforce So I wasn’t interested. In the last day for the Interview I went to this Company, The main reason was that the person who called me was very educated so I went, They were for me because I only Could get There about 7 and they usually leave the company between 6 and 7.I came there and I had my chance to speak, They asked me some questions and we had a interview. The interview was the best interview I had in my hole life, it was incredible it was like I already know every member of that team, So I did a exam and everything was nice. I was delighted, I thought all really cool. So I was waiting their answer, and 2 days after it they called me so I had to decide if i would go to this new company. I spend more one week at Inforce and I went to this company, called Harpia Ventures. I start working in this new company but I was Doing a project to Inforce. So you can realize that I was without an time. I was working in two different projects, doing my Scientific project and for last I had to go to the college.So i was really tangled.

So I did it last two weeks I believe that now I can Return to my routine and make my posts. So what I have to say? Companies are looking for professionals, I really think that there is a lot of chances for developers.

Have a nice weekend!

Go to Top