Chegar a um beco sem saída é comum quando você está programando. É comum em qualquer tipo de solução de problemas.

Ficamos presos em uma maneira particular de ver o problema e pode ser difícil alcançar uma nova perspectiva.

Recentemente, encontrei uma ferramenta das artes criativas e percebi que ela poderia ser adaptada para funcionar com programação.

A ferramenta que me inspirou foram os Cartões de Estratégia Oblíquos. São sugestões para quebrar um ciclo de pensamento e nos inspirar a pensar de forma diferente. Os cartões incluem ‘Remover detalhes e converter em ambiguidades’ e ‘Usar uma ideia antiga’.

Um de seus usos mais famosos foi no álbum David Bowie Heróis. Na faixa ‘Sense of Doubt’, por exemplo, Bowie e Brian Eno se revezaram fazendo overdubs baseados em Oblique Strategy Cards. sem revelar ao outro o que seu cartão dizia.

Acho que os becos sem saída da codificação precisam de algo mais direto. Nos momentos em que estamos presos a um problema, ambos precisamos de inspiração e segurança.

A solução? A máquina de inspiração de codificação

Portanto, coletei citações sobre o processo de codificação de especialistas – pessoas que criaram linguagens de programação e sistemas operacionais. E eu coloquei essas palavras sábias em um design de Gordana Minovska isso dá às citações o centro do palco.

vFx4xkI63PkxfNy1UQGuiGvKYBeVl 83ScRc68smMQSa1AgRRGi9mPtHnet XHDYk hZono wHUz F7fXY1dbYhsJ0nq24ynFU52md65YZfqmdMRd LQR 4zYID4ZK0Vg7l0NVD
https://ryandawsonuk.github.io/CodingInspirationMachine/

O objetivo é ter uma ferramenta para ajudar a ir de “Não consigo ver nenhuma solução” para “talvez essa abordagem vá para algum lugar” para “aha”.

Freqüentemente, ficamos presos em uma perspectiva que não nos permite ver as abordagens do “talvez”. Nesses momentos, poderíamos usar algumas palavras sábias de um mestre na solução de problemas para nos dar um susto.

Por exemplo, estas palavras de Robert C. Martin:

Quando você está trabalhando em um problema, às vezes chega tão perto dele que não consegue ver todas as opções. Você perde soluções elegantes porque a parte criativa de sua mente é suprimida pela intensidade de seu foco.

A ideia é marcar o url ou bifurque o repo e configure as páginas do GitHub para hospedar sua própria versão.

Com uma bifurcação, você pode alterar as aspas para o que achar mais útil. Depois, você pode retornar à Coding Inspiration Machine quando tiver problemas.

Claro que esta é apenas uma ferramenta de inspiração. Não substituirá outros como brainstorming e mapas mentais.

David Bowie usou muitas ferramentas para se inspirar e sua música provavelmente deve mais à inspiração de recortes de jornal do que os cartões de estratégia oblíquos.

Mas o objetivo da Coding Inspiration Machine é ter uma ferramenta fácil de usar para nos lembrar que não há problema em travar, que deve ser difícil e que haverá caminhos a seguir.

Aplicativos do mundo real para a Coding Inspiration Machine

Aqui estão algumas situações em que passei recentemente que me fizeram pensar sobre essa técnica.

Ser criativo

Ocorreu um problema de autorização com um sistema em que trabalho. O código de autorização que estava funcionando com vários provedores de autorização não funcionou para uma configuração específica do Active Directory.

Não sabíamos inicialmente se era um problema de configuração no lado do provedor, configuração no lado do aplicativo, um problema de conectividade ou um problema em nosso código. Nós até construiu uma ferramenta de teste personalizada para restringir o problema.

Acabamos descobrindo que precisávamos de um parâmetro resource_uri extra para ser incluído em uma de nossas chamadas http.

Encontrar uma solução

Para esse mesmo sistema, queríamos mostrar métricas por longos períodos. Isso levou à tentativa de fazer consultas do Prometheus em intervalos de dados muito grandes para as consultas do Prometheus.

Há uma variedade de maneiras de lidar com isso, desde alterar o que consultamos até usar diferentes / mais ferramentas e reestruturar os dados. Nós escolhemos o que equivale a reestruturando os dados.

Vendo a resposta menos óbvia

Meu sogro me mostrou que sua smart TV não estava funcionando com a Netflix.

Depois de navegar por vários menus confusos e tentar várias redes sem fio, descobrimos que era um problema de intensidade do sinal com a rede que a TV estava preferindo (funcionou bem com uma rede que a TV achou que era de baixa intensidade).

Empacotando

Todos esses problemas são diferentes, mas compartilham características comuns.

Cada pesquisa e experimentação exigidas e possibilidades de eliminação. Cada um deles foi inicialmente surpreendente e demorou para ajustar as expectativas e perceber por que o problema estava ali. Foi necessário explorar vários caminhos e cada vez que um caminho não dava certo, era desanimador.

É fácil ficar preso nessas situações e descobrir que não podemos mais ver nenhum caminho. As palavras de outras pessoas que já estiveram lá podem nos ajudar a ver essas situações com outros olhos.

Dê uma olhada no Máquina de inspiração de codificação e fique à vontade para enviar sugestões ao github repo ou contacte-me no twitter.





Fonte