• Aucun résultat trouvé

FPU Registers

Dans le document 1. Introduction to the MultiTitan (Page 46-49)

List of Figures

Reciprocal 16 bit reciprocal approximation 3 Figure 1-1: FPU Functional Units

1.3 FPU Registers

A cocriação aplicada ao desenvolvimento de software está próximo do conceito da cocriação no desenvolvimento do produto que foi o campo em que o conceito de cocriação germinou. A cocriação não se aplica apenas aquilo que é tangível, palpável, físico. Entretanto, podem ser incluídos nessas perspectivas os serviços, eventos, organizações e ideias. É por meio das ideias e do processo colaborativo que um produto pode ser cocriado (Las Casas, 2014).

Toda experiência com um produto é algo coletivo e social, nunca um ato isolado. Com isso, as experiências individuais de cada consumidor personalizam um produto e o tornam único para cada um, não obstante a experiência coletiva do produto o torna mutável dada a observação múltipla do uso. A experiência e/ou o feeedback do consumidor com o produto por si só não garante a cocriação. As sugestões e ideias precisam ser testadas, viabilizadas e aceitas, portanto não se pode atribuir a cocriação de um novo produto apenas à ideia de um cliente (Las Casas, 2014). O desenvolvimento de software começa com uma

ideia que será trabalhada, refinada e analisada até ser transformada no software. A área de desenvolvimento de software tem uma tendência natural à cocriação, como se verifica nos projetos de desenvolvimento de software livre (Viana & Las Casas, 2014).

Foi feita uma revisão focalizada com objetivo de selecionar os estudos que abordam a cocriação no desenvolvimento de software. O protocolo de busca e os detalhes da revisão podem ser vistos no apêndice III. A Figura 18, a seguir, mostra o ano de publicação, autor(es), título e principais resultados dos dez estudos identificados.

Ano Autores Título Principais resultados

2010 Iivari

Discursive

construction of 'user innovations' in the open source software development context

Os desenvolvedores adotam um discurso autoritário, são os decisores finais e se posicionaram como “simpático mas autoritários”. Os usuários ocupam posições importantes de cocriadores e cocultivadores mas não tem tanto poder decisório. Um fórum de discussão permitiu aos usuários coletivamente afirmar, discutir, fazer sentido, refinar, condensar e contestar as suas ideias.

2011 Babb e Keith Co-creating value in systems development: A shift towards service-dominant logic

É feita uma assimilação do conceito da cocriação com o de métodos ágeis no desenvolvimento de software. Os métodos ágeis representam um balanço em um pêndulo em resposta a mudança paradigmática e envolvem os clientes. A escolha do método de desenvolvimento de sistemas inclui a escolha de uma técnica que leva em consideração risco e incerteza inerentes à tarefa ambiente, além de valorizar a cocriação com o cliente.

2011

Nakki, Koskela e Pikkarainen

Practical model for user-driven innovation in agile software development

Os autores apresentam um modelo composto pelas seguintes etapas: identificação dos usuários principais, geração da ideia, design e desenvolvimento do software. Os usuários participaram ativamente do processo de design e tiveram poder de decisão sobre a solução. A ferramenta online adotada mostrou ser eficaz para envolver os usuários os quais gostaram do aspecto social da geração de ideias e de ser capazes de compartilhar seus próprios desejos e influenciar futuros produtos.

2012 Fjeldstad, Snow, Miles & Lettl The architecture of collaboration

O trabalho mostra as mudanças geradas pela era da colaboração e cocriação nos mecanismos de hierarquia e coordenação. É proposto um esquema baseado em: (1) atores que possuem capacidades e valores para se auto organizar; (2) lugares comuns onde os atores acumulam e compartilham recursos; e (3) protocolos, processos e infraestruturas que permitem a colaboração multi atores. O caso do Linux demonstra a força da colaboração de fonte aberta entre milhares de desenvolvedores voluntários pode criar software sofisticado e de alta qualidade.

2014 Kumar, Lokku e Zope An approach for software architecture by understanding value requirements, developing value proposition, and subsequently realizing value

É proposta uma abordagem de arquitetura de software que inclui a identificação da necessidade de arquitetos para compreender os processos de criação de valor. É criada uma separação de valor e preocupações de qualidade em todo os níveis por meio de estruturas adequadas para a realização de valor e estabelecendo rastreabilidade entre a compreensão de valor, proposição de valor e valor de realização.

