Que chapéu um programador não deve usar? [fechadas]


29

Na minha experiência, os desenvolvedores de software tendem a usar vários chapéus e preencher várias funções com responsabilidades diferentes. Não apenas codificando, mas também escrevendo SQL, projetando a interface do usuário, projetando o banco de dados, manipulação de gráficos e até mesmo o teste de controle de qualidade.

Se a função principal é escrever software / código, que funções o desenvolvedor não deve assumir? Há alguns?

A intenção desta pergunta não é porque um desenvolvedor é incapaz de desempenhar outra função - mas ter a função adicional realmente funciona contra a função principal ou deve ser realmente uma função dedicada de alguém que não programa principalmente.


20
Um gorro ... oh wait ..
ChaosPandion

21
Na IMO, um programador não deve usar um desses grandes sombreros mexicanos, porque a aba continuaria batendo contra o monitor.
Mason Wheeler

11
@ Peter Turner: O "melhor chapéu para programador" seria um daqueles trabalhos de novidade que montam duas latas de cerveja. Só que não cerveja. Red Bull.
BlairHippo 29/09/10

4
Droga. Tal título promissor ...
Ninguém

4
@Mason, manter o sombrero sobre o monitor protegerá contra reflexos em telas brilhantes. Em outras palavras - técnica.

Respostas:


54

Sysadmin. Desenvolver software e manipular a infraestrutura de TI são duas habilidades diferentes que se parecem com alguém de fora. (Tudo está apenas batendo nos computadores, certo?) Para uma empresa pequena, a tentação será muito forte em tornar o The Computer Guy responsável por todas as máquinas no escritório.

Se você tem as habilidades necessárias para usar os dois chapéus, incrível; mas é uma daquelas coisas que pode levar muito mais tempo do que as pessoas imaginam e, se você é autodidata, é provável que não esteja fazendo isso muito bem.


7
ISTO. Sério, só porque trabalho em computadores não significa que posso consertar a infraestrutura. Você está apenas perdendo o tempo de seus desenvolvedores.
Jaco Pretorius

5
+1 o dano que pode ser causado por um administrador de sistema amador é enorme.
Davidtbernal

E se você receber o chapéu sysadmin, eles também poderão usar o chapéu do gerente de instalações, o que deve ser evitado a todo custo.
HLGEM

3
OTOH, trabalho em uma empresa com um departamento de TI incrivelmente incompetente e lento. O que eu não daria para apenas ser capaz de fazer minhas próprias mudanças de firewall ...
Gabe Moothart

11
Alguém apontou que meu chefe não estava vestido, mas disse que ficaria sujo do chão instalando computadores. Eles apontaram para mim, indicando que eu deveria estar fazendo isso. Eu quase pulei na mesa deles e os estrangulei, mas tomei um gole de café e mencionei que não faço hardware.
Jeffo

35

Você usa o chapéu que seu empregador pede. É isso que faz de você um jogador de equipe. É isso que faz de você um solucionador de problemas .

As pessoas ficam muito envolvidas com a idéia de ser um "desenvolvedor" ou "arquiteto" ou "analista". Dane-se isso. Você deve ser um solucionador de problemas. O código é apenas uma ferramenta no seu cinto.

A solução de problemas nunca sai de moda.

Se meu empregador quer que eu faça suporte técnico ou construa computadores, que assim seja. Eles acham que estão desperdiçando seu dinheiro, considerando um salário de desenvolvedor, mas isso é problema deles. Estou aqui para resolver problemas. No entanto, eu posso fazer isso, eu farei. E se eu sentir que, após um certo período de tempo, meus talentos são desperdiçados ou minha satisfação no trabalho não é onde eu quero que seja, então tenho o direito de mudar para outro emprego.

Mas para a pergunta básica - não há um chapéu que você não use. Caramba, se eles querem que você pegue café, faça-o. Resolver seus problemas; apenas saiba que você tem o direito de encontrar outro emprego, se desejar mudar.


5
@ Josh: Eu acho que seria uma daquelas situações em que "encontrar um novo emprego".
Adam Lear

21
Apenas tenha cuidado com isso. Os chefes tendem a tirar vantagem daqueles que estão dispostos a fazer qualquer coisa. Apenas verifique se você está sendo compensado corretamente.
Tony

5
Eu não acho que Chris esteja dizendo "faça qualquer coisa" (bem, ele está um pouco no final; eu não vou buscar café para quem não me busca bebidas também), mas dizendo "eu sou desenvolvedor, eu não vai trocar o cartucho da impressora "está apenas sendo esnobe.
Peter Boughton

10
Discordo. É fácil dizer que um desenvolvedor deve ser capaz de fazer qualquer coisa solicitada, mas isso não significa que ele / ela DEVE. Existem alguns problemas consideráveis ​​de conflito de interesses que surgem nessas situações. Eu não quero ter acesso aos sistemas de produção porque serei culpado quando eles forem desativados ("ah, bem, XXX esteve lá no mês passado, então eu tenho certeza que ele estragou tudo porque é um desenvolvedor, não um administrador")
MBonig 29/09/10

7
-1; há um núcleo de verdade aqui, mas existem algumas limitações gritantes a essa mentalidade que esta resposta não faz o suficiente para reconhecer. E quando o verdadeiro problema subjacente é que seu empregador é péssimo na gestão de pessoas? Certa vez, vi um escritório desabar porque os superiores insistiam em manter engenheiros inteligentes e capazes em papéis que eles odiavam e faziam muito mal. Há momentos em que se diz "Não!" é a melhor coisa que você pode fazer por você e seu empregador.
BlairHippo 7/10/10

29

Testador!

Envie-nos os testadores diretamente para fora da escola, se necessário!

Sem testadores, as pessoas esperam que tudo dê certo, porque o programador é o testador e elas são muito inteligentes, portanto, deve funcionar.

Não estou dizendo que dogfooding não é uma boa ideia. Só acho que os testadores são muito importantes agora que sou programador.


4
Bons testadores dedicados são definitivamente subestimados!
Peter Boughton

3
Comida de cão!? Eu só cozinho lagosta cinco estrelas! ... e é por isso que preciso de um testador para me dizer quando estraguei alguma coisa. Eu fiz a coisa e sei como ela funciona. Ninguém que criou uma interface do usuário está qualificado para testá-la completamente, simplesmente porque sabe como funciona, e não como funciona com alguém que não conhece.
Morgan Herlocker 30/09/10

15
Não há nada de errado em ser um testador em geral. É errado ser o único testador do seu próprio código. Os programadores codificam com um conjunto de suposições em mente e, se o testador tiver suposições idênticas, não exercitarão partes inesperadas e perderão muitos bugs.
Dbkk 30/09/10

5
Testar seu próprio código é definitivamente um grande não-não. Um programador pode cobrir muitas outras coisas, mas o teste funcional real (se você não estiver fazendo um teste de unidade, pode não ser um programador de qualquer maneira) do seu próprio código é uma péssima idéia. Dogfooding com ele é bom, mente.
glenatron

3
+1 - os programadores pensam distintamente diferentes dos não programadores em termos de como usar programas. Você descobriria algum erro no item de menu "Arquivo -> Salvar"?

26

Você deve ter cuidado ao se tornar o principal responsável por problemas de hardware de escritório . Isso pode incluir solução de problemas do PC, administrador do servidor, backups e até trabalho do sistema telefônico. Cometi o erro de mencionar minha experiência anterior em hardware e, eventualmente, minhas tarefas de hardware / solução de problemas entraram em conflito severo com minhas tarefas de programação.


Diga aos culpados que eles precisam da permissão do seu chefe e registre-se o tempo todo usado para isso.

@ Thor A direção de trabalhar em coisas de hardware - veio do meu chefe. Foi útil para o escritório, mas não consegui focar minha carreira em programação tanto quanto gostaria naquele momento.
Jon Onstott

@ Jon, se o chefe diz que você precisa fazê-lo, bem ... você precisa fazê-lo. Você pode discutir com ele se isso é satisfatório ou não, e se você não conseguir chegar a um acordo, é hora de partir.

+1 A mesma coisa aconteceu comigo. Eles querem que eu não apenas escreva código, mas também lide com problemas de rede junto com fornecedores que estão se aproximando, e isso causou muito estresse.
Rich

16

Um programador não deve ser o único testador para seu próprio código .

Os desenvolvedores escrevem código com um conjunto de suposições. Se os testadores tiverem o mesmo conjunto de suposições, eles não exercerão a funcionalidade inesperada fora desses limites e muitos problemas permanecerão sem serem detectados.

Além disso, para avançar, os desenvolvedores não estão altamente motivados a tentar quebrar as coisas, enquanto os testadores estão (talvez no nível subconsciente).

