• Nenhum resultado encontrado

Software and systems engineering

N/A
N/A
Protected

Academic year: 2022

Share "Software and systems engineering"

Copied!
35
0
0

Texto

(1)

Software and systems engineering

Paulo Borba

Informatics Center

Federal University of Pernambuco

phmb@cin.ufpe.br ◈ twitter.com/pauloborba

(2)

Project management

(3)

To deliver the required software and system,

we have to specify,

implement and test the

needed features…

(4)

That often is a lot of work, carried on by a

number of people, so we better get

organized!

(5)

We need to control

interdependent dimensions:

scope (+)

• quality (+)

time (-)

costs (-)

(6)

To control scope, we need

to manage a list of tasks

(7)

To control time, we need to manage task estimations…

story = task

(8)

Estimating by

• Allocating points to tasks

• starting with a simpler three-point scale

• ground in concrete situation (work done in an ideal day)

• Measuring the number of points per iteration

• Finding out team velocity (the average

number of points per iteration)

(9)

Product backlog

• Tasks with requester, estimation and priority

• Created by the product owner (represents stakeholders interests)

• Never complete, changed as needed by any team member

• Priority tasks described in more detail

• Epics help associate tasks to macro features

(10)

Issues or change requests

Bug report

• Need for new feature or scenario

• Need for changing a particular feature

• Need for code improvement

• Need for performance improvement

• Chore description (provide no direct value

to the customer)

(11)

Tasks

Fix a bug

• Implement a new scenario or feature

• Change the implementation of an existing feature

Refactor

• Improve performance

• Study, investigate, prepare, organize, etc.

(12)

For early and

continuous delivery and feedback, tasks are

grouped in iterations

(sprints)

(13)

Iterations

• are defined by a (sprint) backlog

• last from one to four weeks

• incrementally develop the system

• assign each task to a team member (owner)

• perform tasks in 4 to 16 hours

• run daily (scrum) meetings (15 min)

• done? to do? obstacles?

(14)

System is developed by a sequence of iterations

• planning meetings: defines priorities and sprint contents and deadlines, triage

• review meetings: discuss implemented features in a sprint, and changes to the product backlog

• retrospective meetings: discuss good and bad aspects of a sprint

facilitated by the Scrum

master

(15)

Software development models, spiral

http://ultimatesdlc.com/spiral-model/?share=press-this

(16)

Software development models, waterfall and V

http://04126030sasd.blogspot.com/2011/07/waterfall-model.html

http://crackmba.com/v-shaped-model/

(17)
(18)

https://toggl.com/developer-methods-infographic

(19)

Adopted process

• Iterative, incremental

• Feature and issue based

• Format for bug report (opening and closing) and fixed code

• Need for validating bug report before working on it

• Need for validating bug fix/feature code before merging it

• Requests for changing interfaces

• Traceability for new feature code

(20)

Allocating tasks in a iteration by

• Observing priorities (business value and risks)

• Avoiding dependencies and conflicts

• Defining task interfaces

• Defining the right team size (4 to 9 people)

• Choosing the right people for each task

• technical, experience, collaboration and

personality dimensions

(21)

How to minimize conflicts and development effort?

• Define interfaces

• Need to change interfaces should be first discussed

• Same approach for the need to add new interfaces

• Automated testing

(22)

Inferring task dependencies to schedule tasks…

backlog allocated

iteration tasks

tool based task scheduling

task execution order

priorities scenarios and

tests time and resource

constraints

(23)

via scenarios and tests

scenario test code task

interface

(24)

Broader notion

of interface

(25)

Information hiding and interfaces (David Parnas, CACM 1972)

Not necessarily

data representation!

Not necessarily

public methods!

(26)

Interfaces as a means

to achieve independent

development

(27)

Team organization: feature and component teams

• Feature development and maintenance is performed by a team of developers from different component teams

• Component teams specialise on the

functionalities of a given component, and

collaborate to the development of features

that require functionalities related to that

component

(28)

To better work in teams, understand social context…

• Cultural differences (proactivity, holidays)

• Language (communication style)

• Social rules and values (jeitinho, ethics)

• Working style (weekends and nights, planning, theory first-practice latter)

• Deadlines (hard)

• Taken-for-granted background assumptions

(29)

and properly collaborate

• Planning (working hours and location, time zones)

• Group rules and commitment (expected quality)

• Conflict resolution and decision making

• Effective communication

• Virtual project management

• Task-dependencies and coordination

(30)

Groupware Technologies

• Understand, choose and use proper tools for

• communicating (specially meetings)

• project management, bug tracking

• file sharing and configuration management

• knowledge management

(31)

To control quality, we need to…

• test the system

• review artifacts

• pair programming

• measure quality attributes

• reduce technical debt

(32)

Separate environments for different activities

• Development

• Testing (integration, system, etc.)

• Daily build and smoke test

• Execution (deployment)

(33)

To control costs, we need to…

• control scope and quality, avoiding

increased scope and quality expectations

• control time, avoiding delivery anticipation

• manage productivity

• cost estimation = team size for a given

period (no promises of delivered features)

(34)

Project management research at CIn

• Team motivation: Fabio

• Software process: Alexandre Vasconcelos and Hermano

• Task scheduling: Paulo

(35)

Software and systems engineering

Paulo Borba

Informatics Center

Federal University of Pernambuco

phmb@cin.ufpe.br ◈ twitter.com/pauloborba

Referências

Documentos relacionados

Sob a liderança do Instituto da Abelha Melífera em Kirchhain, Alemanha, e com o apoio inestimável de numerosos participantes, foram levadas a cabo ações para se iniciar e

To be effective, biodiversity information needs to be based on standardized sampling with data made available during the initial planning phases of infrastructure projects, which are

As pessoas que sobreviviam eram aquelas capazes de dirigir a vontade de sentido para fora de si, naquilo que Frankl chama de autotranscendência, na direção de algo a realizar

O presente documento constitui o projeto pedagógico do Curso de Formação Inicial e Continuada (FIC) em Auxiliar de Laboratório de Saneamento, na modalidade

No fundo, não se está mesmo a avaliar mas sim a gerir da melhor forma possível o desempenho de cada colaborador/a, sendo vantajoso não só para os recursos humanos

O presente trabalho objetiva apresentar a caracterização geotécnica dos solos qie ocorrem no campo experimental da Faculdade de Engenharia Civil da Unicamp, por meio de ensaios de

Velásquez (2004) aponta que assim como em outros países latino-americanos, o Brasil desenvolveu, recentemente, o conceito de segurança cidadã. Esse conceito articula

RESUMO --- A distribuição espacial e temporal quantitativa da água são subsídios básicos para o desenvolvimento de qualquer projeto de recursos hídricos, porém o tamanho e