Joel on Software

Joel on Software   Joel sobre Software

 

Outros artigos de "Joel on Software" em Português

Outros artigos de "Joel on Software" em Inglês

Envie email para o autor (apenas em Inglês)

 

Coder to Developer de Mike Gunderloy


Por Joel Spolsky
Traduzido por Emerson Seiti Takahashi
Quarta-feira, Maio 05, 2004

Front cover image of the book Coder to Developer

Nota: Isto é meu prefácio para o impressionante novo livro   de Mike Gunderloy, O livro está disponível agora pela SYBEX.

 

Você sabe o que me deixa louco?

“Tudo?” você pergunta. Bem, OK, alguns de vocês me conhecem muito bem neste meio tempo.

Mas sério, pessoal, o que me deixa louco é que a maioria de desenvolvedores de software não percebe o quão pouco eles sabem sobre desenvolvimento de software.

Peguem, por exemplo, eu.

Quando eu era um adolescente, assim que eu terminei de ler o famoso guia de programação do IBM-PC em Assembler de Peter Norton, eu estava convencido que eu sabia de tudo que havia a aprender em desenvolvimento de software em geral. Droga, eu estava pronto para fundar um empresa de software para fazer um processador de textos, veja, e ela iria ser muito boa. Minha empresa de software imaginária iria ter várias paradas para o cafezinho com donuts grátis toda hora. Muitos de meus sonhos naqueles dias envolviam donuts.

Quando eu sai do exército, eu fui para a faculdade e consegui um diploma em Ciências da Computação. Agora eu realmente sabia tudo. Eu sabia mais que tudo, porque eu tinha aprendido um penca de lixo de computação científica sobre álgebra linear e NP perfeito e maldito cálculo do lambda que era obviamente inútil, então eu pensei que devem ter acabado as coisas úteis para nos ensinar e eles estavam raspando o fundo do tacho.

Não. No meu primeiro emprego eu percebi quantas coisas que muitos departamentos de ciência da computação são esnobes para realmente te ensinar. Coisas como trabalho em equipe. Conselhos práticos sobre design de interfaces de usuários. Ferramentas profissionais como controle de código fonte, banco de dados de bugs, debuggers e profiler. Coisas de negócios. Os departamentos de ciência da computação das mais prestigiadas instituições apenas não irão te ensinar essas coisas porque eles consideram isso “vocacional”, não acadêmico; o tipo de coisa que desistentes do ensino médio aprendem nos institutos técnicos locais para então eles terem uma carreira como um mecânico de automóveis ou um reparador de ar-condicionado ou (segurando o nariz entre o polegar e o dedo indicador) “desenvolvedor de software”.

Eu posso até entender essa atitude. Afinal, muitas instituições prestigiadas de nível não superior vêem como seu objetivo te preparar para a vida, não ensinar uma carreira, ainda menos em uma carreira onde o campo muda tão rapidamente e qualquer tecnologias que você aprenderá agora serão obsoletas em uma década.

Pela próxima década eu continuei a aprender uma quantidade incrível sobre desenvolvimento de software e todas as coisas que são necessárias para produzir software. Eu trabalhei na Microsoft na equipe do Excel, na Viacom na equipe de web e na Juno no cliente de email. E você sabia? Em todo ponto no ciclo de aprendizado, eu estava completamente convencido que eu sabia tudo que tinha que saber sobre desenvolvimento de software.

“Talvez você seja apenas um imbecil arrogante?” você pergunta, possivelmente usando uma palavra mais picante que “imbecil”. Desculpe: este é meu prefácio; se você quer ser rude escreva seu próprio prefácio, tire e rasge o meu do livro e coloque o seu no lugar.

Há algo esquisito sobre desenvolvimento de software, alguma qualidade mística que faz todos os tipos de pessoas pensarem que eles sabem como faze-lo. Eu trabalhei em uma companhia do tipo ponto-com cheio de mestres liberais em artes sem nenhuma experiência ou treinamento em software que de qualquer jeito estavam convencidos que sabiam como gerenciar times de desenvolvimento e projetar interfaces de usuário. Isso é estranho, porque ninguém pensa que eles sabem como remover uma apendicite ou reconstruir um motor de carro a menos que eles realmente saibam como faze-lo mas por algumas razão há pessoas por aí que pensam que sabem tudo que há para aprender sobre desenvolvimento de software.

De qualquer jeito, a responsabilidade irá cair em seus ombros. Você provavelmente irá ter que aprender como desenvolver software por conta própria. Se você for realmente sortudo, você irá trabalhar diretamente com desenvolvedores top de linha que podem te ensinar essas coisas mas a maioria das pessoas não tem a oportunidade. Então eu estou satisfeito em ver que Mike Gunderloy escreveu o livro que você está segurando em suas mãos. Aqui você irá encontrar uma introdução agradável e bem escrita de muitas das coisas mais importantes que você terá que aprender para ir de uma pessoa que pode escrever código para uma que pode desenvolver software. Elas se parecem a mesma coisa? Elas não são. Isso é aproximadamente o equivalente a ser uma criança de seis anos que pode rabiscar algumas palavras simples, N’s ao contrário e ser um novelista de sucesso que escreve livros que recebem aclamação da crítica e vendem milhões de cópias. Sendo um desenvolvedor de software significa que você pode pegar um conceito, montar uma equipe, montar processos de desenvolvimento primorosos, projetar um produto, o produto certo e produzi-lo. Não apenas qualquer produto: um software de alta qualidade que resolve problemas e encanta seus usuários. Com documentação. Uma página na Internet. Um instalador. Estudos de casos. Versões norueguesas. Bokmål e Nynorsk. Aperitivos, sobremesas e vinte e sete oito por dez fotografias em papel brilhante com círculos e setas e um parágrafo nas costas de cada uma explicando o que cada uma era. (Desculpas a Arlo Guthrie).

E então, um dia, finalmente, possivelmente quando será muito tarde, você acordará e dirá: “Hmmm. Talvez eu realmente não saiba o que realmente é necessário para desenvolver software”. E daquele dia em diante, nenhum minuto antes, você terá conquistado o direito de se proclamar desenvolvedor de softwre. No meio tempo, nem tudo está perdido: você ainda terá minha benção se você quiser comer donuts toda hora.



Esse artigo apareceu originalmente em Inglês com o título

Mike Gunderloy's Coder to Developer

 

Joel Spolsky é o fundador da Fog Creek Software, uma pequena empresa de software na cidade de Nova York. Formou-se na Universidade de Yale, e trabalhou como programador e gerente na Microsoft, na Viacom e no Juno.


O conteúdo dessas páginas reflete exclusivamente a opinião do autor.
Todo o conteúdo Copyright ©1999-2005 Joel Spolsky. Todos os direitos reservados.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky