24 dezembro 2009

Os Sociopatas, os Sem-Noção e os Perdedores

Um artigo publicado a alguns meses atrás chamado The Gervais Principle provocou uma ampla discussão sobre como realmente funciona a estrutura e a saúde de qualquer organização humana.

O artigo, escrito por Venkatesh Rao, usa como ponto de partida os dilemas passados pelos personagens do The Office, e usa diversas situações retratados nos episódios para explicar os conceitos sob a ótica interpretada por Venkatesh.

Gervais é um dos criadores da série The Office, e o princípio criado por Venkatesh e nomeado como Princípio de Gervais diz basicamente que:
Sociopatas, por seus próprios interesses, deliberadamente promove Perdedores de desempenho superior para gerência média, conduz Perdedores de desenpenho inferior para papéis de Sociopatas, e deixa os Perdedores de desempenho mediano se virarem sozinhos.
A terminologia Sociopatas, Perdedores e Sem-Noção é uma semântica nova e controversa de Venkatesh, mas não foi criação dele. Ele usou uma classificação criada no Gaping Void que ele acredita refletir os conceitos apresentados:



Agora, com a definição dos termos apresentados, releia o Princípio Gervais acima e veja se isso se aplica com a sua experiência na sua empresa. :-)

O texto é um pouco prolixo e muito cínico e franco, o que fabricou críticas acaloradas por causa da classificação pejorativa e pelo rotulamento das pessoas, e também pela forma franca que expõe o interesse explícito do interesse de manipulação humana dos Sociopatas independente do julgamento de valor da intenção desta manipulação.

A exposição dos Sociopatas não é diferente da forma que Nicolau Maquiavel apresentou O Príncipe, só que quem leu O Príncipe normalmente considera este comportamento distante e apenas aplicável a quem realmente fosse um rei ou um príncipe. A leitura inocente de Maquiavel é comportamento clássico de um Sem-Noção que acredita obter receitas de lidar com seus Sociopatas. Os Perdedores vão achar o livro apenas chato... :-)

Os Perdedores são aqueles na base da pirâmide, que tem noção clara que estão fazendo uma escolha perdedora, entregando grande parte do seu esforço para lucro direto dos Sociopatas. Só que todo mundo começa a vida por aí, e muitos terminam a vida nesta posição, o que não é nenhum demérito, esta é uma posição de bastante liberdade para aprendizado e de liberar tempo para desenvolver interesses paralelos ao longo da vida.

A camada do meio, chamada Sem-Noção, é a mais controversa por ter pessoas na sociedade que trabalham duro e que ganham merecidamente salários altos. São formados por profissionais que desempenham por muitos anos muito acima do que as empresas esperam e que mantém um certo ar de humanidade ao tentar traduzir os comportamentos francamente desumanos dos comportamentos dos sociopatas em interpretações mais humanas para seus Perdedores. Ou seja, o típico comportamento da gerência média.


O artigo segue discutindo o desenvolvimento das camadas ao longo do ciclo de vida da empresa, e desenvolve um insight muito interessante: quando os Sem-Noção tomam conta da empresa esvaziando o espaço dos Sociopatas através da burocracia, ou ainda reduzindo os Perdedores para inchar sua influência trazendo mais Sem-Noção para perto deles, isto são sinais claros que a empresa está caminhando para implosão.


Venkatesh escreveu em seguida um artigo explorando um pouco mais a forma que a comunicação ocorre entre estes atores organizacionais: Posturetalk, Powertalk, Babytalk e Gametalk (traduzido para algo como discurso postural, e discurso de poder, conversa infantil, e comunicação como um jogo).

É muito interessante verificar que, de acordo com o tipo de conversa que ocorre entre as pessoas, fica trivial verificar qual posição cada pessoa trabalha na organização. Não vou entrar em mais detalhes aqui para não fazer este meu artigo ficar muito grande, então leiam os artigos originais descobrir mais sobre estas linguagens.

Se você achar interessante este assunto, não esqueça de contribuir pagando um café para o Venkatesh através de um link em seu blog. Ele merece nosso suporte por ter trazido este assunto a luz e conseguir através da controvérsia fazer todos nós pensarmos sobre o nosso papel em nossas vidas.

18 dezembro 2009

Os WorkShops sobre a portaria 1510


