Convencer o desenvolvedor a usar o IDE [fechado]

8

Há um desenvolvedor, vamos chamá-lo de John (atualmente em período de estágio) na empresa (empresa bem pequena, aproximadamente 10 pessoas, 3 desenvolvedores, um deles trabalha muito tempo nessa empresa conhece o processo de negócios e pode ser considerado como líder de equipe) que não queria usar nenhum IDE (ele está usando algum editor de texto).

O aplicativo em que a equipe está trabalhando é um aplicativo Java de tamanho médio com a pilha de tecnologia Spring Hibernate e refatoração / adição de novos recursos para iniciar a nova versão desse aplicativo em um futuro próximo.

O desempenho de John trabalhando sem IDE neste aplicativo é mais baixo do que o desejável, pressupõe o líder da equipe (vamos chamá-lo de Bill) que isso acontece porque John não está usando o IDE.

Bill tenta convencer John a usar o IDE, mas essa idéia encontra muita resistência e o principal motivo é "Eu quero estar no controle total do que estou fazendo, por isso preciso escrever todo o código sozinho".

Como Bill pode convencer John a tentar usar o IDE? (considerando o fato de que Bill já protegeu John do proprietário da empresa várias reclamações sobre o desempenho de John)

Atualizado: Bill decide tentar convencer John mais uma vez, se essa tentativa não der certo, ele não tentará forçar John a usar o IDE e sim verificar se os recursos prometidos por John são entregues a tempo ou não.

artjom
fonte
5
Engraçado. Eu acho que ele quer sentir dor. Lembro-me de usar o código COBOL em um editor de texto. Quando experimentei meu primeiro IDE, pensei que estava trapaceando. Talvez ele sinta o mesmo?
TeaDrinkingGeek #
53
Como você sabe que a produtividade dele é menor? Como você mediu a produtividade. Além disso. Acho difícil acreditar que seja um editor de texto (como o bloco de notas). É um editor como vi ou emacs. Esses dois ambientes estão nas mãos de um usuário qualificado.
Martin York
23
"algum editor de texto" pode ser muito mais poderoso do que você pensa.
6
Estou curioso com a rapidez com que alguém usando o vi / emacs pode extrair método, renomear método, método inline, introduzir variável local, mover campo / método, etc?
Artjom #
6
@artjomka: Muito mais rápido do que você pensa. Tudo pode ser roteirizado. Você acha que todas essas tarefas automatizadas foram inventadas apenas após a introdução do IDE.
Martin York

Respostas:

46

Você já respondeu mais ou menos à pergunta:

  1. Ele está em liberdade condicional
  2. Ele não é produtivo o suficiente

Portanto, ele precisa ser claramente ciente de que:

  1. Ele precisa ser mais produtivo ou não sobreviverá à sua liberdade condicional.
  2. Ele pode ser mais produtivo com um IDE adequado do que com um bom editor de texto.
  3. Um bom IDE não é abrir mão do controle sobre o código que você escreve, mas fornecer ferramentas para permitir que você produza código de trabalho mais rapidamente, independentemente de você optar por usar os recursos de geração e modelagem de código que possam estar disponíveis no IDE .

A falta de vontade de se adaptar ao seu ambiente também pode ser uma preocupação.

Murph
fonte
25
"A falta de vontade de se adaptar ao seu ambiente também pode ser uma preocupação". Isso seria uma bandeira vermelha para mim também, ele não iria durar um período de estágio aqui apenas nisso.
Worrier binário 02/03
9
O problema é que a maioria dos IDEs preferidos pelas empresas são ruins, pois são escolhidos apenas com base no custo (ou seja, gratuito ...). Isso geralmente significa Netbeans ou JDeveloper, ou algum sabor do Eclipse. Os dois primeiros são desastrosos, o último geralmente é em equipes maiores, já que coordenar coisas como configurações e plugins é um inferno para o Eclipse.
jwenting
4
@jwenting Eu não sei o quão grande você quer dizer, mas ainda não vi uma equipe tão grande que o Eclipse não será suficiente. É claro que configurações e plug-ins devem ser padronizados, o que é fácil.
biziclop
46
+1 O problema é: "João não é produtivo o suficiente". Não se concentre no IDE como um problema.
Andres Jaan Tack
1
"A falta de vontade de se adaptar ao seu ambiente também pode ser uma preocupação" - na OMI, na maioria das vezes, a administração impõe regras idiotas que a mentalidade normal de rebanho não se importa em seguir onde os indivíduos com pensamento crítico o questionam. A gerência não gosta de pessoas que questionam suas escolhas, para que possam levantar bandeiras vermelhas alegando que Jhon não é cooperativo.
Eastern Monk
22

