CĂłdigo ruim, processo de construção excessivamente complicado, tecnologias desatualizadas, linguagem de programação terrĂvel - todos esses problemas, e muitos outros, acompanham todo projeto grande suficientemente bem-sucedido, qualquer processo de desenvolvimento de software em qualquer organização. Como mostra a prática, na maioria dos casos, a situação sĂł piora com o tempo - pequenos inconvenientes se transformam em desagradáveis ​​“caracterĂsticas do nosso trabalho”, as pontuações aumentam constantemente durante o planejamento de tarefas e a qualidade do produto acabado começa a sofrer. O toque final neste quadro Ă© o nĂŁo cumprimento de prazos e planos devido Ă impossibilidade de depurar a funcionalidade, ou mesmo de entregá-la ao ambiente de trabalho. Muitas vezes, nessas situações, dizemos que a dĂvida tĂ©cnica se acumulou.
Essa dĂvida surge de forma totalmente natural e persegue todos os sistemas, por mais bem-sucedidos que sejam, quando há o prĂłprio produto, seus usuários, canais de comunicação com eles. NĂŁo importa se o produto Ă© vendido diretamente, ou se Ă© uma parte auxiliar da atividade da empresa, Ă© importante que esteja em operação há muito tempo. Os usuários desejam obter uma nova funcionalidade (talvez atĂ© paguem por ela), a administração quer disponibilizá-la aos usuários o mais rápido possĂvel, pois o departamento de desenvolvimento, sob pressĂŁo dos prazos, implementa as mudanças necessárias. O processo se repete muitas vezes e, mais cedo ou mais tarde, alguĂ©m dirá em voz alta - “parece que temos uma dĂvida, talvez tĂ©cnica!”
Todos começaram a notar que cada nova tarefa Ă© mais difĂcil que a anterior, e isso nĂŁo Ă© mais um acidente, a complexidade está crescendo exponencialmente. Existem locais “frágeis” no cĂłdigo que Ă© melhor nĂŁo tocar, na maioria das vezes defeitos de usuários e alarmes do sistema de monitoramento do ambiente de trabalho “chegam”. Em primeiro lugar, as iniciativas para introduzir novas tecnologias e práticas destinadas a melhorar a qualidade do produto como um todo sĂŁo adiadas e, em seguida, completamente esquecidas. Forma-se a ideia geral de que algo está errado, começa a busca dos motivos do que está acontecendo e de quem Ă© a culpa. Claro, nĂŁo há nada de bom neste estado de coisas, ainda mais - o negativo começa a envenenar o clima da equipe.
, , — , , , , , , , , , , .
, , , , , , . , — , ? , .
, . , . , , , - — , ? , ? ? , ? . , , , , — , . — .
— , , , , . , , . — . , IDE , , . .
— , :
- , ? - , .
- - , - , .
- , , .
- , .
- , , , , .
- - , , .
- , - , .
, — , , . . , — , , . , — , , .
. , , . — , . — . — ? .
“ ?”. ! , 100% — , - , , . , , , — 50/50, 60/40, . — , , .
, , — , , . ! ! ! — . .
, , — , .
, — , , , — . , — ? , , . , Flash — , , . , , — . , , , .
. — , , — , . , , . , … , .
, . , , , , , . , , - . , , , — , , , , “ ”, . ? , , . , , , — .
? — . , — . , , , . , .
— , : , , , .. , , . , , , . . , , , , , — , . , — , . — , . — , , , , .
— , , , . . , , , . , , , , — .
, , . — , , , . , . - Terra incognita, . - - , , , - ( ) . - , - , . , , .
, , . . , . , API. http- . — , - , offline-, - Selenium-, UI, . , API.
, , . — . , . API , , -, ? , ? , , — , — .
. , , , , — . , , — . , :
- ,
- ? - — . — , . “, ”: “ , , , , ”. , , “ ” , , , — , “” , . , ?
, — , API, .. — , - . . , , , , , , . , , .
, . — , , , . , , , , , , , , . , — , . , , - , , , , . , , , , , , — , . .
— , , . , , , , : , , . — , .
, , , , — , . , — , .
, , - . . — “”, “”. , , .
, , , . , , web-, , — , . , , , — “”? ? , ? , . , , ?
, , , — . Twitter, , , , , . , , . , Ruby on Rails, JVM, . .
, — , . , , , . , , , , . , (-, ) . , . , .
. , , . — , , , , . , . — , , — .
P.S.
Tudo o que foi escrito acima se aplica, Ă© claro, a produtos de software grandes e funcionais com uma base de usuários ativa. E apenas para os casos em que nĂŁo Ă© possĂvel simplesmente lançar uma nova versĂŁo do produto junto com a antiga, como foi, por exemplo, com o Basecamp e como Ă© com todos os chamados. Software "in a box".