Os WorkShops foram um sucesso. Conseguimos reunir um grupo muito bom de pessoas e as discussões foram sempre de muito alto nível.

Várias preocupações muito relevantes foram discutidas. O impacto da separação do controle de acesso do controle de ponto, a necessidade de troca dos equipamentos, o funcionário que executa trabalho externo e a grande questão de gerar os comprovantes em papel para os funcionários foram os itens que provocaram maior repercussão e incertezas.

De nosso lado, tivemos a preocupação de passar a nossa noção de como esta mudança impactará na gestão de RH das empresas, em especial a gestão dos documentos eletrônicos, e também como o mercado de soluções deve estar se organizando durante este processo de transição.


O resultado foi muito positivo e só temos a agradecer às pessoas que compareceram e aos nossos parceiros que viabilizaram que este evento acontecesse.

O ano que vem o assunto deve ficar ainda mais quente, já que a partir de agosto a portaria entra em vigor por completo. Devido a isso, já até tivemos alguns convites para voltarmos a discutir o assunto nos próximos meses.

Estaremos atentos e a disposição para ajudar e participar neste processo de mudança. A gente entende que a nossa grande missão é poder fazer a diferença para nossos clientes e para a sociedade.

12 dezembro 2009

Resolvendo Sudoku em Python

Este post do Peter Norvig me deixou agoniado para estudar as técnicas de solução do Sudoku. Achei a solução dele bem bacana, quase programando Lisp em Python usando os mecanismos de List Comprehension e recursividade.

Tentei gerar uma versão um pouco mais simples removendo a recursividade e usando técnica de passagem múltiplas.

Primeiro uma inicialização de estrutura de dados auxiliares:
rows = 'ABCDEFGHI'
cols = '123456789'
squares = [r+c for r in rows for c in cols]
vectors = ([[r+c for c in cols] for r in rows] +
           [[r+c for r in rows] for c in cols] +
           [[r+c for r in srows for c in scols]
               for srows in ('ABC','DEF','GHI')
               for scols in ('123','456','789')])
peers = dict((s, set(s2 for vector in vectors if s in vector for s2 in vector))
        for s in squares)
digits = list('123456789')

Squares contém um array com todos os nomes das caixinhas do tabuleiro do Sudoku (A1, A2, ...., A9, B1, B2, ...). Vectors contém os vetores dos nomes das caixinhas das linhas, colunas e dos quadrados menores do tabuleiro, aonde cada vetor tem que conter os números de 1 a 9 conforme a regra do Sudoku.

O dicionário peers é a estrutura mais mágica, ela contém o conjunto dos nomes das caixinhas do tabuleiro que fazem parte da linha, coluna ou quadrado menor de cada caixinha. Com ela consigo rapidamente verificar quais números estão já sendo usados nos vetores.
def parse_grid(grid):
    "Given a string of 81 digits (or . or 0 or -), return a dict of {cell:values}"
    grid = [c for c in grid if c in '0,-123456789']
    return dict((squares[p], grid[p]) for p in range(len(squares)))

def printboard(values):
    width = max(len(values[s]) for s in squares)
    sep = '+'.join(['-'*(2+width)*3]*3)
    form = '|'.join([(' %%%ds ' % width*3)]*3)
    for r in rows:
        print form % tuple([values[r+c] for c in cols])
        if r in 'CF': print sep
    print

parsegrid e printboard são funções auxiliares: parsegrid recebe uma string com números de configuração inicial do tabuleiro aonde a sequência na string descreve a posição no tabuleiro, 0 indicando posição vazia e 1-9 indicando o valor inicial. printboard obviamente imprime o que está no tabuleiro passado como um dicionário de parâmetro.
def possibilities(values):
    values = values.copy()
    while True:
        changed = False
        for s in squares:
            if not values[s] in digits:
                values[s] = ''.join(set(digits).difference(set(values[s2] for s2 in peers[s])))
                if values[s] == '': return False
        for vector in vectors:
            for digit in digits:
                ocor = [s for s in vector if digit in list(values[s])]
                if len(ocor) == 0: return False
                if len(ocor) == 1 and len(values[ocor[0]]) > 1:
                    values[ocor[0]] = digit
                    changed = True
        if not changed: break
    return values

Esta função possibilities recebe um dicionário de parâmetro e retorna uma cópia com os espaços em aberto preenchidos com as possibilidades para cada posição no tabuleiro. É basicamente uma versão multi-passagem do algoritmo recursivo do Peter Norvig.