Bill deve dizer a John que ele está certo sobre preferir um editor de texto simples, mas , infelizmente, com estruturas de linguagem + como Java + Hibernate + Spring, ele precisa usar um IDE se quiser ser eficiente.

Eu sou um pouco como John. Eu não gosto de usar IDEs.
Quando codifico em ruby ​​/ python / bash / lisp, não uso nenhum IDE.

Mas quando estou lidando com uma linguagem detalhada / de baixo nível como Java e estruturas que tornam seu código muito difícil de navegar sem ajuda, eu uso o IDE. Isso também é verdade se eu não conhecer muito bem a linguagem / estrutura.

  • Quanto mais abstrações / padrões / estruturas você usa, mais você precisa de um IDE capaz de ajudá-lo a navegar pelo seu código.
  • Quanto mais baixo o nível / detalhado / desconhecido de um idioma para você, mais você precisa de um IDE capaz de ajudá-lo a gerar / encontrar o código necessário.

Diga a ele que, se ele quiser ser eficiente com as ferramentas usadas, ele precisará usar um IDE. Bill também deve emparelhar com John para mostrar a ele quão eficiente ele pode ser com o IDE.

David
fonte
2
++ para a programação em pares - apenas ter um IDE baratos colocados na frente de você é inútil sem alguém mostrando-lhe as combinações de teclas úteis para fazer outras coisas
Gary Rowe
6
Desde quando o Java se tornou uma linguagem de baixo nível? ;-)
Craige 02/03
5
@ Craig: 'nivelamento' é relativo. Comparado às linguagens dinâmicas modernas, Java é uma linguagem de baixo nível com bibliotecas de alto nível.
Javier
@Craige, você pode remover "de baixo nível", se quiser, mas você não pode remover o "detalhado";)
David
Exceto que, com um editor suficientemente poderoso, você pode estar errado e ele pode ser mais produtivo com o editor do que no IDE. Insistir em pontos de crença (por exemplo, um IDE aleatório é mais produtivo que o vi ou o emacs) só vai piorar o problema, porque o desenvolvedor improdutivo verá que você está se preocupando com as coisas erradas.
precisa
12

Eu acho que empurrar um IDE é uma má ideia. Eu acho que ter uma lista de ferramentas que as pessoas podem usar e deixá-lo escolher o que ele usa é uma solução mais respeitosa.

Em seguida, concentre-se no desempenho e na produtividade reais dos problemas, forneça estatísticas reais de como certos projetos levaram muito tempo.

Não permita que o foco seja qual ferramenta ele usa para codificar, apenas deixe-o encontrar sua própria solução, desde que o objetivo seja uma melhor produtividade.

Entrei em muitas empresas, 90% não se importam, desde que não precisem pagar por nenhuma ferramenta, 10% se importam e exijam que usem suas ferramentas.

Se você faz do IDE o foco real da sua discussão, está sendo totalmente desrespeitoso com ele e com os métodos dele.

Em vez de focar na questão-chave real, produtividade, qualidade e desempenho.

Eu mesmo, uso um editor de texto há mais de 6 a 7 anos, e não há nada de errado com meu desempenho.

Um IDE pode ajudar, mas deve ser a escolha do programador para usá-lo, desde que não afete o desempenho.

Eu pessoalmente odeio que os IDEs nunca os usem, quanto mais pessoas os pressionam contra mim, mais me sinto desrespeitado. Não tenho nenhum problema com a ferramenta que as pessoas usam, mas é como uma religião e evangelismo, elas sentem a necessidade de que todos os outros tenham que pensar / fazer tudo do jeito que fazem.

E essa é uma abordagem muito pouco profissional para qual é o problema real, sua produtividade.

Se ele oferece um trabalho de qualidade, em seus métodos, quem se importa com as ferramentas que usa? Desde que seja livre de erros, tenha um trabalho de qualidade e oportuno.

crosenblum
fonte
11

Não sei se confirmamos que o IDE é um problema de John. Acho que Bill deveria trabalhar um pouco com John e observá-lo: O que está diminuindo sua produtividade. Se ele passa horas formatando seu código e tentando mudar as coisas ou procurar funções ... os tipos de coisas que um IDE fornece para você, você deve mostrar a ele o quanto mais rápido ele pode encontrar as funções que deseja e formatar seu código. o IDE. Se essa é a frustração, tenho certeza que, uma vez que ele vê você formatar automaticamente um bloco ou encontrar rapidamente alguma função obscura, ele salta pelo telhado em alegria.

