sexta-feira, 15 de outubro de 2010

Diferença entre iterativo e interativo

Duas palavras muito comuns na área de TI, mas que constantemente são confundidas em seu significado e aplicação: iterativo e interativo.

Iterativo se refere a ciclo, repetição.

Uma Iteração é um ciclo ou uma etapa de uma rotina maior.

Interativo, se refere a relacionamento, comunicação.

Uma interação é uma ação mútua, uma entidade agindo sobre a outra ou vice-versa.

Por exemplo, no desenvolvimento de software o correto é se falar em desenvolvimento iterativo e incremental.

Desenvolvimento incremental é uma estratégia de planejamento estagiado, em que várias partes do sistema são desenvolvidas em paralelo, e integradas quando completas.

Desenvolvimento iterativo é uma estratégia de planejamento de retrabalho em que o tempo de revisão e melhorias de partes do sistema é pré-definido. A saída de uma iteração é examinada para modificação, e especialmente para revisão dos objetivos das iterações sucessivas.

Muitas vezes as pessoas se enganam e falam em desenvolvimento "interativo" e incremental, o que não está correto.

7 comentários:

  1. Trabalho como assistente administrativo na expedição de uma grande empresa de transportes, mas conheço muitas pessoas na área de TI da mesma.
    Certa vez fui convidado para uma conversa nesse setor e, como já havia observado a diferença entre os vocábulos iterativo e interativo na web, percebi na ocasião que o palestrante do TI cometera o erro aqui exposto, utilizando sempre a palavra interativo onde deveria usar o vocábulo iterativo. A maior complicação de tudo, era que durante o período que esse rapaz ficou na empresa, não aceitava muitas dicas no âmbito de sua função, o que, em certas ocasiões, complicava em parte outros setores da empresa.

    ResponderExcluir
  2. Questão de concurso considerada certa (CESPE - 2012 - TRE-RJ - Técnico Judiciário):

    A metodologia scrum prega que a equipe complete e entregue partes do produto final constantemente ao final de cada interação. Essa interação deve ser curta e possuir tempo de execução definido previamente.

    Obviamente quem elaborou a questão não sabe o conceito explicado por Vossa Senhoria.

    ResponderExcluir
  3. Acho que o amigo Marc Fast Jobs poderia ter aprofundado um pouco mais a discussão para não deixar a aparência de que o "desenvolvimento interativo" não existe, ou pior, que o termo interação não seja aplicado à TI.
    O que foi explicado no artigo não está incorreto, diria que incompleto. Analise. Quando o desenvolvimento de software é compartilhado por uma equipe de desenvolvedores, porque não dizer que seja um "desenvolvimento interativo"? Neste caso, poderia inclusive ser interativo, iterativo e incremental.
    Por outro lado, a questão do concurso analisada pelo Sr. Harris realmente apresenta um erro de grafia. O próprio enunciado já sugere uma 'iteração' quando diz que "... a equipe complete e entregue partes do produto final...".
    Analisando um pouco mais, poderíamos afirmar que os conceitos podem ser ainda sobrepostos ou entrepostos, se considerarmos que podemos ter várias interações em uma única iteração, e vice-versa.
    Enfim, é uma diferença que sintaticamente parece bem efêmera, mas quando analisada semanticamente percebemos que a distância entre elas é bem maior.

    ResponderExcluir
    Respostas
    1. Jander,

      Excelente análise a sua. Realmente em uma "iteração" de desenvolvimento existem "interações" entre os diversos envolvidos. O que eu quis na verdade, foi reforçar que muitas vezes o termo "interação" é utilizado de forma equivocada.

      Excluir
    2. Na verdade, o seu exemplo também não está muito correto.
      O que você descreveu é desenvolvimento "colaborativo" e não interativo.
      Interatividade não se aplica ao desenvolvimento em sí, mas às partes envolvidas no mesmo. Um desenvolvedor interage com outro virtualmente - através de n ferramentas, seja quais forem - ou pessoalmente, tendo em vista o processo como um todo; Todavia, ao que diz respeito ao seu código em sí, a "interação" que existe é com a interface do software/ferramentas que o mesmo estiver usando para tal desenvolvimento e isso não pode ser chamado de "desenvolvimento interativo".
      De modo geral, todo processo é "interativo" entre as partes tão logo aja interação entre elas; quando se existe "ação e resposta", por assim dizer. Como o sr.Marc falou, "interações dentro de iterações", etc...
      Portanto, "desenvolvimento interativo" como você coloca, simplesmente não existe mais do que como um termo vazio e que não se aplica dessa forma.

      Excluir