Primeiro a função varre o tabuleiro procurando as posições do tabuleiro em aberto e preenche com uma string das possibilidades de acordo com os vetores envolvidos na posição. Em vários casos apenas uma possibilidade é possível, o que já determina o valor da posição só nesta passada.

Em seguida todos os vetores são analisados para verificar possibilidades únicas para os números de 1 a 9. Funciona assim: digamos que na linha A (A1-A9) as posições A1 a A8 contenham os números de 1 a 8, e a posição A9 contenha as possibilidades 7, 8 e 9, é evidente que o valor de A9 é o valor 9.

Estes dois algoritmos são executados várias vezes até que nenhuma alteração não seja mais possível, o que em muitos casos já soluciona o Sudoku.

Os casos aonde o Sudoku não é solucionado apenas através das restrições impostas nos vetores são considerados Sudokus avançados, pois envolvem teste simultâneo de alternativas para sua solução.

Para isso, a força bruta parece ser a solução mais simples:
def solve(values):
    values = possibilities(values)
    if not values: return False
    for s in squares:
        if len(values[s]) > 1:
            for p in values[s]:
                values[s] = p
                res = solve(values)
                if res: return res
            return False
    return values

Esta função solve aplica o possibilities, procura o primeiro caso de uma caixa com múltiplas possibilidades e varre suas alternativas recursivamente tentando solucionar com o próprio solve.

Agora vamos tentar solucionar o Sudoku mais difícil que existe segundo o próprio post que usei como referência:
grid = """
100007090
030020008
009600500
005300900
010080002
600004000
300000010
040000007
007000300
"""
grid = parse_grid(grid)
printboard(grid)
printboard(possibilities(grid))
printboard(solve(grid))

O que dá como resposta:
 1  0  0 | 0  0  7 | 0  9  0
 0  3  0 | 0  2  0 | 0  0  8
 0  0  9 | 6  0  0 | 5  0  0
---------+---------+---------
 0  0  5 | 3  0  0 | 9  0  0
 0  1  0 | 0  8  0 | 0  0  2
 6  0  0 | 0  0  4 | 0  0  0
---------+---------+---------
 3  0  0 | 0  0  0 | 0  1  0
 0  4  0 | 0  0  0 | 0  0  7
 0  0  7 | 0  0  0 | 3  0  0

      1    8256    8246 |    854     354       7 |    246       9     346
    547       3      46 |   1954       2     195 |   1476     476       8
   8247     827       9 |      6     134     183 |      5    3247     134
------------------------+------------------------+------------------------
   8247     827       5 |      3     176     126 |      9    8476     146
    947       1      34 |    957       8     956 |    476   35476       2
      6    9827     832 |  19257    1957       4 |    187    8357     135
------------------------+------------------------+------------------------
      3   98256     826 | 254798   95476   98256 |   8246       1    9546
   9825       4       1 |   9825    9356  325698 |    826    8256       7
   9825   98256       7 | 125498   19546  125698 |      3   82546    9546

 1  6  2 | 8  5  7 | 4  9  3
 5  3  4 | 1  2  9 | 6  7  8
 7  8  9 | 6  4  3 | 5  2  1
---------+---------+---------
 4  7  5 | 3  1  2 | 9  8  6
 9  1  3 | 5  8  6 | 7  4  2
 6  2  8 | 7  9  4 | 1  3  5
---------+---------+---------
 3  5  6 | 4  7  8 | 2  1  9
 2  4  1 | 9  3  5 | 8  6  7
 8  9  7 | 2  6  1 | 3  5  4

07 dezembro 2009

Divisão do tempo numa empresa recém criada

Dividir o trabalho entre ser empreendedor e executar as atividades de desenvolvimento de uma empresa é bastante complicado.

Desenvolvimento é uma atividade de longo prazo, que envolve concentração e investimento expressivos de tempo. A criação de um produto não é uma atividade repetitiva, e sim imprevisível e com vários caminhos para um mesmo objetivo.

As atividades mais importantes de um empreendedor são envolver as pessoas e fabricar o ambiente para que a evolução da empresa aconteça, através de motivação e remoção de problemas que obstruem o progresso. Estas atividades são atividades de curto prazo, aonde o envolvimento acontece quase no mesmo momento em que se torna necessário.

