Contamos qual é a essência da lei, como ela se manifesta e o que acontece quando essa lei não é levada em consideração no design e desenvolvimento de sistemas de TI.
Fotos - Spencer - UnsplashNo livro “Para si mesmo, um MBA. A autoeducação é 100% ", escrita por Josh Kaufman (Josh Kaufman), a lei de Gall é
dada na seguinte redação:
“Qualquer sistema complexo de trabalho é desenvolvido com base em um sistema simples de trabalho. Sistemas complexos criados a partir do zero nunca funcionarão no mundo real, porque durante o processo de desenvolvimento eles não foram influenciados pelos fatores de seleção inerentes ao ambiente. ”
Isso significa que uma abordagem sistemática deve ser aplicada ao desenvolvimento de qualquer projeto - para passar do simples ao complexo. Em outras palavras, você precisa começar com a criação de sistemas simples e avançar gradualmente em direção à sua complexidade, expandindo a funcionalidade e os recursos.
Um sistema simples geralmente significa um sistema que consiste em um pequeno número de elementos e não possui uma hierarquia. Um sistema complexo, pelo contrário, possui uma estrutura ramificada e um grande número de componentes interconectados.
Minuto da história
O autor da lei, John Gall, era pediatra de profissão, mas, nas horas vagas, pesquisava teoria dos sistemas. Em 1977, ele publicou o livro
Sistematização: Como os sistemas funcionam e como eles se deterioram . Nele, ele disse que, para controlar qualquer sistema, é necessário entender como os fatores ambientais afetam sua funcionalidade. Foi neste livro que
a lei de Gall foi formulada .
A lei ganhou fama graças à menção no livro "
Termos de Referência Estruturados ", escrito pelo desenvolvedor do sistema Ken Orr (
Ken Orr ) em 1981. Seu trabalho ganhou grande popularidade e
ainda é citado por autores da literatura moderna sobre análise de sistemas.
Algum tempo após a publicação do livro de Ken Orr, a regra de Gall estava "armada" com Grady Booch quando ele criou a
UML . Essa linguagem também traça o conceito de "do simples ao complexo": para construir um modelo abstrato do sistema, classes, tipos e interfaces individuais são usados.
Fotos - Isaac Smith - UnsplashA lei também se reflete em abordagens flexíveis para o desenvolvimento de software. Em particular, a regra se aplica à programação extrema (
XP ). Um dos principais conceitos dessa metodologia é a
facilidade de design . Ele afirma que um novo produto não deve ser projetado com antecedência e em sua totalidade. O planejamento deve ser realizado de forma iterativa, levando em consideração as necessidades em constante mudança (cliente e mercado).
Quando seguir a Lei de Gall
O exemplo mais impressionante para ilustrar a lei de Gall é a
World Wide Web . Ele se originou como um projeto local do CERN - a organização desenvolveu uma ferramenta para vincular documentos por meio de links de hipertexto. Mas com o tempo, a rede se expandiu com sucesso para uma escala global - seus recursos se expandiram, a estrutura se tornou mais complexa e "cresceu" com novos protocolos (por exemplo, HTTPS, que se tornou o desenvolvimento do HTTP).
O início do desenvolvimento com o
MVP (produto mínimo viável) possibilita testar rapidamente uma ideia e, se necessário, alterar a funcionalidade. Por exemplo, a primeira versão do serviço Uber
continha apenas duas funções simples: ligar para o motorista e pagar pela viagem com cartão de crédito. Com a ajuda deles, a equipe testou seu conceito, atraiu uma base de usuários e continuou a desenvolver o produto. Hoje, essas funções básicas se tornaram mais complicadas: agora é possível dividir a conta entre várias pessoas, rastrear os motoristas no mapa e efetuar pagamentos automáticos.
A lei de Gall ajuda a facilitar a interface do usuário para os usuários. Por exemplo, a primeira versão do aplicativo Dropbox tinha uma interface muito simples -
era uma pasta de arquivos comum. Segundo os desenvolvedores, esse recurso em particular tornou possível atrair um grande número de novos usuários - em poucos dias a lista de aplicativos para testes beta do Dropbox foi reabastecida em 70 mil. Funções adicionais e caixas de diálogo - como arquivos de coedição - começaram a aparecer mais tarde.
O que acontece quando esse padrão não é levado em consideração
Como exemplo de projeto, ao criar quais desenvolvedores devem conhecer a lei de Gall e levá-la em consideração, o padrão de tecnologia
CORBA geralmente é fornecido. Sua especificação era originalmente volumosa e continha um grande número de instruções. Devido à complexidade excessiva, o desenvolvimento do padrão foi realizado por um longo tempo, enquanto muitas de suas capacidades nunca foram realizadas na prática. Como resultado, o CORBA não foi amplamente utilizado.
Um exemplo de falha na implementação de produtos de software é o Digital Media Initiative (DMI), um projeto da BBC de 2008. Seu objetivo era criar uma plataforma de larga escala com ferramentas internas para edição de vídeo e armazenamento de conteúdo. A base do DMI estabeleceu imediatamente um grande número de especificações, que não foram implementadas na prática. O desenvolvimento durou cinco anos, mas nunca foi concluído. Primeiro, o empreiteiro foi abandonado pela empresa - Siemens - e depois pela própria BBC. No total, o DMI gastou 100 milhões de libras.
Um exemplo de uma implementação malsucedida da interface é o serviço
Google Wave . Era para combinar a funcionalidade de fóruns online, redes sociais, mensagens instantâneas e sistemas de controle de versão. Os criadores da plataforma assumiram que ela se tornaria uma forma universal de comunicação. Mas, na tentativa de substituir “tudo de uma vez”, a equipe de desenvolvimento sobrecarregou o aplicativo com várias funções. Como resultado, os usuários tiveram que lidar com os recursos da interface por um longo tempo. As dificuldades surgiram mesmo com a barra de pesquisa de serviço - para trabalhar com isso, você precisava conhecer tags especiais. O projeto foi desenvolvido de 2009 a 2010 - o sistema não atendeu às expectativas de desenvolvedores e usuários e o projeto foi cancelado.
Leitura relacionada:
Em
ITGLOBAL.COM, fornecemos uma nuvem privada e híbrida e oferecemos serviços destinados ao desenvolvimento da infraestrutura de TI dos clientes. Esperamos que você ache este material útil. O que você pode ler sobre nós e o que escrevemos sobre nós mesmos no blog corporativo: