Friday, January 29, 2016

Os dois lados da moeda

Medo e prazer são os dois lados de uma moeda: você não pode livrar-se de um, sem se livrar do outro também. Você quer ter prazer toda a vida e também ficar livre do medo – é só com isso que você se preocupa. Mas você não vê que fica frustrado se o prazer de amanhã lhe for negado, você se sente irrealizado, raivoso, ansioso e culpado, e todos os sofrimentos psicológicos vêm à tona. Portanto, você deve olhar para o medo e para o prazer juntos.

- Krishnamurti, The Impossible Question, pp 50-51

Friday, January 15, 2016

Five Myths of Traditional Software Development

  1. The myth of the specification: Traditional software development assumes that the first task is to determine the specification, and all design and development follows after the specification is finalized. More modern approaches stress spiral rapid development methods in which the specification is constantly being refined. The target is really a combination of related components, not a single application.
  2. The myth of software maintenance: The word "maintenance" gives the impression that the software has somehow degraded, and needs to be refurbished to its original condition. This is misleading. The bits in a program do not degrade. They remain the same, while the environment around the program changes. So it is really a process of upgrading or evolving to meet the needs of the changing environment. By viewing it as a maintenance problem, one risks making the mistake of trying to preserve the old structure when its time has passed.
  3. The myth of the black box: Abstraction plays a crucial role in the development of reliable software. However, treating a process as a black box with an input/output specification ignores the practical problem of resource usage. When a system built out of these black boxes is too big or too slow, there is no way to improve the performance other than to tear the boxes apart. Some work has been done on the idea of Open Implementation, in which modules have one interface for input/output behavior, and another orthogonal interface for performance tweaking. Adaptive software adds to this by making the orthogonal interface a two way system ÷ there is a feedback loop that provides information on the results of the performance tweaking.
  4. The myth of design choices: In traditional software development, the designers consider several alternatives to implement each component, and then make choices based on the desired product. The alternatives that were not chosen, along with the rationale for the choice, are then discarded. That means when the environment changes (perhaps a new communications protocol becomes popular, or the user gets a computer that is twice as powerful), one needs to start all over again to see what choices are now the best. Often, the original programmers have moved on, and so their design rationale is lost. The alternative is to capture the design criteria as a formal part of the program, and let the program reconfigure itself, as the environment changes, to optimally satisfy the criteria.
  5. The myth of the expert programmer: Most programmers have pride in their abilities, and feel they can always come up with a good solution, given a suitable specification of the problem. In reality, programmers are only one resource available to a project, and an expensive resource at that. Furthermore, it is impractical to ship a developer with each program (except for very large and expensive custom applications). This suggests that we find a tradeoff where the programmers and designers do what they can do best ÷ formally describe what the program is trying to do. Then the program itself does the calculating and configuring necessary to achieve these goals in the current environment.

Saturday, January 09, 2016

Soft Skills


Soft skills, até pouco tempo ignoradas, viraram uma verdadeira modinha no mundo corporativo nos últimos anos. Muito se fala na importância das soft skills e em como desenvolvê-las, o que é um grande desafio, já que primeiro devemos identificar o que elas são.

Idiotices como pesquisas sobre melhores empresas para se trabalhar ganharam muita força ultimamente, dando aos horses a ilusão de que seus empregadores possuem algum dever junto à peonada no que diz respeito a bem estar e condições de trabalho. Dentre os critérios que tais pesquisas inúteis utilizam para qualificar uma empresa como boa ou ruim para se trabalhar está a tal da “meritocracia”, ou “promoção por mérito”. De repente, a peonada começou a se insurgir contra uma das mais antigas práticas Go Horse: a promoção baseada na amizade e confiança.

O horse deve ter em mente que chefe não é pai e promove quem bem entender. Além disso, uma promoção para um cargo de natureza gerencial exclui o promovido do ciclo produtivo, o que faz da promoção por mérito uma grande inconveniência.

