• No results found

Manglende varslingsrutiner i under- under-liggende virksomheter

Barne-, likestillings- og inkluderingsdepartementet

4.8. Manglende varslingsrutiner i under- under-liggende virksomheter

Este é o cenário mais complexo de organização de uma equipa de desenvolvimento de software. Neste tipo de organização, os membros da equipa encontram-se todos geograficamente dispersos e trabalham em horários diferentes.

A dispersão geográfica e a não sobreposição dos horários de trabalho dificulta substancialmente o estabelecimento de fluxos de comunicação síncronos e de relações entre os membros. Estes factores têm um impacto negativo na qualidade da comunicação que é um factor determinante da qualidade do trabalho.

A comunicação face a face torna-se muito difícil, nomeadamente a presencial, porque envolve a deslocação de vários membros para um local de encontro comum. A comunicação informal é seriamente afectada pela distância das pessoas e pela dificuldade em estabelecer comunicação síncronas.

Este tipo de equipa tem a vantagem de possibilitar o aproveitamento dos melhores recursos humanos para a execução do projecto, independentemente da sua localização actual. As tarefas deverão caracterizar-se pela independência. Usando um processo de desenvolvimento clássico:

• Sistema de workflow para a definição, execução e controlo do processo de desenvolvimento adoptado;

• Sistema de correio electrónico para troca de mensagens assíncronas entre os elementos da equipa;

• Agendas electrónicas partilhadas que permitam aos elementos da equipa consultar a disponibilidade de cada pessoa e facilitar o agendamento de reuniões;

• Gestão e partilha electrónica de documentos; • Mensagens instantâneas;

• Grupos de discussão; • Vídeo-conferência.

• Sistema de correio electrónico para troca de mensagens assíncronas entre os elementos da equipa;

• Agendas electrónicas partilhadas que permitam aos elementos da equipa consultar a disponibilidade de cada pessoa e facilitar o agendamento de reuniões;

• Gestão e partilha electrónica de documentos; • Mensagens instantâneas;

• Grupos de discussão; • Vídeo-conferência.

Este tipo de equipa colocará uma ênfase muito maior na utilização das ferramentas de groupware que facilitam a comunicação assíncrona.

Capítulo 8

8 Conclusões

O objectivo deste trabalho foi o estudo de uma arquitectura de alto nível para um hipotético sistema de suporte ao desenvolvimento de software utilizando as tecnologias de groupware e workflow. A definição deste sistema, naturalmente, só seria possível compreendidos os seus requisitos. Para o efeito foi analisado o processo de desenvolvimento de software, os tipos de actividades efectuadas e a forma como se organizam as equipas de desenvolvimento deste tipo de projectos.

O processo de desenvolvimento de software é um factor determinante para o sucesso de um projecto. O processo de desenvolvimento de software confere organização e estrutura ao trabalho efectuado durante o projecto. O processo define o tipo de actividades a executar, qual a sua sequência e os produtos resultantes de cada fase do projecto.

Não existe um processo de desenvolvimento de software ideal para todos os projectos, cada projecto é uma realidade própria e o processo deverá ser adaptado aos requisitos de qualidade pretendidos. Um projecto de maior dimensão com requisitos muito exigentes implicará a adopção de mais formalismos, no entanto um projecto mais simples poderá abdicar de carga burocrática ganhando agilidade e adaptabilidade.

Existem duas grandes abordagens ao processo de software: a abordagem clássica e abordagem ágil. A abordagem clássica baseia-se no fundamento de que o sucesso do projecto está intimamente relacionado com o processo adoptado. Esta abordagem coloca a ênfase no processo deixando para segundo plano a colaboração entre os membros da equipa. Os processos clássicos são estruturados e dotados de inúmeras formalidades a cumprir. Estes processos são adequados para projectos complexos, com um elevado grau de exigência de qualidade final do software.

A abordagem ágil defende que o factor determinante para o sucesso do projecto não é o processo, mas as pessoas e a forma como colaboram com o objectivo de desenvolver software. Os processos ágeis colocam a ênfase nas actividades de colaboração, comunicação e coordenação. A interacção entre os membros da equipa é elevada permitindo um constante ajuste do esforço individual e do projecto. Este tipo de processos

