O problema que a Boeing está enfrentando com dois acidentes recentes recebeu muita atenção da imprensa. Além das implicações para a Boeing, a política e os negócios da certificação, e sentindo-se seguros ao voar, há algumas lições mais importantes sobre a crescente presença de computadores e software em nossas vidas.Como formação, sou treinado em desenvolvimento de software e arquiteturas de software, também li inúmeros relatórios de investigação de aviação. Por quê? Porque eles são o padrão-ouro em encontrar causas-raiz contra probabilidades significativas e, em seguida, melhorar o sistema para evitar que ocorram novamente. Nenhuma indústria fez melhor em aprender e colocar os aprendizados em ação do que a indústria de aviação dos EUA. É por isso que este passo em falso da Boeing é ainda mais significativo.Muitas coisas na vida correm em ciclos. Uma lição é aprendida, às vezes da maneira mais difícil. Mudanças de comportamento, salvaguardas são postas em prática. As coisas vão bem por um longo tempo. E a motivação ou até mesmo a compreensão do porquê diminui. Até que a lição tenha que ser reaprendida. Essa é a natureza humana.Mas há aprendizados além da Boeing e do setor de aviação. Enquanto as investigações ainda estão em andamento, ficou claro que ambos os incidentes foram um caso de humanos lutando contra um computador teimoso e perdendo. Com os computadores controlando uma parcela cada vez maior de nossas vidas, mesmo décadas nessa revolução tecnológica, enfrentaremos computadores cada vez mais em papéis em nossas vidas, onde eles não apenas assumem tarefas manuais e entorpecentes, mas controlam decisões que têm impacto em nossas vidas. Às vezes, grandes decisões de impacto. Às vezes até decisões de vida ou morte. Decisões que nem sempre acertam. E agora? Como você discute com um computador quando está convencido de que o computador está errado? Ligue para o supervisor? Existe alguém que possa substituir o computador? Como o bom senso pode prevalecer neste ambiente?À medida que os computadores assumiram tarefas de trabalhadores de nível mais baixo, seja a linha de check-out ou em funções de escritório administrativo de todos os tipos, as expectativas e o treinamento desses trabalhadores diminuíram. Estamos terceirizando processos, interpretação de dados e fluxo de trabalho para os computadores e estamos deixando apenas a última milha para os humanos restantes. Isso funciona muito bem, se tudo se encaixa perfeitamente na tabela de fluxo de trabalho usada pelos designers de software. Mas e se isso não acontecer? O atendente está autorizado a tomar uma decisão? O funcionário é treinado para tomar uma decisão? O atendente é capaz de substituir o computador? Em muitos casos, a resposta é não. O computador não entende o bom senso e não escuta a pessoa que pode.De volta à Boeing por segundo: há dois rivais no topo da indústria da aviação - a Boeing e a Airbus. Por décadas, eles seguiram diferentes filosofias no design de aeronaves. A Boeing vem de uma época em que os aviões ainda tinham todos os controles mecânicos de cabos e polias e a Airbus uma entidade relativamente nova. Nos aviões da Boeing, os computadores ajudaram o piloto, mas o piloto estava no controle - até agora. Aviões da Airbus desde o início foram projetados com o computador supervisionando as decisões dos pilotos e possivelmente tendo a última palavra. O sistema MCAS implicado nos acidentes da Boeing foi o primeiro caso do computador trabalhando em segundo plano e sendo teimoso em um avião da Boeing. E os pilotos não foram informados ou treinados para isso.Todo o software precisa ser testado. E todo o software tem erros, caso contrário nunca teríamos que instalar atualizações de segurança e correções urgentes. Se o computador toma decisões de vida ou morte e também tem a última palavra, a barra de testes aumenta. Isso tem implicações culturais em termos de orçamento, cronograma e quem pode dizer "ainda não pronto". A Airbus estaria bem posicionada depois de muitos anos projetando aviões com um alto grau de influência computacional. A Boeing pode ter sido pego de surpresa nessa frente, não sendo preparado culturalmente para esse tipo de teste de software.Eles aparentemente foram pegos de surpresa pela taxa de falha de sensores que deveriam ter levado a salvaguardas mais altas, e julgado erroneamente não as funções individuais do sistema, mas o impacto cumulativo após múltiplas reconfigurações. Exatamente o tipo de coisa que é difícil de testar, porque vai além do fluxograma organizado e, em vez disso, abrange interações complexas do sistema. [baseado no NY Times reportando]O problema é que, na programação tradicional, o ser humano divide o problema em muitos pequenos passos e decisões do tipo "se-então-senão". Em seguida, o programa é escrito para percorrer essas etapas em ritmo acelerado. Depois que o programa é escrito, ele deve ser testado com tantos cenários quanto possível e verificado se o resultado pretendido ocorre.Problema A é que isso é muito complicado e demorado. Então, muitas vezes apenas uma fração disso pode ser feita, medida como cobertura de teste. O resto é deixado para a esperança, confiança e acaso. E na maioria dos casos, se algo for esquecido, há sempre uma atualização de software a algumas semanas de distância.O problema que a Boeing está enfrentando com dois acidentes recentes recebeu muita atenção da imprensa. Além das implicações para a Boeing, a política e os negócios da certificação, e sentindo-se seguros ao voar, há algumas lições mais importantes sobre a crescente presença de computadores e software em nossas vidas.Como formação, sou treinado em desenvolvimento de software e arquiteturas de software, também li inúmeros relatórios de investigação de aviação. Por quê? Porque eles são o padrão-ouro em encontrar causas-raiz contra probabilidades significativas e, em seguida, melhorar o sistema para evitar que ocorram novamente. Nenhuma indústria fez melhor em aprender e colocar os aprendizados em ação do que a indústria de aviação dos EUA. É por isso que este passo em falso da Boeing é ainda mais significativo.Muitas coisas na vida correm em ciclos. Uma lição é aprendida, às vezes da maneira mais difícil. Mudanças de comportamento, salvaguardas são postas em prática. As coisas vão bem por um longo tempo. E a motivação ou até mesmo a compreensão do porquê diminui. Até que a lição tenha que ser reaprendida. Essa é a natureza humana.Mas há aprendizados além da Boeing e do setor de aviação. Enquanto as investigações ainda estão em andamento, ficou claro que ambos os incidentes foram um caso de humanos lutando contra um computador teimoso e perdendo. Com os computadores controlando uma parcela cada vez maior de nossas vidas, mesmo décadas nessa revolução tecnológica, enfrentaremos computadores cada vez mais em papéis em nossas vidas, onde eles não apenas assumem tarefas manuais e entorpecentes, mas controlam decisões que têm impacto em nossas vidas. Às vezes, grandes decisões de impacto. Às vezes até decisões de vida ou morte. Decisões que nem sempre acertam. E agora? Como você discute com um computador quando está convencido de que o computador está errado? Ligue para o supervisor? Existe alguém que possa substituir o computador? Como o bom senso pode prevalecer neste ambiente?À medida que os computadores assumiram tarefas de trabalhadores de nível mais baixo, seja a linha de check-out ou em funções de escritório administrativo de todos os tipos, as expectativas e o treinamento desses trabalhadores diminuíram. Estamos terceirizando processos, interpretação de dados e fluxo de trabalho para os computadores e estamos deixando apenas a última milha para os humanos restantes. Isso funciona muito bem, se tudo se encaixa perfeitamente na tabela de fluxo de trabalho usada pelos designers de software. Mas e se isso não acontecer? O atendente está autorizado a tomar uma decisão? O funcionário é treinado para tomar uma decisão? O atendente é capaz de substituir o computador? Em muitos casos, a resposta é não. O computador não entende o bom senso e não escuta a pessoa que pode.De volta à Boeing por segundo: há dois rivais no topo da indústria da aviação - a Boeing e a Airbus. Por décadas, eles seguiram diferentes filosofias no design de aeronaves. A Boeing vem de uma época em que os aviões ainda tinham todos os controles mecânicos de cabos e polias e a Airbus uma entidade relativamente nova. Nos aviões da Boeing, os computadores ajudaram o piloto, mas o piloto estava no controle - até agora. Aviões da Airbus desde o início foram projetados com o computador supervisionando as decisões dos pilotos e possivelmente tendo a última palavra. O sistema MCAS implicado nos acidentes da Boeing foi o primeiro caso do computador trabalhando em segundo plano e sendo teimoso em um avião da Boeing. E os pilotos não foram informados ou treinados para isso.Todo o software precisa ser testado. E todo o software tem erros, caso contrário nunca teríamos que instalar atualizações de segurança e correções urgentes. Se o computador toma decisões de vida ou morte e também tem a última palavra, a barra de testes aumenta. Isso tem implicações culturais em termos de orçamento, cronograma e quem pode dizer "ainda não pronto". A Airbus estaria bem posicionada depois de muitos anos projetando aviões com um alto grau de influência computacional. A Boeing pode ter sido pego de surpresa nessa frente, não sendo preparado culturalmente para esse tipo de teste de software.Eles aparentemente foram pegos de surpresa pela taxa de falha de sensores que deveriam ter levado a salvaguardas mais altas, e julgado erroneamente não as funções individuais do sistema, mas o impacto cumulativo após múltiplas reconfigurações. Exatamente o tipo de coisa que é difícil de testar, porque vai além do fluxograma organizado e, em vez disso, abrange interações complexas do sistema. [baseado no NY Times reportando]O problema é que, na programação tradicional, o ser humano divide o problema em muitos pequenos passos e decisões do tipo "se-então-senão". Em seguida, o programa é escrito para percorrer essas etapas em ritmo acelerado. Depois que o programa é escrito, ele deve ser testado com tantos cenários quanto possível e verificado se o resultado pretendido ocorre.Problema A é que isso é muito complicado e demorado. Então, muitas vezes apenas uma fração disso pode ser feita, medida como cobertura de teste. O resto é deixado para a esperança, confiança e acaso. E na maioria dos casos, se algo for esquecido, há sempre uma atualização de software a algumas semanas de distância....

