Devops: Buzzword or the catalyst to fight conformity?

I have been meaning to write about this for quite some time now because this is the kind of stuff that should be chewing on every techie’s ear lately. Let me summarize the concept of DevOps from the point of view of a typical old-school manager (it’s funnier this way):

“ANARCHY! Developers jumping out of their cubicles and bashing into the server room bringing chaos and instauring pandemonium within the company”.

Now, here’s what it really means:

 “To bring Development and Operations together to build and deliver software more effectively and efficiently”.

This is cool but I want to take this post beyond the main aspects of DevOps, a good Release & Deployment process is definitely a  subject for an extensive discussion but the essence of it, the restlessness, that’s the point I want to touch today.

We love technology, we love to experiments with the “new toys”, either hardware or software (in my case, specifically, it’s definitely software due to budget issues), but I sincerely believe that the majority doesn’t want to assimilate any of these latest libraries/middlewares/APIs/Frameworks/methodologies/egregores frivolously, there’s value behind these tools, otherwise we wouldn’t have the hype around them and all the companies (or independent entities) behind such technologies wouldn’t be succeeding as they are. Now here comes the challenge: how do you introduce these changes to your project? It helps if you are the Senior Developer, it’s even more helpful if you are the Team Lead, but what about mere mortals, developers that are fighting on the trenches on a daily basis, or even enthusiasts that are labelled as “Systems Engineer” or “Support Analyst” (Yeah, I’m including myself in this category) that just don’t have a voice to break paradigms, some of them will give up and comply, another group will leave the company and there are those that will turn the apparently irreversible mess into something better.

I will present the archetypes that I’ve defined for each one of these developers (or IT Professionals in general):

The first group that gives up can be classified as “Furniture that writes code” – They are the guys that come to work everyday to do what they’re told, never bring anything new to the table, wait until 5 PM so they can go home and wait for Death to pay them a visit.

WinstonChair2

There’s the second group that I call “The Prodigious Tourists” – These guys (and girls) are geniuses, they carry a bias against mainstream stuff like Java or .NET, always leaning towards trending stuff, most of them would write a “Hello World” and start spreading the word about the new “silver bullet” that is out on the market, everything that you use is legacy technology for them, their skills are just as good as their ability to keep whining about all the company problems without presenting any tangible idea to solve them. They will, in most cases, leave the company to work for some cool startup where the receptionist is dressed as a Pokemon, then, as its product/service catalogue evolves, this company hires a consultant, things start getting too bureaucratic and they will pack their bag and move on to the next one.

nodejs

And then we have “The Mavericks” –  Office pariahs, people in the coffee room laugh at them because of their crazy ideas, they want to improve things, naive day dreamers that should not be near a server, they will struggle with their limited network access & awareness of office politics to enhance processes leaving a trace of rejected Proofs of Concept along the way.

cody

Maybe my interpretation of the latter is a little bit hyperbolic, but this one brings us closer to the profile of someone that needs to be involved in your company’s DevOps initiative, or any other cultural- change initiative for that matter. The restlessness should go beyond DevOps, the term was coined and gained notoriety to tackle a specific (and critical) problem: deliver software; So did “Agile” and “Extreme Programming” that came before it, but what about other inefficient processes that you have identified within the company? Why do you need 5 tickets to copy a file to that Websphere node? Why does your security request takes 3 weeks to be processed? Why Developers are not committing their Stored Procedures into version-control? Every company has similar issues and it’s easy to ignore them despite the pain and over-bureaucracy that they bring to your project, you can say that the problem lies in another department and, therefore, it’s out of your scope or that you don’t have a voice, no political power whatsoever, to raise a flag about these problems so you can’t do anything about it, these are all valid points as long as you wait for the right moment to strike and don’t let this inconformity flame be squelched, the worst excuse that I can imagine is the classic “That’s the way things are done around here”:

5monkeys1ladder

 