adequa-se a projectos de dimensão mais reduzida, com menores requisitos de rigor e em que o tempo de desenvolvimento deve ser o mais curto possível.

Independentemente do tipo de processo adoptado num projecto, o factor mais importante para o seu sucesso são as pessoas e a forma como se organizam em equipa. Existem inúmeras organizações possíveis de equipas de software, umas mais eficazes do que outras, e existem factores que determinam ou condicionam essa eficácia. É importante estruturar a equipa de projecto com pessoas competentes para o trabalho a realizar, mas também é importante organizá-las correctamente facilitando a sua colaboração.

Existem quatro classes de equipas de software de acordo com a divisão espaço/tempo. Existem requisitos de trabalho comuns aos quatro tipos de equipa, assim requisitos particulares. A adopção de um ambiente de suporte ao desenvolvimento de software permite aumentar a eficácia da equipa porque estabelece uma plataforma tecnológica comum de colaboração e comunicação.

O trabalho em equipa pode ser caracterizado em três dimensões: comunicação, colaboração e coordenação, e o trabalho no projecto é estruturado de acordo com o processo adoptado. Estes dois aspectos, equipa e processo, possuem características diferentes que não podem ser supridos pela mesma tecnologia. Por esta razão, consideraram-se duas tecnologias (groupware e workflow) para a definição do ambiente de suporte ao desenvolvimento. O trabalho em equipa foca-se na eficaz colaboração entre as pessoas, desta forma a componente de groupware pretende facilitar a interacção entre pessoas por meios tecnológicos. O processo foca-se na sequência de execução de actividades, sendo a componente de workflow o elemento tecnológico que permite definir um processo e as suas actividades, atribui-las a pessoas e controlar a sua execução.

A tecnologia de workflow é uma tecnologia ainda pouco difundida, mas em crescente adopção pelo mercado. Existem inúmeros tipos de sistemas de workflow, no entanto para um ambiente de suporte ao desenvolvimento de software pretende-se que o sistema de workflow seja altamente flexível e permite adaptar e modificar o processo durante a sua execução. Isto é necessário porque durante o desenrolar do projecto será necessário proceder a alterações do plano de actividades.

Groupware é a designação que engloba um conjunto vasto de tecnologias de comunicação e colaboração. Algumas das tecnologias de groupware, como por exemplo o e-mail ou as mensagens instantâneas, encontram-se bastante difundidas e o seu uso é corrente e habitual. As tecnologias de groupware possuem um elevado potencial porque

fornecem os meios que facilitam a interacção entre as pessoas, independentemente da sua localização geográfica.

O maior problema das tecnologias de groupware reside na dispersão das funcionalidades por vários programas, o que dificulta a adopção de todas as potencialidades. Idealmente, as várias funcionalidades de groupware deveriam estar disponíveis numa única interface coerente.

O ambiente de desenvolvimento de software aqui definido é construído recorrendo a duas tecnologias distintas: workflow e groupware, esta é uma hipótese, na nossa opinião, viável embora existam outras alternativas no mercado.

Ambientes como, por exemplo o Teamspace, baseados em tecnologia Web fornecem um conjunto básico de funcionalidades: lista de tarefas, mensagens instantâneas, fóruns de discussão, definição de planos de actividades, etc. numa única interface acedida por um browser. Este sistema tem a vantagem de possuir uma interface única (browser) para todas a funcionalidades, no entanto algumas das funcionalidades são pouco sofisticadas suprindo apenas as necessidades mais básicas. Por exemplo, é possível definir tarefas e atribui-las a pessoas da equipa, mas a modificação do processo é uma actividade penosa.

É mais comum as equipas de projectos de software adoptarem ferramentas de gestão de projecto, como Microsoft Project, para a definição do plano de trabalho e das actividades e recorrerem diariamente ao e-mail como meio privilegiado de comunicação assíncrona. O ambiente de suporte ao desenvolvimento de software descrito neste trabalho é superior a este cenário, pois permite suportar eficazmente os vários tipos de equipa independentemente do processo e organização adoptada.

Trabalhos futuros

Descreveu-se, neste trabalho, de forma abstracta um ambiente de suporte ao desenvolvimento de software. Seria um trabalho interessante investigar que tecnologias de workflow e de groupware existem disponíveis no mercado, avaliá-las e especificar o ambiente recorrendo a tecnologias concretas.