Se, no entanto, a eficiência é porque ele está navegando no google ou tendo problemas para formular suas idéias em estruturas de codificação, um IDE não o ajudará. Nesse caso, você precisa reprimir a disciplina dele ou ajudá-lo a aprender a diagramar suas idéias em um fluxo de programa para que ele possa atacar o problema com mais eficiência.

EDIT: Meu representante é muito baixo para comentar, então eu tenho que postar aqui. Eu discordo das pessoas que dizem "deixe ele ser demitido, então ele aprenderá". Para algumas pessoas, isso funciona; perder o emprego os choca e eles realmente acordam e se moldam. Outros espiralarão em uma espiral autodestrutiva que geralmente termina em terapia ou bem-estar. Bill se preocupa claramente com John ou ele não pergunta como ajudá-lo, então acho que os comentários e respostas sobre apenas deixá-lo ser demitido definitivamente não são o que Bill está procurando.

Avatar_Squadron
fonte
1
Concordo. O caso não foi provado que John é menos produtivo porque ele não está usando um IDE. Mudar para um ambiente desconhecido provavelmente o tornará menos produtivo e frustrado. Concentre-se em seu desempenho. Faça com que ele emparelhe um programa com alguém usando um IDE (ou emparelhe com ele em um editor de texto, talvez você também aprenda algo.) Encontre a causa raiz da falta de produtividade, não basta chegar à conclusão de que sua cadeia de ferramentas é em falta.
precisa saber é o seguinte
3
Também é perfeitamente possível que o empregador tenha expectativas irreais para John e que seu desempenho esteja dentro do razoável.
Joe Internet
Com apenas 3 desenvolvedores, se os outros dois são do calibre de alto débito de combustível premium, que é inteiramente possível, bem
Avatar_Squadron
8

O fracasso é um ótimo professor. Bill pode parar de proteger John e deixá-lo defender suas próprias decisões. Se John for demitido por causa disso, espero que isso o torne um funcionário melhor para a próxima empresa que o contratar.

Paul Butcher
fonte
3
O fracasso pode ser um ótimo professor, mas certamente é uma estratégia de negócios ruim - por que essa empresa deveria pagar pela educação dos funcionários da próxima empresa?
Ekkehard.Horner
5
@ Ekkehard.Horner: Como é uma péssima estratégia de negócios livrar-se de alguém que é (a) menos produtivo e (b) não coopera?
S.Lott 02/03
2
@ S.Lott: as perguntas de artjomka indicam que John pode ser produtivo (ganho para a empresa); A proposta de Paul Butcher de não fazer nada além de permitir que John continue até ser demitida é uma maneira de perder dinheiro.
precisa
4
@S. Lott: Porque treinar pessoas (John) custa dinheiro. Porque encontrar novas pessoas custa dinheiro. Porque treinar uma nova pessoa para fazer seu trabalho custa dinheiro. Demitir pessoas é caro.
pyvi
2
Acho que Bill deveria dar um passo adiante e despedir o próprio John. Não espere que isso aconteça por si só ... Além disso, estou curioso para saber como isso não foi descoberto durante as entrevistas?
Avid
6

Você pode tentar convencê-lo de que, se ele entender o IDE e o que ele faz, ele permanecerá no controle total.

Esta é a cenoura.

O segredo é que ele está em liberdade condicional.

Biziclop
fonte
6

Eu tenho que dizer que estava usando o IDE (aptana para javascript), e eu odiava, era lento e fazia coisas estranhas com a formatação. Mudei para o gvim com muitas ferramentas de linha de comando e estou muito mais feliz.

é claro que sou o tipo de cara que escreverá geradores de código no elisp por diversão.

Zachary K
fonte
4

Tenho dificuldade em acreditar que o desempenho de John tem alguma coisa a ver com o editor que ele está usando. No meu local de trabalho, praticamente todo mundo usa um editor de código diferente (Visual Studio, Source Insight, vim, SlickEdit ...) e não há correlação visível entre o editor / IDE e o desempenho do trabalho.

Nemanja Trifunovic
fonte
4

Se houver um IDE padrão da empresa, diga-lhe claramente "Este IDE é o padrão da empresa, USE-O".

Se não existe um IDE padrão da empresa, e o desejo de ele usar um IDE é apenas para aumentar o desempenho, é:

  1. A suposição errada de fazer essa escolha do ambiente de desenvolvimento será um fator importante no desempenho
  2. A abordagem errada para dizer a ele para usar um IDE

Se você realmente deseja que ele use um IDE, acho que a melhor abordagem é dizer a ele que o desempenho dele não está à altura do par, então mostre a ele como o uso de um IDE pode ajudar a melhorar esse desempenho. Mostrar pelo exemplo é um motivador muito melhor na minha opinião.