Lições da Boeing sobre viver em um mundo informatizado

O problema que a Boeing está enfrentando com dois acidentes recentes recebeu muita atenção da imprensa. Além das implicações para a Boeing, a política e os negócios da certificação, e sentindo-se seguros ao voar, há algumas lições mais importantes sobre a crescente presença de computadores e software em nossas vidas.

Como formação, sou treinado em desenvolvimento de software e arquiteturas de software, também li inúmeros relatórios de investigação de aviação. Por quê? Porque eles são o padrão-ouro em encontrar causas-raiz contra probabilidades significativas e, em seguida, melhorar o sistema para evitar que ocorram novamente. Nenhuma indústria fez melhor em aprender e colocar os aprendizados em ação do que a indústria de aviação dos EUA. É por isso que este passo em falso da Boeing é ainda mais significativo.

Muitas coisas na vida correm em ciclos. Uma lição é aprendida, às vezes da maneira mais difícil. Mudanças de comportamento, salvaguardas são postas em prática. As coisas vão bem por um longo tempo. E a motivação ou até mesmo a compreensão do porquê diminui. Até que a lição tenha que ser reaprendida. Essa é a natureza humana.

Mas há aprendizados além da Boeing e do setor de aviação. Enquanto as investigações ainda estão em andamento, ficou claro que ambos os incidentes foram um caso de humanos lutando contra um computador teimoso e perdendo. Com os computadores controlando uma parcela cada vez maior de nossas vidas, mesmo décadas nessa revolução tecnológica, enfrentaremos computadores cada vez mais em papéis em nossas vidas, onde eles não apenas assumem tarefas manuais e entorpecentes, mas controlam decisões que têm impacto em nossas vidas. Às vezes, grandes decisões de impacto. Às vezes até decisões de vida ou morte. Decisões que nem sempre acertam. E agora? Como você discute com um computador quando está convencido de que o computador está errado? Ligue para o supervisor? Existe alguém que possa substituir o computador? Como o bom senso pode prevalecer neste ambiente?

À medida que os computadores assumiram tarefas de trabalhadores de nível mais baixo, seja a linha de check-out ou em funções de escritório administrativo de todos os tipos, as expectativas e o treinamento desses trabalhadores diminuíram. Estamos terceirizando processos, interpretação de dados e fluxo de trabalho para os computadores e estamos deixando apenas a última milha para os humanos restantes. Isso funciona muito bem, se tudo se encaixa perfeitamente na tabela de fluxo de trabalho usada pelos designers de software. Mas e se isso não acontecer? O atendente está autorizado a tomar uma decisão? O funcionário é treinado para tomar uma decisão? O atendente é capaz de substituir o computador? Em muitos casos, a resposta é não. O computador não entende o bom senso e não escuta a pessoa que pode.

De volta à Boeing por segundo: há dois rivais no topo da indústria da aviação – a Boeing e a Airbus. Por décadas, eles seguiram diferentes filosofias no design de aeronaves. A Boeing vem de uma época em que os aviões ainda tinham todos os controles mecânicos de cabos e polias e a Airbus uma entidade relativamente nova. Nos aviões da Boeing, os computadores ajudaram o piloto, mas o piloto estava no controle – até agora. Aviões da Airbus desde o início foram projetados com o computador supervisionando as decisões dos pilotos e possivelmente tendo a última palavra. O sistema MCAS implicado nos acidentes da Boeing foi o primeiro caso do computador trabalhando em segundo plano e sendo teimoso em um avião da Boeing. E os pilotos não foram informados ou treinados para isso.

