Como você compartilha seu trabalho com não programadores?


43

Às vezes me sinto como um músico que não pode tocar shows ao vivo. Programar é uma habilidade bem legal e um mundo muito amplo, mas muita coisa acontece "fora da câmera" - na sua cabeça, no seu escritório, longe dos espectadores.

É claro que você pode falar sobre programação com outros programadores, e há programação por pares, e você cria algo que pode mostrar às pessoas, mas quando se trata de explicar aos não programadores o que você faz ou como foi seu dia de trabalho, é meio complicado.

Como você faz com que os não programadores de sua vida entendam o que você faz?

NOTA: isso não é uma repetição de Como os não programadores entenderem o processo de desenvolvimento , porque essa pergunta era sobre o gerenciamento das expectativas do cliente.


Essa é a natureza da profissão: existem poucas recompensas tangíveis pelo seu esforço, porque você é o único que entende o que você faz. No entanto, conhecimento, o dinheiro é recompensador o suficiente para a maioria.
Ninguém


12
Fique feliz por não escrever coisas por segurança. A segurança é ainda menos demonstrável do que qualquer outra coisa. "Veja, está fazendo a mesma coisa que antes, só que agora está seguro ..."
Shawn D.

2
Alguém pode explicar-me, o que categoria esta pergunta encaixa no programmers.stackexchange.com/faq
Noname

1
@Dave se encaixa na categoria de perguntas que foram postadas quando o site ainda estava na versão beta, se a memória me servir corretamente. As regras não estavam completamente polidas naquela época.
EpsilonVector 02/02/2012

Respostas:


31

Três palavras:

dumb it down

A programação é complexa. É preciso muito trabalho para entender isso. E as alegrias da programação são ainda mais sutis.

Para que eu comunique meus sucessos e outros a outros (ou seja, família), tenho que me comunicar em um nível mais comum. Compare a programação com as coisas normais do mundo real.

(ou seja, um objeto para um carro com um painel de instrumentos e assentos e ....)

É ainda melhor se você souber algo sobre o seu público, porque pode usar coisas que eles entendem que são mais complexas do que os conceitos cotidianos normais.

Por exemplo, minha esposa era professora, então eu posso comparar alguns dos meus processos de desenvolvimento de software com os processos de ensino que ela teve que usar. Isso ajuda imensamente.

Mas no final você precisa simplificar, simplificar e simplificar um pouco mais. E mesmo assim, é difícil fazer com que alguém entenda o quão legal é uma aula bem trabalhada com bons testes de unidade. :)


25
+1 para "E mesmo assim, é difícil fazer com que alguém entenda o quão legal é uma aula bem trabalhada com um bom teste de unidade". É difícil conseguir que alguns programadores entendam isso.
CaffGeek #

3
Sou fã de usar más analogias para explicar conceitos esotéricos.
Malachi

49

Eu nem tento. Se eles não são orientados para a tecnologia o suficiente para ter pelo menos um entendimento básico de programação, eu os aborrecerei com os detalhes. Normalmente, eu apenas uso algo de alto nível, como "eu crio sites" ou "eu escrevo programas de computador para fazer o X"


13
+1 - Eu uso esse método o tempo todo. Se eu realmente quero que eles saibam como foi o meu dia, jogarei alguns termos neles e observarei aquele olhar vítreo tomar conta de seus olhos. Então alguém muda de assunto.
Joel Etherton

7
Descobri que as pessoas tendem a mudar de assunto assim que menciono computadores. Ou isso, ou eles começam a reclamar do computador e a pedir conselhos. Eu acho que os médicos têm o mesmo problema.
Brian Ortiz

3
@ Brian, exceto a maioria dos médicos corrigir problemas ao invés de construir novos sistemas;)
Armand

2
Sim. A resposta mais fácil é "Eu crio coisas ... mais especificamente, eu criar um sistema de cluster em tempo real de alta disponibilidade, por ..." - e aqui eles se foram ...
Sorantis

Isto é o que eu faço. Então, espero os 5 segundos de silêncio e digo: "Annnnnd, há aquele assassino de conversas fora do caminho. Então, o que você faz?"
pdr

12

Eu tento explicar isso em termos de solução de um problema. Eu apenas escolhi usar um programa de computador para resolver o problema. Dessa forma, você pode discutir o que fez em termos do problema que está tentando resolver. Quando eles entendem isso, o salto para resolvê-lo através da programação não é muito longe e geralmente pode ser feito por tipos não técnicos.