Dito isto, acho que as suposições estão erradas aqui. A maioria dos desenvolvedores decentes pode ser produtiva em praticamente qualquer ambiente de desenvolvimento. Se ele não estiver cumprindo as expectativas, talvez a causa principal seja o desenvolvedor, não o IDE.

Dustin Wilhelmi
fonte
3

Se Bill, apesar de sua posição de líder de equipe, não consegue que John use um IDE quando Bill quer que todos o usem, há algo errado com a empresa, pois o líder de equipe não tem autoridade suficiente.

E não, dependendo do trabalho dado a uma pessoa, essa pessoa pode ser tão produtiva sem um IDE quanto com um, dependendo das ferramentas em uso, da experiência da pessoa com essas ferramentas e de sua competência geral (e do ambiente geral, se John tiver que extrair cada fonte de um servidor de aplicativos, carregá-lo em seu IDE, editá-lo, enviá-lo novamente, etc. etc. .

jwenting
fonte
4
Qualquer tipo de refatoração é mais lenta (sem mencionar a propensão a erros) em várias ordens de magnitude em um editor de texto simples do que em um IDE projetado para executar a refatoração.
biziclop
3
@biziclop Um IDE é apenas uma coleção de ferramentas. Não há razão para que uma coleção de ferramentas seja mais potente do que as ferramentas por conta própria. As ferramentas de refatoração também existem fora de um IDE. Conhecer as ferramentas o torna produtivo; se você escolher o seu, é mais provável que seja produtivo do que algumas ferramentas enfiadas na garganta.
daramarak
1
@daramarak Acho que todos podemos concordar com segurança que um editor de texto não é uma ferramenta de refatoração, enquanto um IDE é.
biziclop
3
@biziclop Certifique-se de que um simples editor de texto por si só não é uma ferramenta de refatoração. O que quero dizer é que um simples editor de texto não é um obstáculo para a refatoração. Deixa você livre para escolher as ferramentas que você gosta.
precisa saber é o seguinte
@ Biziclop: Desde quando a refatoração (e a obtenção de ajuda para fazê-lo) é a principal coisa na produtividade? Admito que realmente ajuda quando quero renomear algo, cerca de uma vez por mês, mas minha produtividade não se deve a isso.
Mike Dunlavey
2

Não usar o IDE é muito bom, porque ele aprenderá muito. Mas não deve estar no custo do projeto. Ele deve usá-lo quando achar que pode terminar o trabalho sem afetar a linha do tempo.

Eu sugiro que ele faça as duas coisas, para que ele possa aprender rápido e, ao mesmo tempo, não se envolver em problemas.

Afinal, você precisa de pão para sobreviver, então só você pode pensar em se tornar um construtor de corpo.

Siva
fonte
Tentar aprender um IDE de maneira eficaz também é um exercício de frustração e exige muito tempo e esforço. Ele pode ficar MAIS LENTO por várias semanas usando um IDE do que agora usando um editor de texto (dependendo de sua competência principal com o idioma que está escrevendo), e não mais rápido por várias semanas depois disso (se alguma vez).
jwenting
0

Eu acho que o principal valor de qualquer IDE não é que seja um editor, mas que seja um depurador. Há quem não entenda o conceito de depurador. Eles depuram com instruções de impressão.

Se outras características são o que supostamente tornam os IDEs mais produtivos, como o entendimento inteligente ou o controle de versão, eu poderia concordar com John, por várias razões que poderíamos debater.

Mas é difícil depurar com instruções de impressão (embora eu costumava fazer isso).

Mike Dunlavey
fonte
1
Existem depuradores independentes que funcionam muito bem para pelo menos alguns propósitos. Não sei o suficiente sobre ferramentas Java para dizer se é esse o caso aqui.
precisa
existem desenvolvedores realmente famosos que depuram coisas com o printf. Mesmo que seja um pouco irritadiço, por que incomodar alguém para convencê-lo a usar outra coisa?
jokoon
0

Escute, há pessoas usando coisas, outras pessoas usando outras coisas. Gosto dos editores de IDE e de texto, eles são apenas dois tipos diferentes de aplicativos, mas no final, a tarefa realizada é absolutamente a mesma.

São apenas laranjas e maçãs, no fim da linha, se você quiser demiti-lo argumentando "ele usa um editor de texto" ou então "ele é muito lento, PORQUE ele usa um editor de texto", continue, mas você realmente precisa conspirar para alguma estratégia de como você pode convencê-lo?

Você sabe, liberdade não é "apenas o mais apto deve prevalecer", é "fazer o que eu quero".

Não é porque você vive em uma democracia que deve impor a prática da maioria. Parece quase uma perseguição de algum tipo

jokoon
fonte