Tendo em vista o fato de que as atividades de um gerente se assemelham muito ao trabalho de verdade, porém totalmente alheias à construção do bem ou serviço vendido pela organização, promoções para cargos gerenciais passaram a ser justificados pelas tais “soft skills”. Ou seja, se algum peão ousar contestar uma promoção de alguém que não demonstra, segundo seu julgamento, a qualificação necessária, basta respondê-lo que tal promoção se deu em virtude de soft skills que o recém promovido detém.

Uma soft skill é uma competência ou característica pessoal atrelada à personalidade e que, ao contrário das competências técnicas, não demanda esforço por parte da pessoa que deseja desenvolvê-la. A avaliação de uma soft skill de alguém é vaga e subjetiva, o que torna extremamente fácil a um chefe goHorser justificar a promoção de um amigo incompetente.

Ou seja, soft skills são uma criação de membros goHorsers do Círculo de Confiança que tem como objetivo viabilizar uma fácil justificativa para uma inclusão repentina de um amigo às altas rodas da empresa.

Tal criação se mostrou tão eficiente na obtenção do seu objetivo que, em muitas empresas, ser competente tecnicamente depõe contra o horse. Isso significa que, se desejamos manter um horse competente eternamente na condição de peão, basta rotulá-lo como alguém “essencialmente técnico e sem soft skills”. Hoje é muito comum o fato de horses omitirem suas qualificações técnicas para manterem vivas as suas chances de ascender ao Círculo de Confiança.

Conheça algumas Soft Skills:

Nome Técnico: Sociabilidade
Significado: Vaselina
O que é: capacidade de dar tapinhas nas costas e sorrir para colegas escrotos e sem escrúpulos de quem se possa vir a precisar algum dia.

Nome Técnico: Capacidade de Persuasão
Significado: Manipulação de Otários
O que é: não importa o quão estúpida seja uma ideia, dependendo da convicção com a qual a defendemos, podemos convencer os otários a segui-las.

Nome Técnico: Liderança
Significado: Cenoura na frente do burro
O que é: ninguém faz nada sem receber algo em troca, e são vistos como líderes aqueles que ganham o apoio da massa ludibriando-a com promessas vazias.

O advento das soft skills trouxe a nós, goHorsers, um efeito colateral positivo: tem muito horse que quer crescer através do desenvolvimento desse tipo de competência, ignorando o fato de que as soft skills são usadas para justificar uma promoção DEPOIS que a mesma ocorre, e não antes. Isso gerou um vasto mercado a se explorar: cursos e treinamentos de comunicação, negociação, técnicas de apresentação e outras inutilidades.

Sunday, January 03, 2016

The Master Algorithm

You may not know it, but machine learning is all around you. When you type a query into a search engine, it’s how the engine figures out which results to show you (and which ads, as well). When you read your email, you don’t see most of the spam, because machine learning filtered it out. Go to Amazon.com to buy a book or Netflix to watch a video, and a machine learning system helpfully recommends some you might like. Facebook uses machine learning to decide which updates to show you, and Twitter does the same for tweets. Whenever you use a computer, chances are machine learning is involved somewhere. Traditionally, the only way to get a computer to do something—from adding two numbers to flying an airplane—was to write down an algorithm explaining how, in painstaking detail. But machine learning algorithms, also known as learners, are different: they figure it out on their own, by making inferences from data. And the more data they have, the better they get. Now we don’t have to program computers; they program themselves.



Pedro Domingos

http://homes.cs.washington.edu/~pedrod/

Saturday, January 02, 2016

About the Time

Time is a HUMAN CONSTRUCT .  Outside of human understanding IT DOES NOT EXIST. It is a template which humans have made & applied to help us understand the ' human condition '.  i.e. That we live on a tiny planet within the solar system & move around a large star called the Sun. Time is a template applied to movement so that we can easily understand how ' THINGS CHANGE ' -  How THINGS CHANGE is what we call time. Time of itself -  does NOT exist - MOVEMENT & CHANGE exist  -  TIME IS A MAN MADE CONCEPT.  IT DOES NOT EXIST OF ITSELF IN NATURE.

The Smallest to the Biggest thing in the Universe