12

Meu irmão Rob me perguntou sobre isso. (Ele é um artista e ilustrador, como livros infantis, interiores de museus, coisas assim.)

Tentei explicar, mostrando a ele o computador de retransmissão de Harry Porter , porque acho que ele captura a essência dos computadores e da programação de uma maneira que parece instintiva.

Não era isso que ele queria, e eu fiquei meio confusa.

Só mais tarde eu percebi qual era o problema real. Lembrei-me dessa citação de Oscar Wilde:

O fato é que a civilização requer escravos. Os gregos estavam bem ali. A menos que haja escravos para fazer o trabalho feio, horrível e desinteressante, a cultura e a contemplação se tornam quase impossíveis. A escravidão humana é errada, insegura e desmoralizante. Da escravidão mecânica, da escravidão da máquina, o futuro do mundo depende.

O que me excita como engenheiro é que estou construindo escravos mecânicos. Quando criança, eu queria colocar uma barragem no riacho e ter uma roda d'água produzindo eletricidade, para que pudesse fazer algo por mim , enquanto eu apenas observava. No motor de um carro, há uma árvore de cames. Na verdade, é um programa primitivo. Ele abre e fecha as válvulas quando eu quero, para não precisar fazer isso.

O mundo de um artista é completamente diferente. Se você ouvir, com os olhos fechados, uma versão da 9ª sinfonia de Beethoven, você será transportado. Você deve dar toda a sua atenção e, quando terminar, anseia por isso. Se você visitar a obra-prima de Frank LLoyd Wright, Falling Water, será transportado. Sinceramente, não sei como alguém poderia viver nela. Onde você pode fazer uma bagunça? Ele captura você completamente. É uma sinfonia arquitetônica.

A arte não faz algo para você, faz algo para você.

Eu tentei encontrar a arte no que faço. Há beleza nela, se você olha, mas precisa olhar. Isso é o que teria nos conectado.


3
Eu li que, como o Relay Computer de Harry Potter, inicialmente, a magia é freqüentemente usada para descrever o que fazemos, é claro;)
jk.

@jk: Aposto que só traz os alunos em suas aulas :)
Mike Dunlavey

@jk. Muitas vezes vejo magia negra em nossas obras.
precisa

7

Conte uma história. Não se concentre no que você faz, mas em como você se sente quando o faz, em como está apaixonado ou entediado com isso, no relacionamento com seus colegas de trabalho.


1
+1 por se concentrar no relacionamento com colegas de trabalho. Todo mundo pode se relacionar com esse tipo de coisa. "Fui almoçar com o chefe e ele estava dizendo ..." é muito parecido com "passei metade do meu dia tentando remover as condições da corrida"
Andy Hunt

3

Minhas duas analogias básicas para esse fim são: uma receita e uma burocracia maciça. Foi o que expliquei neste controle de qualidade: 30 minutos para explicar a programação a uma criança de 15 anos

Eu usei a analogia da receita várias vezes para explicar como a programação consiste em escrever um conjunto rigoroso de instruções que tenham um resultado tangível e previsível quando seguidas.

Na verdade, só usei a analogia da burocracia algumas vezes, porque a maioria das pessoas não precisa entender além da analogia da receita, mas as duas vezes foram muito esclarecedoras para a pessoa. Eles pareciam pensar que programação significava recall total de todas as linhas de código (por exemplo, "mas se você tem uma memória tão ruim, como pode programar um computador?"), Mas na verdade é sobre a construção de muitos módulos independentes que funcionam juntos para atingir o objetivo maior. Os módulos de um programa são como os departamentos de uma grande empresa: unidades independentes que lidam principalmente com o seu próprio pedaço do todo e se comunicam com outros departamentos por meio de memorandos.


Alguém disse que estava construindo escravos mecânicos, depois de mais um "problema" do cliente, sinto que somos escravos e estamos construindo distopias mecânicas para convivermos.
precisa

2

Acho que recebo mais respostas quando explico algo em termos da idéia por trás do código, em vez do próprio código. Apenas retiro todo o jargão técnico, evito mencionar termos relacionados à programação e apenas falo sobre a idéia e o que está realmente sendo feito .

Por exemplo, recentemente tentei explicar como funciona um filtro de spam. Acabei de dizer que mantém um registro das palavras normalmente encontradas em spam e daquelas não encontradas em spam. O registro é criado usando e-mails conhecidos e não spam. Depois disso, sempre que um novo e-mail chega, apenas checamos quantas das palavras aparecem com spam (ou seja, ocorrem em nosso registro de palavras com spam) e quantas parecem sem spam. Se houver muitas palavras com spam, provavelmente é spam e, portanto, é enviado para a caixa de spam. O pessoal não técnico com quem eu conversava seguiu muito bem a ideia.


1

Metáforas

Muitas vezes, não o descrevo como um programa, tento representá-lo como um conceito completamente diferente, com inter-relações semelhantes.

Isso torna a visualização do programa muito mais interessante e às vezes me ajuda a vê-lo sob uma nova luz.

Você não descreve a eletricidade para alguém que nunca trabalhou com ela falando sobre corrente e voltagem, não é? Além disso, é divertido descrever alguns conceitos como se algum processo de computador extremamente consciente os fizesse acontecer como se por meio de mágica. Uma pequena história de imaginação não os prejudica como a realidade de como os computadores são frios e racionais.


1

Respondi a uma pergunta semelhante em mais detalhes , mas a essência é: "A programação é como construir uma fábrica ou uma linha de montagem".


1

Muitas pessoas que não programaram parecem acreditar que os programadores passam muito tempo caçando bugs, pesquisando visualmente milhares de linhas de código em busca de vírgulas erradas. Por isso, primeiro asseguro a eles que não é esse o caso e, se fosse, seria completamente inútil.

Costumo comparar programação de computadores a escrever um livro de receitas. Um livro de receitas é um conjunto de instruções para pessoas, enquanto um programa de computador é um conjunto de instruções para um computador. Alguns programas são muito mais complexos que os livros de receitas, e os programas são modificados com mais frequência, mas há alguma semelhança na estrutura. Se um livro de receitas contém sete cópias das instruções para fazer um molho e a receita precisa ser alterada, alguém precisa encontrar todas essas cópias e consertá-las.


Seria um mundo difícil, onde você não poderia programar seu computador para facilitar a programação ("pesquisa visual... Por vírgula incorreta").
compman

1

Eu acho que uma boa analogia é construir uma fábrica. A maioria das pessoas viu algo como "Como é Feito", onde você vê algum item sendo embaralhado por diferentes correias transportadoras e máquinas, com a esperança de que um produto acabado seja lançado no final. Digo às pessoas que construo coisas assim, mas em vez de serem fábricas físicas trabalhando em itens físicos, elas são virtuais e trabalham com dados. Claro que isso não é uma boa analogia para todo tipo de programação, mas acho que se der uma boa idéia da complexidade e for paralelo a muitos tipos de aplicativos.


0

Você meio que não pode realmente compartilhar sua arte - apenas manchetes sobre seu trabalho com outras pessoas