Isso não implica que o teste do desenvolvedor seja inútil. Muito pelo contrário - um bom teste de desenvolvimento permite que os testadores se concentrem em encontrar problemas mais profundos. No entanto, o teste do desenvolvedor não substitui um testador dedicado.


10

Dois eu consigo pensar logo de cara.

  1. Suporte técnico. Não estou aqui para ajudar os clientes a trabalhar no novo site ou ensiná-los a usar os recursos.
  2. Embora possa ser necessário interagir com os clientes em vários pontos do processo, a menos que você seja um programador de gerenciamento, não deve se comunicar diretamente com eles sobre recursos e implementações de design.

Você poderia dizer que o desenvolvimento de CSS / UI estaria fora do "domínio" da programação, mas, na minha experiência, é uma habilidade necessária hoje. Você não pode simplesmente se safar das tabelas e depender de outra pessoa para implementá-la corretamente. Talvez eu não goste de implementar o design ou alterar o código para lidar com um novo design, mas isso faz parte do trabalho.

Escrever consultas é bom, o teste de Q / A é bom (e o IMO deve ser o trabalho do programador, é necessário encontrar um departamento externo, mas primeiro você deve testá-lo). A administração do servidor é um pouco de uma área cinzenta. Dependendo do tamanho do projeto ou se você possui um administrador de servidor dedicado, ele pode ou não ser necessário.


7
Quanto ao ponto 2, há pelo menos uma empresa que tem como princípio básico que a pessoa que escreve o código deve estar conversando diretamente com o cliente: a desintermediação tem suas vantagens.
Frank Shearar 29/09/10

10

Em geral, é minha experiência que a maioria dos programadores não deve desenvolver a aparência da interface do usuário - embora eu certamente seja capaz de desenvolver uma interface do usuário (e muitas vezes crie uma ao criar um protótipo ou prova de conceito), isso é melhor deixar para uma pessoa de fatores humanos (que em nossa pequena empresa é um artista gráfico que também faz os layouts de tela e cria a maioria dos manuais e brochuras).

Além disso, os desenvolvedores não devem fazer testes de controle de qualidade - esse é o trabalho do departamento de controle de qualidade (a empresa em que trabalho fabrica dispositivos médicos incorporados, portanto, é um requisito que os testes sejam feitos por um departamento separado).

Por outro lado, não vejo razão para que os desenvolvedores não possam criar bancos de dados e escrever SQL, se tiverem o plano de fundo para fazê-lo - já o fiz muitas vezes.


2
+1 Concordou que o teste de controle de qualidade realizado pelos desenvolvedores que o escreveram anula o objetivo.
spong

2
@JoshK Alguns testes de controle de qualidade podem ser feitos pelos desenvolvedores, mas o principal teste de controle de qualidade deve ser feito por outros. Se você testar seu próprio aplicativo que você escreveu, subconscientemente contornará qualquer problema em potencial. O objetivo é descobrir problemas que os desenvolvedores não conseguem encontrar, uma espécie de novo conjunto de olhos, por assim dizer.
spong

2
@JoshK @ChaosPandion Concordou que alguns testes anteriores dos desenvolvedores devem ser feitos - mas não devem ser confiáveis, portanto, separe os testes de controle de qualidade daqueles que não os desenvolveram.
spong

5
-1: Não concordo que os programadores não projetem a GUI. Eu trabalhei por 8 anos em uma pequena empresa e projetei toda a interface do usuário. Sempre segui as excelentes diretrizes de design da Microsoft e li alguns livros de design de IHM. Terceirizamos apenas para ilustradores externos gráficos.
usar o seguinte comando

3
Uma coisa que me incomoda aqui é a implicação de que uma pessoa gráfica é mais adequada do que um programador para criar interfaces de usuário. Pode ser que o seu artista gráfico seja muito bom em projetar interfaces, mas, no caso geral, pode se transformar em uma interface confusa, inutilizável e bonita, em oposição à interface confusa, mal utilizável e feia que você obteria do programador estereotipado.
David Thornley

8

Suporte técnico

Grande parte do meu dia é desperdiçada ao receber chamadas de suporte técnico ...