Todo o software precisa ser testado. E todo o software tem erros, caso contrário nunca teríamos que instalar atualizações de segurança e correções urgentes. Se o computador toma decisões de vida ou morte e também tem a última palavra, a barra de testes aumenta. Isso tem implicações culturais em termos de orçamento, cronograma e quem pode dizer “ainda não pronto”. A Airbus estaria bem posicionada depois de muitos anos projetando aviões com um alto grau de influência computacional. A Boeing pode ter sido pego de surpresa nessa frente, não sendo preparado culturalmente para esse tipo de teste de software.

Eles aparentemente foram pegos de surpresa pela taxa de falha de sensores que deveriam ter levado a salvaguardas mais altas, e julgado erroneamente não as funções individuais do sistema, mas o impacto cumulativo após múltiplas reconfigurações. Exatamente o tipo de coisa que é difícil de testar, porque vai além do fluxograma organizado e, em vez disso, abrange interações complexas do sistema. [baseado no NY Times reportando]

O problema é que, na programação tradicional, o ser humano divide o problema em muitos pequenos passos e decisões do tipo “se-então-senão”. Em seguida, o programa é escrito para percorrer essas etapas em ritmo acelerado. Depois que o programa é escrito, ele deve ser testado com tantos cenários quanto possível e verificado se o resultado pretendido ocorre.

Problema A é que isso é muito complicado e demorado. Então, muitas vezes apenas uma fração disso pode ser feita, medida como cobertura de teste. O resto é deixado para a esperança, confiança e acaso. E na maioria dos casos, se algo for esquecido, há sempre uma atualização de software a algumas semanas de distância.

O problema que a Boeing está enfrentando com dois acidentes recentes recebeu muita atenção da imprensa. Além das implicações para a Boeing, a política e os negócios da certificação, e sentindo-se seguros ao voar, há algumas lições mais importantes sobre a crescente presença de computadores e software em nossas vidas.

Como formação, sou treinado em desenvolvimento de software e arquiteturas de software, também li inúmeros relatórios de investigação de aviação. Por quê? Porque eles são o padrão-ouro em encontrar causas-raiz contra probabilidades significativas e, em seguida, melhorar o sistema para evitar que ocorram novamente. Nenhuma indústria fez melhor em aprender e colocar os aprendizados em ação do que a indústria de aviação dos EUA. É por isso que este passo em falso da Boeing é ainda mais significativo.

Muitas coisas na vida correm em ciclos. Uma lição é aprendida, às vezes da maneira mais difícil. Mudanças de comportamento, salvaguardas são postas em prática. As coisas vão bem por um longo tempo. E a motivação ou até mesmo a compreensão do porquê diminui. Até que a lição tenha que ser reaprendida. Essa é a natureza humana.