Isto quer dizer que, no momento que uma empresa conta com algo como 2 a 3 pessoas adicionais aos empreendedores, os empreendedores precisam tomar o cuidado de dividir o seu tempo criteriosamente para que o resultado final somado seja o melhor possível.

Esta divisão do tempo é responsabilidade direta dos empreendedores, e os mesmos precisam descobrir estratégias para conseguir um bom resultado. Uma estratégia comum é dividir as responsabilidades entre os empreendedores, de forma que um se envolve mais no lado empreendedor, motivacional e desbloqueador de problemas enquanto outro envolve mais na atividade fim.

A alternativa é desenvolver estratégias de divisão de tempo, algo como o uso do turno da manhã para ser empreendedor e o turno da tarde para exercer a atividade fim. Até Paul Graham escreveu sobre a dificuldade desta divisão de tempo e sugeriu estratégias quando discutiu o impacto das reuniões em start-ups.

Independente da maneira que se lida com este dilema, fica claro que os empreendedores perdem parte do seu tempo para viabilizar o uso do tempo de outros, criando uma redução prática do resultado que seria esperado pela adição de mais um colaborador.


Tem algum web designer ou fuçador de php que gostaria de dar uma mão para a gente? Aqui na Ahgora cada vez tem mais coisas para aprender e fazer. Só tem uma coisa, tem que estar a fim de sair da casinha, abandonar bancos relacionais para aprender a usar SimpleDB e S3, e ajudar a descobrir maneiras de comunicação inovadoras pela Web, seja no HTML, design, Twitter, ou blogs. Garanto que vai ser uma escola e tanto trabalhar numa start-up como a nossa.

27 novembro 2009

Vamos discutir a Portaria 1510 do MTE


Os negócios estavam indo bem. Não na velocidade que a gente espera mas continuamente melhor a cada dia. Ai chega uma grande mudança e parece que o mundo cai abaixo.

Em agosto deste ano, o Ministério do Trabalho e Emprego baixou a portaria 1510 regulamentando o mercado de ponto eletrônico. Esta regulamentação foi uma surpresa o nosso time da Ahgora, como deve ter sido para grande parte das empresas que usam ou desenvolvem soluções para ponto eletrônico.

De início, dá para ver que é uma mudança drástica. Existe uma rigidez forte de como o registro de ponto tem que ser feito, como este equipamento deve funcionar e quais documentos deverão ser gerados e guardados.

Isto fez o mercado inteiro de ponto eletrônico entrar em compasso de espera, esperando mais detalhes sobre esta mudança, e adiando grande parte dos planos de aquisição de soluções até a reestabilização do mercado.

De outro lado, dá para perceber que a intenção da mudança é muito boa, pois disciplina esta situação do registro eletrônico de presença, dando regras para um mercado que estava acostumado a ficar sempre tentando testar o limite da legalidade das interpretações das jurisprudências sendo formadas sobre este tema.

Isto não quer dizer que será uma transição fácil, e nem barata, para todos os envolvidos. Haverá impactos em como o registro é feito, como a empresa lida com o acesso do funcionário ao equipamento de registro, como como os dados serão transportados para softwares de apuração, como os documentos serão custodiados e como a fiscalização vai funcionar.

É muita informação e existe bastante dificuldade de interpretação por todas as partes. Precisamos rapidamente envolver as pessoas que se importam com este processo, trocar figurinhas e buscar uma estratégia para lidar com este processo como empresas, como governo, e principalmente como sociedade.


Da nossa parte, resolvemos organizar e patrocinar um evento regional sem fins lucrativos para envolver as pessoas que se preocupam com este processo de mudança. Já temos confirmados presenças de profissionais de RH das empresas da região, consultorias de RH, associações de empresas, contadores, advogados trabalhistas, representantes do ministério do trabalho e, ainda, de outras empresas que desenvolvem produtos e serviços para este segmento de mercado.

Como empresa, a Ahgora está buscando nesta transição se posicionar como facilitador e agente de mudança para a sociedade. Vamos anunciar esta nossa visão no evento e apresentar algumas maneiras de como vemos que podemos contribuir neste processo.

19 novembro 2009

Aplicação na Web é uma prestação de serviço


O carro chefe da Ahgora é o Serviço de Ponto Eletrônico Ahgora PontoWeb, e, se tem uma coisa que é complicada de explicar aos nossos clientes é o conceito de serviço SaaS (Software as a Service)...

Até alguns anos atrás, todo software era vendido como produto, muitas vezes até embalado numa caixa, quase como sabão em pó. Aí vem a Internet e abre um espaço até então inimaginável alguns anos atrás, o oferecimento de aplicações e de serviços utilizando da Internet para permitir a operação remota, fora das premissas do cliente.

Como é um paradigma diferente, leva um bocado de tempo para explicar como as coisas podem ser diferentes, muitas vezes é necessário alguns meses até a ficha cair.


O primeiro impacto é a mudança na visão de aquisição de ativos, como servidores e softwares de banco de dados e aplicações finais. SaaS terceiriza toda esta dificuldade e transfere a responsabilidade da aquisição de ativos para a cadeia fornecedora do serviço.

O segundo grande impacto é que a continuidade do serviço não depende mais de um profissional de TI suportando os servidores, e a maior parte da responsabilidade passa para o fornecedor. A estrutura de TI necessária é apenas a que permita a conectividade com qualidade para a Internet.

O terceiro impacto é financeiro. O custo de aquisição de know-how e de ativos é transferido para o fornecedor, e o mesmo passa a ser obrigado a prestar um serviço de financiamento da aquisição dos ativos e desenvolvimento de atualizações para os seus clientes. Ou seja, como o cliente apenas paga mensalmente pelo serviço, o fornecedor tem que cuidar do fluxo de caixa para manter o equilíbrio financeiro do empreendimento.

O quarto impacto é a questão de transferência de controle das informações e da independência da empresa. Como a informação fica hosteada em outro lugar e a aplicação apenas está rodando em servidores fora de seu controle, existe uma preocupação muito grande com respeito a continuidade do serviço prestado e da segurança das informações.

Estas preocupações tem sua razão de ser, mas temos que ver que as alternativas também apresentam riscos substanciais: o funcionário que estava cuidando do sistema pode ficar doente, o servidor pode dar problemas, ou ainda os backups podem estar comprometidos por falha operacional e com isso correr o risco de perder todos os dados armazenados.

Em suma, uma aplicação SaaS não é apenas um produto instalado num servidor na Internet, é um serviço prestado que agrega suporte, continuidade, gestão de ativos e investimentos, itens tão, ou até mais, importantes que o software propriamente dito.

17 novembro 2009

Empreender para valer...

Depois de alguns anos trabalhando a ideia, até mesmo através de blog que estava trabalhando em segundo plano (Aprender como Empreender), acabei tomando uma decisão: estava na hora de tentar apostar a minha vida na paixão de criar empresas.

Sexta-feira passada (13/11/2009) foi meu último dia como funcionário da Dígitro. Apesar dos altos e baixos, os quase 18 anos lá foram uma verdadeira escola. Conheci centenas de pessoas que fazem a diferença e tive a oportunidade de trabalhar com muitas das tecnologias mais modernas hoje no mercado.

Mas agora o momento é outro, e vou buscar fazer a diferença participando da explosão de crescimento no Vale do Silício brasileiro: a Grande Florianópolis. Já com 450 empresas de base tecnológica uma massa crítica está formada para que grandes mudanças aconteçam na região.

Paul Graham algum tempo atrás escreveu que existem fatores muito importantes para que esta massa crítica desenvolva: clima ameno para atrair pessoas com capital para empreender, boas universidades próximas, uma massa de profissionais muito qualificadas e várias empresas próximas para suportar uma economia de escopo.


Estou entrando como sócio da empresa Ahgora Sistemas e nestes próximos meses eu garanto a vocês que a marca Ahgora se tornará rapidamente uma das promessas que ajudará na mudança de paradigma da cidade.

18 outubro 2009

Brincando nas núvens com o SimpleDB da Amazon



Dias atrás apresentei o serviço S3 da Amazon e como ele serve como uma boa ferramenta de backup usando o S3Fox.

Agora vou apresentar como brincar com o SimpleDB da Amazon que nada mais é que um banco de dados distribuído rodando na Internet.

Como faz muito tempo que não brinco com php, vou usar o php com uma biblioteca de acesso aos serviços da Amazon chamado de Tarzan.

Feito o download, basta configurar no diretório de trabalho suas permissões de acesso ao serviço da Amazon (variáveis AWS_KEY e AWS_SECRET_KEY, as mesmas usadas para o S3Fox). Não esquecer que o serviço SimpleDB precisa ser assinado na Amazon antes de poder usá-lo.

Teste simples para ver os domínios (equivalentes a tabelas no caso de SQL):
$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB();print_r($sdb->list_domains()->body->ListDomainsResult);'
O resultado no caso de não existir nenhum domínio seria:
SimpleXMLElement Object

(

)
Seguindo as documentações do SimpleDB do Tarzan, toda a API do SimpleDB está disponível. Vamos criar um domínio novo:
$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB();print_r($sdb->create_domain("dominio1"));'
$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB(); print_r($sdb->list_domains()->body->ListDomainsResult);'
O resultado do último comando mostra:
SimpleXMLElement Object
(
    [DomainName] => dominio1
)
Legal! O dominio1 apareceu. Colocando dados de Santa Catarina, São Paulo e Ceará:
$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB();print_r($sdb->put_attributes("dominio1", "Santa Catarina", Array("capital"=>"Florianopolis", "populacao"=>"0005866568")));'
$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB();print_r($sdb->put_attributes("dominio1", "Sao Paulo",Array("capital"=>"Sao Paulo","populacao"=>"0040442795")));'
$ php -r 'require_once "tarzan.class.php"; $sdb = new AmazonSDB(); print_r($sdb->put_attributes("dominio1","Ceara", Array("capital"=>"Fortaleza","populacao"=>"0008097276")));'
Aí, com uma pesquisa simples do tipo SQL dá para procurar estados com mais de 10 milhões de habitantes:
$ php -r 'require_once "tarzan.class.php"; $sdb = new AmazonSDB();print_r($sdb->select("select populacao from dominio1 where populacao>\"0010000000\"")->body->SelectResult);
O que reporta o estado esperado e sua população:
SimpleXMLElement Object
(
    [Item] => SimpleXMLElement Object
        (
            [Name] => Sao Paulo
            [Attribute] => SimpleXMLElement Object
                (
                    [Name] => populacao
                    [Value] => 0040442795
                )
        )

)

10 outubro 2009

Ágiles2009 em Florianópolis deu um banho

Uau! A Conferência Latino-Americana de Sobre Metodologias Ágeis Ágiles2009 foi muito melhor do que eu esperava. Várias apresentações muito interessantes e uma oportunidade de ouro de conhecer as pessoas da região que realmente se importam com desenvolvimento de software.

Brian Marick começou com um keynote interessante discutindo como a esposa dele, que é veterinária, ensina a prática para os estudantes. Ele explicou sobre a metodologia de documentação SOAP (Subjective Objective, Assessment and Plan) para acompanhamento dos animais e como é difícil transferir a noção subjetiva para estes estudantes. Brian argumentou que os desenvolvedores de software precisam se espelhar nas experiências de transferência da habilidade de outras profissões.

Alisson Vale matou a pau tentando passar uma quantidade absurda de informação em 45 minutos explicando Kanban desde o começo. É incrível que mesmo assim tenha conseguido deixar todos bem embasados nesta reinterpretação do Lean que é o Kanban.

Thomas Looy fez uma apresentação espetacular mostrando num exemplo prático o efeito de não respeitar o TOC (teoria das restrições) e trabalhar com acúmulo de WIPs por tentar maximizar um desempenho local. É basicamente o segredo do Lean: otimização local gera desperdício, e deixar pessoas ociosas as vezes é mais econômico que fabricar estoque de trabalho inacabado.

Thomas ainda disse umas 10 vezes: "é essencial a gestão visual". Todos tem que ter como ver o Kanban. O Kanban é que vai mostrar os WIPs e as ineficiências.

Alexandre Magno e Manoel Pimentel fizeram um bate-bola sobre as dificuldades das implantações de Scrum e XP. Comentaram bastante da dificuldade de mudar a cultura da empresa e do mercado para aceitar os preceitos e deu para ver que a dificuldade de mudar as organizações é um problema muito sério que está gerando frustrações aos consultores e desenvolvedores em geral.

O Keynote do final de quinta foi de Roy Singham transformando a causa dos agilistas numa cruzada moral que mudará o mundo e o transformará num mundo melhor, onde a lógica do capitalismo e do controle cartesiano das organizações estarão mais sobre controle. Meteu pau nas montadoras de carros americanas e disse para espelharmos na Toyota para prepararmos a nossa revolução.

A paixão de Ray é contagiante por causa da paixão que ele transpira... Tão contagiante que por pouco não saí marchando para enviar meu currículo para a ThoughtWorks no instante final que ele anunciou a montagem do escritório em Porto Alegre. :-) Adorei o cara...

Um caso interessante disso foi a apresentação do Tiago Garcez discutindo as diversas concessões para tentar viabilizar o desenvolvimento ágil da parte de TI da Belgian Post que, mesmo depois de um período de relativo sucesso, uma mudança de diretoria parece querer a volta do Waterfall e da ilusão de controle. A frustração é evidente...

Para contrabalançar, David Hussman deu uma palestra excepcional destruindo os dogmas que estão se enraizando na comunidade de desenvolvimento ágil e a preocupação de viabilizar o processo de mudança. Insistiu bastante que a ortodoxia não deveria ter espaço e que a mudança tem que ter foco nas pessoas, sejam os desenvolvedores ou seus gestores.

David falou bastante da construção do "groove" que pode caber na sua empresa: olhar de longe e perceber o que o grupo tá precisando para ser mais ágil e ajudar o grupo nesta mudança escolhendo um ou outro item por vez que provoque o maior retorno possível ao grupo em pouco tempo.

A metáfora do "groove" é poderosa e ele compara com a construção de um ambiente para que uma banda consiga compor e tocar num ambiente confortável e acolhedor para a banda. E como ele tocou numa banda por cerca de 10 anos, pode falar com propriedade sobre a semelhança destas situações.

O painel final fechou a conferência de forma muito legal. Marick, Larsen, Hussman, Singham, Kerievsky e Samuel Crescêncio discutiram sobre a experiência da conferência aqui na América do Sul e da oportunidade que temos para participar desta experiência mundial da briga pelo Lean e Ágil. Reclamaram que o Ricardo Semler é uma referência lá fora por causa do livro "Maverick" e que é considerado um agilista corporativo e que nós aqui no brasil quase não damos valor.

Discutiram um monte novamente sobre a dificuldade de mudança das organizações, levando o Brian Marick a mandar todo mundo se liberar da escravidão e montar empresas de 12 pessoas escrevendo aplicações hospedadas de RubyOnRails... Caí na gargalhada com todo mundo lá... :-)

Parece que o Ágiles2010 vai ser em Perú em Lima... Pô, é longe... Mas quem sabe... :-)

04 outubro 2009

Backups na núvem com S3 da Amazon

E agora? Como guardar aquelas 5.000 fotos que você guardou nestes últimos 10 anos de fotografia digital?

Existe uma quantidade enorme de serviços de backup na Internet hoje em dia, como Mozy, DropBox, Carbonite ou JungleDisk, mas eu já sou mais do gosto de mexer diretamente com os arquivos e não ficar tão refém dos serviços prestados por um software instalado no micro.

S3 é um serviço da Amazon de armazenamento robusto de arquivos sem limite de quantidade e com replicação pelo menos tripla. É muito mais segurança do que qualquer backup que você deve estar aprontando de dentro de sua casa hoje. E o preço é bem em conta, gasto algo como $1,50 dólares por mês para manter os meus 10GB de fotos lá.

E usando o S3Fox, que é uma extensão para Firefox, o serviço de download, upload e sincronização ficam bem simples, praticamente a um click do mouse.

O que você precisa para poder usar este serviço?
  • criar uma conta no Amazon Web Services;
  • contratar o serviço S3;
  • instalar o S3Fox;
  • cadastrar no S3Fox as credenciais do S3 (Your Account/Security Credentials no site da Amazon).
A partir daí, é como transferir arquivos para um servidor como se fazia com o FTP, e curtir a tranquilidade de ter suas valiosas memórias seguras na nuvem da Internet.

25 maio 2009

Backbone de fibra é também bem público

Nos EUA, o congresso está propondo que todas as novas estradas que receberem dinheiro do governo tenham incluido um duto de fibra "escura" de acesso aberto e com espaço para acomodar várias prestadoras de serviço.

Vodafone da Nova Zelândia também está sugerindo uma parceria de todas as operadoras para contribuir numa parceria público-privada que gerencie uma empresa de fibra "escura" de acesso aberto.

Será que veremos uma consolidação do conceito de backbone de fibra "escura" como bem público?