Alguns populares são:

  • "Minha conta está bloqueada" ou "Esqueci minha senha"
  • "Meu [telefone | teclado | mouse | computador] não funciona"
  • "Meu computador está lento, você pode verificar se há algo incomum?"
  • "Por que X acontece quando clico neste botão? Ele deveria estar executando Y"
  • "Eu continuo recebendo esses pop-ups ..." ou "Eu acho que tenho um vírus"
  • "Essa pessoa não está mais aqui, você pode desativar todas as suas coisas?"
  • "Temos um novo funcionário, você pode configurá-los com login, cartão de segurança, telefone ext, e-mail, etc?"

6

Qualquer papel que o faça se administrar. Em equipes pequenas, geralmente há uma tendência de tornar um dos desenvolvedores seniores o gerente de projetos, mas também o mantém na equipe como programador. Isso leva a todos os tipos de problemas, já que esse cara, como programador, é basicamente não gerenciado. Em vez de delegar todas as tarefas aos outros membros da equipe, ele muitas vezes fica tentado a atribuir muitas delas a si próprio, especialmente as tarefas mais difíceis. Portanto, as tarefas mais difíceis, aquelas com maior probabilidade de causar problemas, são atribuídas a uma pessoa que tem apenas 50% de disponibilidade como programador e, como tal, não reporta a ninguém. Quando outros membros da equipe não conseguem entregar, em vez de chutar a bunda, ele tenta executar suas tarefas, pois, como gerente de projeto, ele é responsável pelo sucesso e a maneira mais segura de fazê-lo é fazê-lo sozinho. , não é?


5

Suporte técnico para algo que você não teve nenhuma ajuda no desenvolvimento, implantação ou manutenção, e não recebeu treinamento nem está atualizado sobre as principais mudanças. Parte do meu trabalho passou a ser atender o telefone para clientes ligando sobre o motivo de a internet não estar funcionando. Eu não lido com essa metade dos negócios, então não posso contar nada a eles.

Não é necessário suporte técnico, não há problema. É ser um gerente / suporte técnico enquanto tenta desenvolver as coisas.

Fica bastante cansativo ter que ouvir as pessoas reclamando o dia todo e não poder contar nada a elas. Eu recomendaria evitar isso a todo custo.


Sim, é difícil ter que mudar de personalidade várias vezes ao longo do dia. É difícil trabalhar em tarefas que exigem concentração quando você está sendo constantemente interrompido.
Rich

5

Vendas .

Algum bugger pobre tem que fazer isso, mas com certeza não deve ser o desenvolvedor.


4

À medida que envelheci, percebi que isso é melhor se os desenvolvedores não fizerem suas próprias implantações (lutei contra este dente e unha). Eles não devem ter direitos sobre o banco de dados de produção, exceto direitos selecionados. Nosso código ficou muito menos problemático (e a mesma coisa não surgiu várias vezes porque a alteração foi feita apenas no prod e uma implantação posterior do desenvolvimento substituiu-o novamente, depois foi corrigido apenas no prod com pressa, enxaguando e repetindo) quando teve que começar a entregá-lo a outras pessoas para implantar e não ter permissão para fazer alterações rápidas na produção de correções porque a implantação não estava certa. Além disso, paramos de ter essas "atualizações acidentais sem a cláusula where destacadas que alteravam todos os registros da tabela".


Sim sim e sim. Nunca dê aos desenvolvedores nenhum acesso à produção e muito limitado (e de preferência nenhum) à preparação. Se, por nada mais, diminui o estresse a que estão expostos.
ElGringoGrande

11
Sim! Sou desenvolvedor e não quero acesso a todo esse material de produção. E com outras pessoas fazendo a implantação do software, esse é mais um teste do processo de implantação. (E talvez a recuperação desaster vai melhorar fora deste bem.)
encolher

3

Artista e designer de interface do usuário .

A maioria dos programadores é muito pobre em obras de arte, mas as empresas não se preocupam em pagar por um artista para desenhar imagens e ícones para seus produtos, e apenas usam a "arte do programador" - com resultados hediondos. (Até o Windows Vista, esse era o fator de diferenciação mais óbvio imediatamente entre Macs e PCs - os Macs pareciam bonitos e amigáveis, os PCs eram uma desgraça)

De maneira semelhante, muitos programadores não estão muito interessados ​​na interface do usuário - eles se preocupam principalmente com o código. Eles simplesmente expõem o conteúdo de suas variáveis-membro diretamente em alguns campos editáveis, geralmente não se importando onde colocam botões e campos em seus formulários, e assumem que isso é suficiente, resultando em software inutilizável. (Todo o setor de telefonia móvel foi muito culpado por isso até o iPhone chegar para mostrar a eles que você realmente podia criar uma interface do usuário do telefone que fosse agradável de usar)