Durante um projecto de software forma-se um corpo de conhecimento, técnico e de negócio, muito importante e que deve ser preservado e disponibilizado. Este conhecimento é um activo importante que deveria ser gerido. Um trabalho futuro seria investigar as melhores estratégias tecnológicas para a sua captação e disponibilização, estas

funcionalidades deveriam estar integradas no ambiente de suporte ao desenvolvimento de software.

O gestor de projecto desempenha um papel extremamente importante na coordenação do trabalho da equipa e na gestão do relacionamento com entidades externas às equipas, cliente ou parceiros. A gestão do projecto é um esforço contínuo ao longo de todo o projecto e que possui características próprias. Seria interessante avaliar as necessidades da função gestão de projecto e procurar integrar no ambiente as soluções tecnológicas para essas necessidades.

9 Referências bibliográficas

[Abrahamsson02] Abrahamsson, P. et al. - Agile Software development methods:

review and analysis. Espoo: VTT Publications, 2002.

[Atwood95] Atwood, M. E. et al. - Facilitating Communication in Software

Development. Michigan: ACM, 1995.

[Bart95] Barthelmess, P.; Wainer, J. - Workflow Systems: a few definitions and a few

suggestions. COOCS: ACM, 1995.

[Boehm00] Boehm, B.; Basili, V. R. - Gaining Intellectual Control of Software Development. Computer: Vol. 33: nº 5 (2000), p.27-33.

[Bogia95] Bogia, D. P.; Kaplan, S. M. - Flexibility and Environment Control for

Dynamic Workflows in the worlds environment. Milpitas: ACM, 1995.

[Brereton99] Brereton, P. et al. - The Future of Software. Communications of the ACM. Vol. 42: nº 12 (1999), p.78-84.

[Brooks75] Brooks, F. - The Mythical Man-Month. 1ª edição. Addison-Wesley, 1975. 322 p. ISBN 0-201-83595-9.

[Buhrer03] Buhrer, H. K.. - Software Development: What is it, What it should be, and

How to get There. SIGSOFT: ACM, 2003.

[Carstensen01] Carstensen, P. H.; Nielsen, M.. - Characterizing Modes of Coordination. SIGGROUP: ACM, 2001.

[Cich98] Cichocki, A. et al. - Workflow and Process Automation Concepts and

Technology. Kluwer Academic Publishers, 1998. 136 p. ISBN 0-792-38099-1.

[Cockburn02] Cockburn, A.. - Agile Software Development. 1ª edição. Addison-Wesley, 2002. 256 p. ISBN 0-201-69969-9.

[Curtis88] Curtis, B.; Krasner, H.; Iscoe, N.. - A Field Study of the Software Design Process for Large Systems. Communications of the ACM, Vol. 31, nº 11: ACM, 1988.

[Curtis92] Curtis, Bill et al. - Process Modeling. Communications of the ACM, Vol. 35, nº 9. ACM, 1992.

[Deminors97] Deminörs, E. et al. - The Role of Teamwork in Software Development:

Microsoft Case Study. 23ª Conferência EUROMICRO: IEEE, 1997.

[Dumas05] Dumas, M. et al. - Process-aware information systems – Bridging people

and software through process technology. John Wiley & Sons, 2005. 432 p. ISBN: 978-

0-471-66306-5

[Ellis91] Ellis, C. A. et al. - Groupware some Issues and Experiences. Communications of

the ACM. Vol. 34: nº 1 (1991), p.39-58.

[Ellis95] Ellis, C. e Rozenberg, G.. - Dynamic Change within Workflow Systems. Conference on Supporting Group Work: ACM. 1995.

[Elm98] Elmagarmid, A.; Du, W.. - Workflow Management: State of the Art Versus

State of the Products. Workflow Management Systems and Interoperability. Springer

Verlag, 1998.

[Fayad97] Fayad, M. E. - Software Development Process: A Necessary Evil.

Communications of the ACM. Vol. 40: nº 9 (1997), p. 101-103.

[Fugetta00] Fugetta, A. - Software Process: A Roadmap. Conference on The future of Software Engineering: ACM, 2000.

[Gary97] Gary, K. et al. - Automated Process Support for Organizational and Personal

Processes. ACM SIGGROUP Conference on Supporting group work: the integration

[Grinter99] Grinter, R. E., Herbsleb, J. D. - The Geography of Coordination: Dealing

with distance in R&D work. ACM SIGGROUP Conference on Supporting group work.

ACM, 1999.

[Grudin94] Grudin, J.. - Groupware and Social Dynamics. Eight Challenges for Developers. Communications of the ACM. Vol. 37: nº 1 (1994), p. 92-105.

[Highsmith00] Highsmith, J. A. - Adaptive Software Development. Dorset House Publishing. 2000. 392 p. ISBN 0-932-63340-4.

[Johnson99] Johnson, J. J. - A Field Study of Partially Distributed Group Support. 32nd

International Conference on Systems Sciences: IEEE, 1999.

[Kaplan97] Kaplan, S. - The CSCW Column: The Quadrant Model of Groupware. ACM

SIGGROUP Bulletin. Vol. 18: nº 2. (1997), p. 11-14.

[Kraul95] Kraul, R. E.; Streeter, L. A. - Coordination in Software Development.

Communications of the ACM. Vol. 38: nº 3 (1995), p. 69-81.

[Marquis06] Marquis, H. A. - Finishing off IT. MITSloan Management Review. Vol. 47: nº 4 (2006), p. 12-15.

[McAfee06] McAfee, A. P. - Enterprise 2.0: The Dawn of Emergent Collaboration.

MITSloan Management Review. Vol. 47: nº 43(2006), p. 21-28.

[Michailidis01] Michailidis, A.; Rada, R.. - Organizational Roles and Communication

Modes in Team Work. 34th Annual Hawaii International Conference on System Sciences:

IEEE, 2001.

[Miguel03] Miguel, A.. - Gestão de Projectos de Software. Lisboa: FCA, 2003. 498 p. ISBN 972-722-352-4.

[Narendra00] Narendra, N. C. - Adaptive Workflow Management- An Integrated

Approach and System Architecture. ACM symposium on Applied computing: ACM,

2000.

[Newkirk02] Newkirk, J. - Introduction to Agile Processes and Extreme

Programming. 24th International Conference on Software Engineering: ACM, 2002.

[Pereira04] Pereira, J. L. - Sistemas de informação para o novo paradigma

organizacional: O contributo dos sistemas de informação cooperativos. Guimarães:

Universidade do Minho, 2004. 343 p. Tese de doutoramento.

[Piccoli00] Piccoli, G.; Ives, B. - Virtual Teams: Managerial Behavior Control’s Impact

on Team Effectiveness. International Conference on Information Systems: Association

for Information Systems, 2000.

[Pressman00] Pressman, R. S. - Software Engineering A Practitioner’s Approach.

European Adaptation. 5ª edição. McGraw-Hill, 2000. ISBN 0-071-23840-9.

[Ribeiro07] Ribeiro, M.; Pereira, J. L. - A Utilização de Sistemas Groupware/Workflow

para Suportar o Desenvolvimento de Software em Equipa. Aveiro: CAPSI, 2007.

[Sagheb02] Sagheb-Tehrani, M.. - Software Development Process: Strategies for Handling Business Rules and Requirements. ACM SIGSOFT Software Engineering Notes. Vol. 27: nº 2 (2002), p. 58-62.

[Simth01] Smith, S.; Stoecklin, S. - What we can learn from Extreme Programming.

Journal of Computing Sciences in Colleges. Vol. 17: nº 2 (2001), p. 144-151.

[Sommerville01] Sommerville, I. - Software Engineering. 6ª edição. Addison-Wesley. 2001. 693 p. ISBN 0-201-39815-X.

[Steinfeld99] Steinfeld, C. et al. - Supporting Virtual Team Collaboration: The

TeamSCOPE System. ACM SIGGROUP conference on Supporting group work: ACM,

[Swebok04] Abran, A. et al. – Swebok: Guide to the Software Engineering Body of

Knowledge. Software Engineering Coordinating Committee, 2004. 204 p. ISBN 0-7695-

2330-7.

[WfMC95] Hollingsworth, D. – Workflow Management Coalition The Workflow