2016 Demirezen,K umar e Shetty

Managing Co- Creation in

Foram utilizadas medidas quantitativas para avaliar o resultado de um projeto de cocriação, tais como os níveis

Information

Technology Projects: A Differential Games Approach

de esforço de equilíbrio do cliente e do fornecedor, bem como os termos de pagamento ótimos e o valor gerado na colaboração. Foi constatado que os níveis de esforço diminuem à medida que o projeto progride mesmo são descontados lucros e custos ou considerado que o valor unitário da saída é alto nas fases posteriores do projeto.

2016 Suerdem e Oztaysi Collaborative Requirement Priorization for an E- Recruitment Platform for Qualified but Disadvantaged Individuals

Foram identificadas as características essenciais para cocriação de uma plataforma de recrutamento eletrônico para pessoas desfavorecidas. Optou-se pelo o uso do método de tomada de decisão Analytic Hierarchy Process (AHP) para estabelecer pesos e critérios dos requisitos e necessidades dos stakeholders.

2016 Augusto, Kramer, Alegre, Covaci e Santokhee Co-creation of smart technology with (and for) people with special needs

Foi utilizada, uma metodologia de codesign iterativa que reuniu todos os stakeholders (usuários primários,

cuidadores, terapeutas e desenvolvedores) para codesign de uma ferramenta para pessoas com síndrome de down. O envolvimento dos stakeholders foi algo que levou o projeto desde os primeiros estágios.

2017 Noordman, Drisenar, Bruiness, Dulmen ListeningTime; participatory development of a web-based preparatory communication tool for elderly cancer patients and their healthcare providers

Um conjunto de atores participaram do processo de construção de uma ferramenta para pacientes portadores de câncer, desde a definição do conceito da ferramenta até a realização dos testes para entrega final. Alguns pacientes se tornaram "copesquisadores" ou "parceiros de pesquisa" e tiveram um papel decisivo. Enquanto que a maioria dos pacientes apenas forneceram informações durante algumas etapas e tiveram um papel mais aconselhador.

2017 Poretski e Arazy Placing Value on Community Co- creations: A Study of a Video Game 'Modding' Community

O estudo avaliou quantitativamente a eficácia dos esforços de empresas que produzem games para aumentar as vendas utilizando atividades de cocriação nas comunidades de usuários e jogadores. A empresa que oferece um conjunto oficial de ferramentas para modificação como fóruns de modificação, guias e tutoriais é capaz de encorajar as atividades de cocriação da comunidade de usuários e jogadores e aumentar as vendas do produto base. Figura 18. Estudos sobre cocriação no desenvolvimento de software

Nota. Fonte: Elaboração própria, 2019

Após a leitura integral, a identificação dos resultados das pesquisas foi criada uma nuvem de palavras com os resumos e palavras chaves dos 10 artigos (figura 29). A frequência de ocorrência das palavras é o aspecto mais importante da nuvem. Para uma melhor visualização da nuvem foram adotadas regras de exclusão manual de palavras2. Conforme pode ser visto na figura 19, a palavra “inovação” está em destaque na nuvem. Os artigos

2 Regras de exclusão das palvaras:1) exclusão de palavras que tiveram frequência de ocorrência igual a 1 e 2; 2) exclusão das palavras que representam as temáticas da revisão, tais como “co-creation”, “creation”, “software”, “systems”, “value”; “development”; “develop”; “developing”; “developers” 3) exclusão de adjetivos como “new”, “well”, “important”; 4) exclusão de verbos como “can”, “used”, “existing”, “provide”, “using”, “use”, “creating”; 5) exclusão de números como “one”, “four; 6) exclusão de palavras que remetem a estrutura do resumo dos artigos como “study”, “paper”, “methodology”, “theoretical”, “keywords”, “framework”, “approach”, “implications”, “researchers”, “methods”, “model”, “organizations”e 6) exclusão de outras palavras que não são significantes para a nuvem como “levels”, “needs”, “conceptualization”, “structures”, “questions”, “increase”, “context”, “case”, “process”, “patients” e 7) exclusão de palavras similares, por exemplo “architect”, “architecting”, “architectural”; “tools” que está associada a “tool”.

consideram a cocriação como uma inovação e quando está incorporado ao desenvolvimento de software pode gerar novidades e diferencial competitivo. A palavra “projeto” também está em evidência pois o desenvolvimento de software remete a um projeto que tem início, meio e fim. A palavra “processo” que também aparece em destaque na nuvem refere-se às atividades e etapas do desenvolvimento de software. As palavras “end-users”, “users” e “client” remetem a participação ativa de clientes e usuários na cocriação do software.

