quarta-feira, 3 de novembro de 2010

"Software é orgânico. Como as formas de vida baseada em carbono, o software cresce e evolui. Os recursos padecem. Novos recursos nascem. Os inúmeros lançamentos continuam crescendo como os galhos de uma árvore saudável."

EJB 3 in action

domingo, 25 de julho de 2010

scrum

quarta-feira, 26 de maio de 2010

Dan Ariely pergunta: temos controle sobre nossas decisões?

sexta-feira, 21 de maio de 2010

Dan Pink e a surpreendente ciência da motivação

Dan Pink e a surpreendente ciência da motivação

Analista de carreira Dan Pink examina o quebra-cabeça da motivação, começando pelo fato que cientistas sociais sabem mas a maioria dos gerentes não: recompensas tradicionais não são tão eficientes quanto pensamos. Escute histórias iluminadoras -- e talvez, um caminho a trilhar.

quinta-feira, 20 de maio de 2010

Agilidade, Qualidade e Futuro

O video que indico hoje fala sobre qualide de software, e o porque o modelo cascata nunca deveria ter sido estudado nas faculdades, afinal. Fala sobre qualidade e como consegui-la.



Agilidade, Qualidade e Futuro from Fabio Akita on Vimeo.

terça-feira, 18 de maio de 2010

Machucando Código por Diversão e Lucro - Ryan Davis

Video fala sobre qualidade de software e como conseguir um código limpo, legivel e manutenível...

"A obrigação do desenvolvedor é garantir que o código sendo escrito mostre da maneira mais clara sobre como a solução foi entendida no momento em que foi escrito".
Ward Cunningham, c2.com



Machucando Código por Diversão e Lucro - Ryan Davis from Fabio Akita on Vimeo.

Hoje tive tempo de assistir este video... muito bom... recomendo a todos que querem se tornar uma pessoa melhor, e até entender porque e como se explica o fenômeno de "muitos terem pouco e poucos terem muito".

Fala sobre o porque ser uma pessoa que esta na média é algo ruim, utiliza algumas teorias para dar fundamento, como: Pareto e Gaus.


Matando a Média - Gauss vs Pareto from Fabio Akita on Vimeo.

terça-feira, 11 de maio de 2010

Git

Para quem quer aprender a trabalhar com git

Tutorial de Git from Fabio Akita on Vimeo.





Github colaborativo from Fabio Akita on Vimeo.

quarta-feira, 10 de março de 2010

RESTful Web Services em Java

REST é um estilo de arquitetura de software que possibilita o desenvolvimento simples e rapido de servicos para Web e Web 2.0 Esta palestra apresenta os conceitos de REST, a API padrão para desenvolvimento na plataforma Java e a API Jersey para desenvolvimento de clientes REST. Serão criados exemplos para geração de RSS Feeds e XML.


sexta-feira, 5 de março de 2010

Oque todos devemos entender sobre as metodologias?

Cada metologia nasce dentro em um determinado escopo, normalmente atrelado a um tipo de industria e necessidade bem específica, logo, é natural que uma sirva para um modelo de negócio, mas não sirva para outro, também é natural que parte dela sirva, e outra não, sendo necessário adaptar e refinar.

Gosto muito da ideia de utilizarmos várias metologias a fim de agrupar as melhores práticas de cada uma. Sei que muitos dizem que isto é ruim, que desta forma criamos um Frankeistein. A estes questiono:
- “Existe alguma metologia que serve 100% a sua empresa/realidade?”.
Se a reposta é sim, ótimo, isto significa que provavelmente a area de atuação de sua empresa é muito próxima ou a mesma daquela que tornou realidade o nascimento da metologia da qual você está aderente.
Se a resposta é não, oque fazer? Mudar a empresa, ou adaptar o processo?

Fazendo uma analogia:
- “É o sistema que deve se adaptar as necessidades do cliente ou o cliente que deve se adaptar ao cliente?”
Normalmente, o cliente não quer mudar, quer algo que se adeque perfeitamente a suas necessidades, entendo que as vezes não é possível, pois o cliente tem um processo bagunçado ou nem tem processo, sendo necessário primeiro “ajeitar a casa”.

Em meu entendimento, se uma empresa possuí processos que a tornam lucrativa, não há motivo de muda-la e sim, adaptar e agregar melhores práticas a suas necessidades a fim de potencializa-la e refinar cada vez mais o seu método de trabalho.

As metodologias modernas nasceram em empresas com necessidades específicas e ainda não documentas, e com o tempo, são cada vez mais refinadas para atingir o maior número de problemas, saindo de uma necessidade específica para tornar-se uma provedora genérica.

Devemos entender que as metodologias modernas (PMBOK, Ageis) não se propõem resolver todos os problemas, mas sim, documentam e descrevem as suas melhores práticas. Oque precisamos é nos tornarmos adaptáveis e produtivos, mesmo que isto signifique mudanças. Todos necessitamos do “jeitinho brasileiro” e entender que o equilíbrio normalmente é a melhor opção.


"Nada é permanente, salvo a mudança." (Heráclito)
"A mudança em todas as coisas é desejável." (Aristóteles)
"A mudança é o progresso através do qual o futuro invade nossas vidas."
(Alvin Toffler)
"É impossível haver progresso sem mudanças, e quem não consegue mudar a si mesmo não muda coisa alguma." (George Bernard Shaw)
"Nada é tão duradouro como a mudança." (Ludwig Borne)
“Graças, existem pessoas que se arriscam e inovam, caso contrário, o mundo seria um tédio.” (Clayton K. N. Pasos)

terça-feira, 2 de março de 2010

Arquitetura....

A algum tempo estudo sobre arquitetura de software, estou lendo muito, e visualizo uma grama de divergências típica de um tema novo e ainda mal definido e mal compreendido.

Fazendo uma reflexão, conciliando as leituras com as experiências já obtidas, percebi que arquitetura puramente orientada a tecnologia pode ser um desastre ao cliente e ao modelo de negócios, não atendendo as necessidades da forma esperada e no prazo esperado, trazendo maior custo de desenvolvimento e manutenção.

Com esta percepção, acredito que o arquiteto antes de pensar em tecnologia deve conhecer o modelo de negócios e os processos de seu cliente, também é desejável conhecer os processos comumente aplicados por seus órgãos reguladores.

Como atualmente trabalho em uma empresa da área de Telecom, resolvi “garimpar” na iInternet, e encontrei o eTOM (enhanced Telecom Operations Map), que é um padrão para processos de negócio para a indústria de telecomunicações. Ele descreve o escopo completo dos processos de negócios requeridos por um provedor de serviço, definindo os elementos chave e a interação entre eles.

Muito interessante, recomendo a todos que possuem o mesmo interesse.


Referência:
eTOM (enhanced Telecom Operations Map)

eTOM (enhanced Telecom Operations Map)

eTOM: um guia para as operadoras

O que é
Quadro Conceitual Global
Visão a nível do CEO
Contexto da Operadora
Considerações Finais

quinta-feira, 14 de janeiro de 2010

MultiComparator

Quando você escreve um SQL para retornar informações do banco de dados de forma ordenada por vários campos, você escreve algo mais ou menos assim:

ORDER BY nome, idade, codigo

E em Java como você reproduz esta funcionaliade?

Eu faço assim ó :D





/**
* You can easily combine the results from several Comparators for an object
* class into one Comparator.
*


*
* You have the multi-comparator, and individual comparators for all the fields,
* you can create a comparator that has any properties you want. For example, to
* sort on EmployeeID, Name, and Age, in that order, you would do this:
*


*
*


* MultiComparator mc = new MultiComparator();
* mc.add(new EmployeeIdComparator(MyENum.ASC));
* mc.add(new EmployeeNameComparator(MyENum.ASC));
* mc.add(new EmployeeAgeComparator(MyENum.DESC));
* Collections.sort(list, mc);
*

*/
public class MultiComparator implements Comparator < book > {
private List<comparator < book > comparatorList;

public MultiComparator() {
comparatorList = new ArrayList<comparator<book>>();
}

public void addComparator(Comparator<book> c) {
comparatorList.add(c);
}

public void removeComparator(Comparator<object> c) {
comparatorList.remove(c);
}

public int compare(Book obj1, Book obj2) {
int result = 0;
for (Comparator<book> c : comparatorList) {
result = c.compare(obj1, obj2);

if (result != 0) {
break;
}
}
return result;
}
}