O Lotus Notes é um exemplo brilhante de como essas duas coisas podem ser ruins se você não conseguir um designer profissional para ajudar os programadores.


2
"A maioria dos programadores é muito pobre no artwook" e "Muitos programadores não estão muito interessados" não é o mesmo que "nenhum programador está interessado" e "todos os programadores são ruins". Na verdade, conheci alguns que se saem bem nisso.
MIA

11
@ Jim Leonardo: De fato. Por isso eu disse "mais" e "muito" em vez de "todos". :-)
Jason Williams

3

Escrevendo testes e planos de teste gerais. Sério, pessoal, eu posso escrever meus próprios planos de teste, mas isso significa incorporar no produto quaisquer equívocos, suposições falsas e erros cognitivos que cometi ao escrever as coisas. Era a única coisa que eu odiava em uma empresa em que trabalhava; onde estou agora, pelo menos temos análises de código que provavelmente capturarão essas coisas.


Sim, a maioria dos testes deve ser escrita juntamente com as especificações, antes que qualquer código seja criado. Embora ter um desenvolvedor adicionar testes extras com base no conhecimento do que eles tocaram, não é uma coisa ruim.
Peter Boughton

3

Nunca use mais "chapéus" do que você pode razoavelmente lidar e se sentir confortável, tentando convencer os desenvolvedores a dizer que eles não devem usar A ou B significa que um ótimo designer de interface do usuário pode passar despercebido porque alguém acha que os programadores devem ficar longe a interface do usuário.

No final do dia, todos terão pontos fortes e fracos diferentes e um bom gerente / supervisor / líder de equipe deve saber a melhor maneira de direcionar as pessoas que trabalham para eles, a fim de garantir que os talentos sejam usados ​​adequadamente. Da mesma forma, se você não estiver familiarizado com o design de UIs ou com os usuários finais, informe a equipe para que você possa minimizar sua função nessa área. No entanto, você deve estar preparado para buscar algum trabalho adicional em outra área.

Além disso, se você estiver usando muitos chapéus (por exemplo, programador, designer de interface do usuário, testador, analista de negócios, etc.), você terá um desempenho ruim em alguns deles ou se queimará. Certifique-se de saber quantos chapéus você pode manipular e tente manter a carga de trabalho nesse nível.

Além disso, realmente não existem "chapéus" que um desenvolvedor não deva usar se tiver habilidades para se destacar nesse papel.


1

Costumo aceitar qualquer trabalho que seja lançado para mim se e somente se:

  • Eu aviso com antecedência sobre o meu nível de habilidade e possíveis implicações e meu chefe decide que é aceitável
  • Existe uma pessoa de nível de guru que pode (e provavelmente irá, em algum momento) me ajudar a lidar com algo inesperado
  • Leia a documentação, as perguntas feitas on-line etc.

Dessa forma, estou mais seguro contra meu chefe e, se alguém der errado, é pelo menos corrigível.


1

Os desenvolvedores são partes interessadas na situação (como clientes, proprietários, etc.), portanto, eles têm o direito de esperar um emprego significativo. Na minha opinião, isso significa a oportunidade de trabalhar com seus pontos fortes .

Portanto, um desenvolvedor não deve usar um chapéu que não energize, contribua para o crescimento pessoal e leve ao desempenho máximo - e roube tempo dos "chapéus" que fazem essas coisas por eles.

Além de não ser o único a testar seu próprio código, acho que qualquer "chapéu" está ok se for um trabalho significativo para o desenvolvedor que está usando o chapéu.


1

O "designer" ou o "cara criativo". Você passará da montagem inocente de uma maquete da interface de um aplicativo para a redação de texto de marketing para a próxima campanha publicitária on-line ou discussões intermináveis ​​sobre o tom "certo" de azul antes que você perceba x_x.


0

aquele chapéu com as latas de cerveja ao lado com um canudo. má ideia se você for pego.

editar:

Aqui está o chapéu que eu odeio, mas que tem uma grande recompensa - é um grande sinal para mim que diz que se tudo isso quebrar, é tudo culpa sua ... ah, mas se for bom, então você, meu filho, é o bom garoto que todos conhecemos são - agora volte para o porão ... bom garoto ... é isso.

O chapéu da culpa.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.