"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

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.

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.

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.

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.


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)

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

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;
}
}