Mas há aprendizados além da Boeing e do setor de aviação. Enquanto as investigações ainda estão em andamento, ficou claro que ambos os incidentes foram um caso de humanos lutando contra um computador teimoso e perdendo. Com os computadores controlando uma parcela cada vez maior de nossas vidas, mesmo décadas nessa revolução tecnológica, enfrentaremos computadores cada vez mais em papéis em nossas vidas, onde eles não apenas assumem tarefas manuais e entorpecentes, mas controlam decisões que têm impacto em nossas vidas. Às vezes, grandes decisões de impacto. Às vezes até decisões de vida ou morte. Decisões que nem sempre acertam. E agora? Como você discute com um computador quando está convencido de que o computador está errado? Ligue para o supervisor? Existe alguém que possa substituir o computador? Como o bom senso pode prevalecer neste ambiente?

À medida que os computadores assumiram tarefas de trabalhadores de nível mais baixo, seja a linha de check-out ou em funções de escritório administrativo de todos os tipos, as expectativas e o treinamento desses trabalhadores diminuíram. Estamos terceirizando processos, interpretação de dados e fluxo de trabalho para os computadores e estamos deixando apenas a última milha para os humanos restantes. Isso funciona muito bem, se tudo se encaixa perfeitamente na tabela de fluxo de trabalho usada pelos designers de software. Mas e se isso não acontecer? O atendente está autorizado a tomar uma decisão? O funcionário é treinado para tomar uma decisão? O atendente é capaz de substituir o computador? Em muitos casos, a resposta é não. O computador não entende o bom senso e não escuta a pessoa que pode.

De volta à Boeing por segundo: há dois rivais no topo da indústria da aviação – a Boeing e a Airbus. Por décadas, eles seguiram diferentes filosofias no design de aeronaves. A Boeing vem de uma época em que os aviões ainda tinham todos os controles mecânicos de cabos e polias e a Airbus uma entidade relativamente nova. Nos aviões da Boeing, os computadores ajudaram o piloto, mas o piloto estava no controle – até agora. Aviões da Airbus desde o início foram projetados com o computador supervisionando as decisões dos pilotos e possivelmente tendo a última palavra. O sistema MCAS implicado nos acidentes da Boeing foi o primeiro caso do computador trabalhando em segundo plano e sendo teimoso em um avião da Boeing. E os pilotos não foram informados ou treinados para isso.

Todo o software precisa ser testado. E todo o software tem erros, caso contrário nunca teríamos que instalar atualizações de segurança e correções urgentes. Se o computador toma decisões de vida ou morte e também tem a última palavra, a barra de testes aumenta. Isso tem implicações culturais em termos de orçamento, cronograma e quem pode dizer “ainda não pronto”. A Airbus estaria bem posicionada depois de muitos anos projetando aviões com um alto grau de influência computacional. A Boeing pode ter sido pego de surpresa nessa frente, não sendo preparado culturalmente para esse tipo de teste de software.

Eles aparentemente foram pegos de surpresa pela taxa de falha de sensores que deveriam ter levado a salvaguardas mais altas, e julgado erroneamente não as funções individuais do sistema, mas o impacto cumulativo após múltiplas reconfigurações. Exatamente o tipo de coisa que é difícil de testar, porque vai além do fluxograma organizado e, em vez disso, abrange interações complexas do sistema. [baseado no NY Times reportando]

O problema é que, na programação tradicional, o ser humano divide o problema em muitos pequenos passos e decisões do tipo “se-então-senão”. Em seguida, o programa é escrito para percorrer essas etapas em ritmo acelerado. Depois que o programa é escrito, ele deve ser testado com tantos cenários quanto possível e verificado se o resultado pretendido ocorre.

Problema A é que isso é muito complicado e demorado. Então, muitas vezes apenas uma fração disso pode ser feita, medida como cobertura de teste. O resto é deixado para a esperança, confiança e acaso. E na maioria dos casos, se algo for esquecido, há sempre uma atualização de software a algumas semanas de distância….


Advertisement