No entanto, o que você pode fazer é, em vez de compartilhar sua arte, é compartilhar sua vida com pessoas que estão na mesma arte que você (:


0

Normalmente não falo sobre como é feito, mas sobre as características do trabalho .

Costumo enfatizar que é incrivelmente complicado, tão complicado que nenhuma pessoa poderia esperar começar a entender em detalhes perfeitos exatamente o que está acontecendo. Provavelmente seria necessário 30 anos estudando as várias partes que interagem (eletrônica através de estruturas), mais cerca de uma hora por linha de código ativa, e nessa época você teria que voltar a estudar porque o hardware teria mudado tanto que são outros 10 anos grokking a versão mais recente.

A outra parte importante é como pode ser gratificante criar algo tão flexível que milhares, talvez milhões de pessoas possam usá-lo para enriquecer suas vidas, algo único (pelo menos em detalhes) e algo com o qual você aprendeu bastante.

Se ninguém encheu minha boca de meias neste momento, eu demonstraria com satisfação um aplicativo, mostrando um pouco da complexidade e flexibilidade possíveis.


0

Digo a eles que, além de escrever sinfonias, teses e romances matemáticos, a programação é a única chance de você se envolver em tarefas / estruturas com esse nível de complexidade e complexidade. Obviamente, não dizendo que um aplicativo da web decente é uma obra-prima histórica, mas quando as pessoas percebem que você usa sua mente nesse tipo de nível todos os dias, então elas 'entendem'. Muitos empregos são dignos e bem remunerados, mas se resumem a uma tarefa processual bastante simples, repetida várias vezes.

Pelo menos, é assim que eu vejo. Eu poderia estar errado.


0

Como uma abordagem diferente para as outras 15 respostas ...

Em vez de explicar os detalhes do meu trabalho (programação), tento me concentrar nas soluções que o trabalho resolve, ou seja, quais problemas os sistemas / software que construo realmente resolvem para o usuário. Geralmente, esse é um domínio que não é de programação, a menos que você esteja escrevendo um compilador ou algo assim. Nesse caso, você teria que explicar por que isso é útil.

Dessa forma, torna mais fácil para as pessoas entenderem que é uma natureza complexa e como ela se relaciona com o "mundo real".

Como analogia, como um ferreiro medieval, eu provavelmente explicaria (para a senhora da taberna local) que faço espadas para cortar o inimigo em pedaços, não como tempero o aço e o martelo com um certo ângulo e força (a menos que eles perguntaram). Felizmente, ela entenderia que cortar um inimigo em pedaços é útil (...) e pode ser difícil de fazer (falta de aço, inimigos blindados, ambiente de trabalho enfumaçado, etc.) e, assim, você ganha alguma apreciação por executar uma tarefa complexa.

(Então, moldar bigornas seria equivalente a criar compiladores, e você teria que explicar para que eles são usados ​​...)


0

Comparo-o à construção de uma casa, se vivêssemos em um universo estranho, com partículas exóticas e antitempo:

Você tem uma idéia para uma casa muito legal, então cria um esboço de como ela será e tem um plano geral de como proceder. Você vai à loja de ferragens e compra madeira para construir os muros, mas eles continuam caindo porque o chão é irregular. Então você compra cimento para estabelecer a base, mas o cimento não seca e você não consegue entender o porquê. Você volta à loja de ferragens e pergunta o porquê, mas o funcionário fica catatônico. Você vai a 8 lojas de ferragens diferentes até que uma lhe diga que o cimento que você usou foi desenvolvido no outono de 1989, mas você comprou sua propriedade no inverno de 1989, portanto elas são incompatíveis e ele vende o cimento 2013.1.1 mais recente. Você volta a lançar as bases e, assim que faz, o cimento desaparece. Desta vez, todos os funcionários ficam catatônicos, você pesquisa sua casa no Google e descobre que já foi um site de testes nucleares. Então você pesquisa no Google os efeitos dos testes nucleares no solo e descobre que ele causa radicais livres. Você pesquisa no Google e começa a pesquisar radiação eletromagnética, depois férmions, bóson, teoria das cordas e algo sobre um gato. Você não quer desistir porque perdeu muito tempo e bateu com força na garrafa. Você chega tarde em casa e se irrita com sua esposa, alegando que ela é a razão de você não poder construir a casa porque ela e os filhos estão ocupando todo o seu tempo ... Cerca de três meses depois, você percebe que saiu de casa. e algo sobre um gato. Você não quer desistir porque perdeu muito tempo e bateu com força na garrafa. Você chega tarde em casa e se irrita com sua esposa, alegando que ela é a razão de você não poder construir a casa porque ela e os filhos estão ocupando todo o seu tempo ... Cerca de três meses depois, você percebe que saiu de casa. e algo sobre um gato. Você não quer desistir porque perdeu muito tempo e bateu com força na garrafa. Você chega tarde em casa e se irrita com sua esposa, alegando que ela é a razão de você não poder construir a casa porque ela e os filhos estão ocupando todo o seu tempo ... Cerca de três meses depois, você percebe que saiu de casa.quase terminando a casa, sem nem saber por que você queria construir a casa.


-1

Eu apenas digo a eles que o que faço é analisar o que eles fazem para o trabalho deles e criar um software de computador que facilite o trabalho deles.


ou substituir o trabalho deles, oh não !!!
Jhocking

-2

Como alguns de vocês disseram, use analogias que façam sentido para eles. Eu sempre tento trazer o Google de alguma forma, se meu código faz algo semelhante ao google, ou mostra os benefícios financeiros, ou como isso ajuda as pessoas de alguma forma ...


-2

Às vezes, desisto e digo que passo o dia editando arquivos de texto. O que geralmente é verdade, se não a história completa.

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.