Você provavelmente não vai gostar disso ... mas aqui vai ...
Estou trabalhando para corrigir alguns dos erros como uma maneira de entrar no "loop" e me tornar um colaborador regular do projeto. O problema é que acho que descobri uma falha de design fundamental que está causando um dos erros nos quais estou trabalhando.
Não, não, você não fez. Se você fez, você não seria tão hesitante sobre isso. O fato de você não ter certeza sobre a "falha fundamental do design" significa que você não descobriu uma. Ao tentar apontar o erro de outra pessoa, não é necessário nenhum amigo para você usar superlativos (como "fundamental").
O que você pode ter descoberto é um design um pouco melhor para o problema que está enfrentando. Você provavelmente deve testá-lo completamente - já que você é novo no projeto, há uma chance melhor do que nunca de você não ter idéia do que está falando.
Mas eu sinto que, se eu colocar isso na lista, vou parecer arrogante
Chamar isso de "falha fundamental de design" definitivamente parecerá arrogante. Aliás, nem mesmo apontar que pode ser um bug é a melhor idéia. Se você não sabe de fato (e pode fazer backup) de que é um problema, é necessário fazer humildemente perguntas e pesquisas até entender completamente . Melhor do que quem você está tentando convencer.
... e algumas das discussões que tive sobre o assunto estão chocando algumas pessoas. Como devo fazer isso?
Pare. Esta não é uma questão moral, e não está matando ninguém (presumo). Se você pretende ser um membro de longo prazo do projeto, primeiro deve ganhar confiança antes de questioná-los. Corrija os bugs, faça um trabalho incrível (de acordo com as métricas que o grupo valoriza), projete alguns recursos e ganhe um assento na mesa.
Então, sem apontar os dedos ou chamar nada de quebrado, apresente humildemente uma sugestão para melhorar o design do grupo. E é melhor você ter pensado em todas as consequências e soluções para elas, ou será abatido por ser "ingênuo". Esteja pronto para uma discussão sobre por que seu design é melhor. Esteja preparado para perder e perder graciosamente.
Se a sua ideia for realmente melhor, ela será aceita pelo grupo (embora talvez não seja pelo designer original), o grupo não se importa, ou o grupo é estúpido. Nos dois últimos casos, por que você gostaria de fazer parte do grupo?
...
Se você é capaz, a alternativa é apenas codificar a maldita coisa de maneira tão brilhante que eles tremerão de espanto com suas proezas de codificação e não terão escolha a não ser aceitar a simplicidade elegante e a verdade eterna do seu design. Desenvolvedores fazer competência respeito, mas você tem que ter cuidado - o castigo para a incompetência (ou arrogância injustificada) é bastante grave. Já que você está fazendo essa pergunta, acho que a rota de arrogância brilhante e descarada não é realmente uma opção. ;)