Figura 19. Nuvem de palavras cocriação e desenvolvimento de software Nota .Fonte: Elaboração própria (2019)

Além disso, outra palavra em destaque é design que reporta a uma vertente da escola do design que envolve o uso de protótipos e diagramas para construção do software em conjunto com o cliente. As palavras “agile” e “scrum” evidenciam o uso de métodos ágeis no desenvolvimento de software que é visto como eficaz para fornecer uma estrutura adequada para o envolvimento do usuário na cocriação. A palavra “collaboration” ressalta o cerne do processo cocriador que é a cooperação entre vários indivíduos. A palavra “tool” remete ao uso de ferramentas de colaboração, como fóruns, para auxiliar na comunicação e compartilhamento de atividades entre as equipes do projeto e está presente em grande parte dos estudos selecionados. A sigla “OSS” que significa o “open source software” e mostra que a cocriação se manifesta desenvolvimento de softwares livre.

A palavra “social” que aparece em destaque nos estudos junto da palavra “media” remete ao uso das mídias sociais para alavancar os processos colaborativos de desenvolvimento de software. Assim, esta tese considera a cocriação no desenvolvimento de

software como um processo inovador que envolve clientes, usuários e outros atores na

geração de ideias, criação de protótipos e soluções com o apoio de ferramentas de colaboração e uso de métodos ágeis. Percebe-se que esses conceitos estão na interseção da temática estudada e são abordados pelos estudos selecionados. A figura 20 ilustra isso.

Figura 20. Interseção cocriação e desenvolvimento de software Nota Fonte: Elaboração própria, 2019.

Iivari (2010) analisou o desenvolvimento de uma aplicação para software livre em uma comunidade online. O processo de desenvolvimento do software livre foi caracterizado como um processo de cocriação contínuo, em evolução e ininterrupto, incluindo sugestões dos usuários, suporte dos usuários entre si, negociações entre os usuários e desenvolvedores, constante aprimoramento incremental das soluções e formação contínua de identidade entre os participantes. Os usuários mostram-se assistentes, amigáveis, dispostos a contribuir com melhorias e atuar nas fases de desenvolvimento. Por outro lado, os desenvolvedores estavam posicionados como os implementadores das inovações do usuário, tomadores de decisão finais e com autoridade para invalidar ou aceitar as inovações. A voz dos usuários pode não ser ouvida, cabe ao desenvolvedor ter a decisão final e o poder de estabilizar o artefato e os significados ligados a ele.

Babb e Keith (2011) refletiram sobre as mudanças no mercado de desenvolvimento de

software e reconheceram que a estruturação de valor no desenvolvimento de sistemas não é

mais um processo gradual. Em vez disso, o valor é cocriado continuamente entre o provedor de desenvolvimento de sistemas e o cliente. Os autores traçaram um paralelo entre os métodos ágeis e a cocriação e mostram que os elementos dos blocos de construção da cocriação descritos por Prahalad e Ramaswamy (2004a) estão presentes no manifesto e nos princípios ágeis. Os autores defendem o uso de metodologias híbridas de desenvolvimento e a escolha de uma técnica ajustável ao risco e à incerteza inerentes ao ambiente de tarefas.

Nakki et al. (2011) reforçam a ideia sustentada por Babb e Keith (2011) e mostraram que o desenvolvimento de software ágil fornece uma estrutura adequada para o envolvimento do usuário os quais participaram ativamente do processo de design, tiveram poder de decisão,

se envolveram na geração de ideias, compartilharam seus próprios desejos e influenciaram os produtos futuros. As ferramentas de cocriação online são o principal facilitador do desenvolvimento e permitem uma função mais ativa dos usuários e não exigem comprometimento em tempo integral e podem, portanto, motivá-los a fazer contribuições maiores. Por outro lado, é necessário um esforço maior dos desenvolvedores para traduzir a entrada do usuário em requisitos do sistema e mediá-los ao longo do desenvolvimento. Os autores propuseram um modelo para cocriação de software composto por quatro etapas, são elas: 1) identificação dos usuários principais, 2) geração da ideia, 3) design e 4) desenvolvimento do software.

Fjeldstad et al. (2012) propuseram um modelo orientado ao ator composto por três elementos principais: (1) atores que têm capacidades e valores para se auto-organizar; (2) recursos acumulados e compartilhados pelos atores; e (3) protocolos, processos e infraestrutura que permitem a colaboração de múltiplos atores. O modelo foi estudado em uma organização que presta serviços na área tecnológica e no desenvolvimento de software livre. O esquema proposto ressalta elementos da teoria organizacional. Um dos elementos é o papel dos incentivos e valores na colaboração multipartidária. Também foi estudado o papel da hierarquia organizacional. Os autores argumentam que o achatamento das hierarquias favorece a colaboração.

Kumar et al. (2014) também propuseram uma abordagem de proposição de valor para a definição da arquitetura do software que é baseada na cocriação de valor. A estrutura criada é baseada em insights obtidos ao fazer perguntas que precisam ser respondidas para que o

software tenha sucesso. Essas quatro perguntas são: 1) Quais são os benefícios, como

descobrir, diagnosticar e entender esses benefícios? 2) Quais são as formas para alcançar esses benefícios? Como se pode derivar esses portadores de valor? 3) Quais são os benefícios líquidos acumulados que devem ser entregues pelo software? 4) Como se compõe e entrega o

software para realizar esses benefícios? O ponto de partida é a identificação dos stakeholders.

Para que o software seja benéfico para eles, é necessário descobrir os benefícios em termos de utilidade em satisfazer a necessidade, a importância relativa da necessidade, disponibilidade e o custo de propriedade. O modelo inclui a identificação da necessidade dos arquitetos de software compreenderem processos de criação de valor, criando uma separação de interesses de valor e qualidade entre níveis.

Demirezen et al (2016) estudaram a relação entre cliente e fornecedor em ambientes de cocriação em projetos de tecnologia de informação. Foi constatado que os clientes se envolvem nos projetos de TI no estágio de definição do problema, na seleção da solução e na

implementação da solução. A relação entre o cliente e o fornecedor é contínua e dinâmica até o final da vida útil do serviço ou software, não apenas durante o desenvolvimento. Os autores se concentraram na mensuração do esforço total requerido na colaboração e no resultado final do projeto.

Suerdem e Ahmet (2016) estudaram a participação dos usuários finais na cocriação de um sistema para recrutamento online voltado para pessoas em condições de vulnerabilidade social. Os autores apresentaram a participação dos usuários na primeira fase de desenvolvimento de software que é a ideação e seleção do conceito. Foram utilizados seis passos: 1) Identificação dos grupos-alvo; 2) Determinação dos problemas de emprego do grupo-alvo; 3) Determinação das Boas Práticas; 4) Determinação dos requisitos potenciais do sistema com o método de “brainstorming”; 5) Filtragem dos requisitos; 6) Priorização das necessidades do sistema, nessa fase foi utilizada a técnica de tomada de decisão multicritério conhecida por Analytic Hierarchy Process (AHP) para identificar os requisitos junto aos

stakeholders e atribuir a importância relativa aos requisitos identificados. Ao final, foram

identificados seis requisitos imprescindíveis ao sistema e foi atribuído a importância relativa a cada um deles.

Augusto, Kramer, Alegre, Covaci e Santokhee (2016) desenvolveram e avaliaram um método que combina o desenvolvimento de software com atividades de cocriação para o desenvolvimento de ambientes inteligentes. O processo é iterativo, centrado no usuário e composto por três grandes fases que são refinadas continuamente com base no feedback dos

stakeholders, são elas: 1) Escopo inicial, em que são definidos os requisitos em conjunto com

os stakeholders e é feito um design e protótipo inicial; 2) Desenvolvimento principal, em que o design é construído, os stakeholders participam ativamente e suas contribuições são valiosas para a realização de teste e correções; 3) Validação e instalação do software, em que são feitos os serviços de validação do software e dos equipamentos. Os stakeholders foram divididos em categorias, tais como: usuários primários, usuários secundários, usuários terciários e outros.

Noordman, Driesenaar, van Bruinessen e van Dulmen (2017) mostraram o processo de desenvolvimento de uma ferramenta web para pacientes idosos com câncer e profissionais de saúde oncológicos. Foi utilizada a ferramenta de desenvolvimento ágil Scrum. Vários

stakeholders estiveram envolvidos no processo, dentre eles os usuários, desenvolvedores e

pesquisadores. Os usuários tiveram um papel mais consultivo que decisório durante o desenvolvimento, participaram mais do início do processo pois tinham dificuldade de visualizar e imaginar a ferramenta nos próximos estágios. Ao contrário dos autores que

valorizam os métodos ágeis para cocriação de software, Noordman et al. (2017) argumentam que o Scrum pode não ser o melhor método para desenvolver uma ferramenta inovadora baseada na cocriação devido ao foco excessivo no desenvolvimento rápido e no aprendizado da prática.

Poretski e Arazy (2017) analisaram quantitativamente o envolvimento da comunidade no desenvolvimento de “games”. Foram analisados os papéis de três stakeholders da indústria de videogames, são eles: a empresa que produz o software, a comunidade de usuários/ desenvolvedores e os consumidores do produto final. A empresa é capaz de incentivar as atividades de cocriação da comunidade de usuário/desenvolvedor oferecendo “kit” de ferramentas, modificando fóruns, guias e tutoriais. Também foi comprovado que as modificações geradas pela comunidade são um preditor significativo de vendas de produtos básicos. Os autores incentivam os gerentes de empresas produtoras de videogames a fornecer suporte prático para a comunidade, compartilhar o acesso à informação, fornecer ferramentas tecnológicas para a produção comunitária e estabelecer a plataforma social para colaboração. Além disso, sugerem o desenvolvimento de jogos modulares, com design aberto e não- lineares que naturalmente envolvem a comunidade e são propícios à cocriação.

Outros estudos que não foram alcançados pelo string de busca utilizado foram acrescentados manualmente e abordam aspectos específicos da cocriação no desenvolvimento de software. Uma das fases da cocriação que é abordada recentemente pela literatura de engenharia de software é o “crowdtesting” como uma alternativa para o controle de qualidade de software. O crowdtesting parece ser uma solução promissora para lidar com os problemas de dinamicidade do ambiente, ciclos de vida curtos, pressão de custos e um mercado de

hardware cada vez mais rápido e segmentado. O crowdtesting é uma aplicação específica de crowdsourcing no domínio de desenvolvimento de software e envolve um grupo

diversificado de pessoas, que estão geograficamente dispersas, conectadas pela internet e testam software em ambientes reais usando seus próprios dispositivos. Ele pode ser aplicado em vários tipos de testes, mas até agora as pesquisas aplicam em cenários de testes dinâmicos onde um código escrito é executado e examinado pela multidão. Os tipos mais comuns de teste são o de verificação, validação e o teste de aceitação (Leicht, Blohm, & Leimeister, 2016).

O estudo de Leicht et al. (2016) mostrou a adoção de crowdtesting em seis organizações e evidenciou que para a prática efetiva do crowdtesting é necessária adequação de estruturas de processo e tarefas e o envolvimento da multidão em estágios anteriores de desenvolvimento, como a avaliação do projeto e a elicitação de requisitos.

Machado, Kroll, Priladnicki, Souza e Carmel (2016) estudaram o crowdsourcing na indústria brasileira de software e identificaram várias áreas de pequisa, que são: engenharia de software experimental, que inclui o estudo das barreiras que contribuem para o processo de código aberto; teste de software e os modelos de crowdtest para empresas; engenharia colaborativa de software, que abrange o desenvolvimento de ferramentas colaborativas; plataforma de ecossistemas de software, que aborda o desenvolvimento de software distribuído e participação aberta (crowd); programação colaborativa distribuída, que inclui o estudo da motivação, coordenação e compartilhamento de conhecimento. Os autores entrevistaram participantes de plataforma Crowdtest.me, pioneira de crowdtest no Brasil, e da

WeDoLogos, pioneira no crowdesigners. Foi constatado que um dos maiores problemas no crowdtest é o controle de qualidade dos resultados, o que requer um maior rigor na seleção de

fornecedores. A falta de definição de processos é outro desafio enfrentado.

Esses estudos mostraram uma nova perspectiva em que o valor é cocriado continuamente entre o fornecedor de desenvolvimento de sistemas e o cliente ao longo dos estágios dos ciclo de vida do desenvolvimento dos sistemas. No modelo tradicional de desenvolvimento, o cliente não era um parceiro, em vez disso, o cliente era um recebedor semi-passivo de bens e estava mais isolado das fases de requisitos, análise e design. Nessa nova perspectiva levantada nos estudos, o cliente e outros stakeholders são vistos como

Dans le document 1. Introduction to the MultiTitan (Page 46-49)

Documents relatifs