I heard about Hudson (proprietary father of Jenkins) before the “Continuous Integration” revolution, the little DTSTTCPW programs that were being used for Unit Testing arose way before the “Agile Manifesto”, but the methodology only becomes evangelizable when these cool buzzwords start flying around, which is definitely beneficial because the manager likes whatever he reads on trending magazines.

dilbert

That’s why DevOps is so cool, it gives you an opportunity to play with the new toys and, most important, to fix processes, the road to build and deliver software has so many aspects that present many opportunities to enhance and/or eliminate many things. Now you can finally share your opinions and ideas, you can externalize all your frustration.

office_space_printer

That’s it, if your team has a lot of messy processes and you are worried about how you should approach DevOps, there’s a brilliant talk by John Esser entitled “Creating a Culture for Continuous Delivery” that gives you 8 lessons to start breaking the paradigms with your company, I believe it’s an amazing place to start. You can read about the tools, install Jenkins on your machine, code a bunch of automation scripts but in the end, the company culture will present itself as the most challenging obstacle. Good luck!

Advertisements

Trabalhando na Irlanda

Estou a um tempo sem postar devido a uma grande mudança que ocorreu na minha vida recentemente. Estou trabalhando na IIrlanda:

Vida na irlanda

Não quero parecer um douche mas, para elaborar melhor o por quê deste post, eu preciso citar Kevin Spacey:

“I feel it’s a responsibility for anyone who breaks through a certain ceiling… to send the elevator back down and give others a helpful lift.”

Então, para aqueles que estão interessados em se aventurar em empresas internacionais, segue abaixo uma lista com os passos necessários para iniciar esta jornada (os detalhes são baseados na minha experiência pessoal):

1) Encontre uma oportunidade:

Eu recebi a proposta através do LinkedIn, recomendo bastante que todo profissional de TI tenha uma uma conta nesta rede social, mesmo que esteja feliz no seu emprego atual você pode aproveitar as discussões técnicas dos grupos relacionados a sua tecnologia de interesse e ainda pode aproveitar para compartilhar suas dúvidas na seção de Questions & Answers.

2) Analise a proposta:

A primeira coisa a fazer é verificar se a empresa oferece ‘relocation’, ou seja, ajuda de custos para a viagem da sua família (a não ser que a proposta seja muito boa e você esteja disposto a investir nesta nova aventura). Verifique o custo de vida da cidade onde você vai morar, procure saber se existem brasileiros morando lá, no meu caso, encontrei uma família através do mesozóico Orkut e eles ajudaram bastante com dicas sobre o local, melhores lugares para fazer compras, atalhos, etc. Pesquise sobre o clima da cidade e os custos envolvidos (exemplo: Óleo para o sistema de aquecimento da casa, carvão para a lareira, firelighters, kindlings, logs…), se você tem filhos, ligue para as escolas, pesquise sobre os benefícios do governo e procure saber mais sobre tax reliefs (abatimento/alívio de impostos), aqui na Irlanda, por exemplo, você recebe € 140 por mês para cada filho e tem abatimento de impostos se for casado.

Uma coisa que foi super útil para mim foi o Google Voice, fiz inúmeras ligações via VOIP para o recrutador em Dublin, para a equipe técnica e o departamento de RH da empresa, ajudou bastante, para não confiar apenas no Skype e para retornar a ligação para eles caso tivesse algum problema na chamada, o Google Voice ajudou muito, até mesmo para ligar para advogados (para saber mais sobre o processo do Green Card), para escolas, para agentes de imobiliárias e companhias aéreas. Extremamente recomendado.

Além da questão de morar em outro país, outros pontos mais óbvios devem ser considerados: Existe possibilidade de crescimento nesta empresa? Quais os benefícios (health insurance, pension scheme, etc.) que eles oferecem? Existem incentivos para graduações/certificações/treinamentos? A empresa tem alguma fama negativa? (dica: dê uma olhada neste site: http://www.glassdoor.com).

Salario = http://www.cpl.ie/content/SalaryGuide/Technology/

3) Prepare seus documentos:

No meu caso, os seguintes documentos foram necessários:

– 2 Cartas de referência (Fale com seus antigos empregadores para elaborar uma carta para você, para ajudá-los, procure por “Sample Recommendation Letter from an Employer” no Google).

– Exame de urina para identificar a presença das seguintes substâncias:

  • Amphetamines
  • Cannabinoids
  • Cocaine
  • Opiates
  • Phencyclidine
  • Ethanol

– Prova de qualificação educacional (certificações, diplomas, etc.).

– Relatório de verificação de antecedentes. No meu caso, uma empresa terceirizada chamada ‘Recruitsafe’ ficou responsável pelo meu ‘background check’, eles pediram a seguinte documentação:

  • Cartas de referência
  • Verificação de 5 anos de histórico empregatício.
  • Validação da documentação (exemplo: Passaporte)
  • Verificação de antecedentes criminais

– Fotos em formato de passaporte (Minimum photos size 35mm x 45mm, maximum size 38mm x 50mm)

– Formulário de permissão de trabalho (um exemplo: http://www.djei.ie/labour/workpermits/epformsfees.htm)

Depois disso a empresa vai dar entrada no seu Green Card (Work Permit), o órgão responsável por emitir tais documentos na Irlanda é o Department of Trade and Innovation (DETI), infelizmente não existe um tempo estimado para quando a sua permissão de trabalho vai ficar pronta, isso depende do número de requisições que o departamento está recebendo no período em questão.

4) Organize sua nova vida:

Uma opção interessante para quem tem mulher e filhos é inicialmente ir sozinho para organizar/sondar coisas como carro, casa, health insurance, opções de lazer e depois receber sua família quando já estiver mais estabilizado (enquanto isso procure alternativas para  enviar dinheiro para o Brasil, como, por exemplo, o Western Union). Enquanto você procura a casa ideal, é interessante ficar em um B&B (Bed and Breakfast), são acomodações simples com um preço relativamente baixo. Reúna informações sobre agentes imobiliários, vendedores de carros, super mercados, etc.

Cuide de seu bem estar psicológico, ficar sozinho em outro país pode ser bastante difícil. Muitas pessoas arrogantes podem lhe dizer e até pensar o contrário, mas pode ficar um pouco solitário, o departamento de RH da empresa tem um escopo limitado e não vai lhe deixar 100% confortável, também depende de você. Conheça os membros da sua equipe, procure atividades interessantes no final de semana (passear, tirar fotos, conhecer pontos turisticos, locais históricos, bares com open-mic nights), caso você  não possa sair muito de casa (devido as condições climáticas do local), invista em revistas/livros/HQs, Netflix, podcasts, torne-se cliente assíduo da loja de quadrinhos local e faça novas amizades.

Dicas finais: Apesar de ser bem tentador, NUNCA abandone ou “tranque” sua faculdade de TI para ganhar mais “tempo” para fazer mais cursos técnicos, hora extra ou ir para a casa de tolerância mais próxima com seus amigos (ao invés disso, pondere bastante os dias que você vai “gazear” as aulas). Uma graduação é praticamente mandatória para muitas contratações internacionais e até mesmo para o processo do Green Card. Esteja avisado.

Então, se você realmente deseja uma experiência de trabalho internacional e quer aumentar suas chances, eu recomendo explorar diferenciais de mercado (i.e., tecnologias proprietárias), estudar mais de 1 idioma (e.g., Inglês e Espanhol) e praticar leitura, escrita, conversação no dia-a-dia. Então tudo isso pode se resumir em ‘quais empresas você vai trabalhar pelos próximos anos’, procure empresas que já trabalham com outsourcing, existem muitas empresas parceiras da IBM, Microsoft, Oracle e outras que prestam serviço para certos segmentos de TI (Desenvolvimento, QA, Suporte, Consultoria, etc.). Não sente e espere, crie suas oportunidades.

Bom, fico por aqui. Valeu Falou!