software management methodologiesusers.utcluj.ro/~vaida/publications/2.software... · software...

77
Software Management Methodologies Mircea-Florin Vaida, TUC-N ETTI- COM Department [email protected] 6-10 July 2015, Univ. de Savoie, SYMME MontBlanc lab., Chambery, France 1

Upload: others

Post on 20-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Software Management

Methodologies

Mircea-Florin Vaida, TUC-N

ETTI- COM Department

[email protected]

6-10 July 2015, Univ. de Savoie, SYMME MontBlanc lab., Chambery, France

1

Page 2: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Basic Software

Methodologies

The basic software methodologies used to develop dedicated applications are:

- structured methodologies based on procedural applications,

- formal methodologies,- object oriented methodologies,- methodologies based on components and

services, etc.

2

Page 3: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Structured methodologies

-As structured methodologies, the most known was SSDAM (Structure Systems Analysis and Design Methodology) developed by the Computing and Telecommunication Agency

-MERISE being representative for Europe and North America as developed product.

3

Page 4: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Formal Methodologies

-In the formal methodologies, the discrete mathematics is used, not as a complete methodology, but usually to design live system development cycles.

-State based models, process algebra, etc., are used, and as representative formal methodologies we have VDM (Vienna Development Method) from the IBM laboratories and the Z language from the Oxford University.

4

Page 5: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

OO Methodologies

-The Object Oriented (OO) Methodologies started with the Simula project; nowadays the C++0x-1y, C# and Java offer the most used OO software methodologies with a lot of refinements.

-OO Programming, OOP, represents a new paradigm; by paradigm, in this case, we understand a model or an example.

-The simple life can be easy represented as an OO Methodology, and to understand the OOP it is very useful to make some connections with the human life. 5

Page 6: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

OOM example

Let us consider a simple example that involves OOM.

-It is spring, the life starts once again, and many flowers make our life joyful.

-We want to send some flowers to a friend, Laura, from another town.

-The Flora flowers shop will do the task. We will specify the address, what kind of flowers (type and number), etc.

6

Page 7: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Agent-Method

-Flora is an agent that will receive my message and has the responsibility to send the flowers

-Flora has a method (based on a mechanism or algorithm) to achieve my task, the details for me are not important (hidden).

-If I am very curious to know how the flowers are sent, maybe Flora will send a message to another flower shop from Laura’s town that will do the task. In this case, a compensation mechanism will be considered between the two flowers shop. 7

Page 8: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

OOP Involvements

In OOP, many involvements are considered to simplify the solving process.

-In this case, the agents are considered as distributed objects, offering a service or an action used by many members of the community.

-The requirements will specify an action that will be initiated by sending a message to an agent.

-The receiver is the object that will receive the initial message. If the message is accepted, the responsibility to execute the action received will also be accepted.

-As an answer to the message received, the receiver will execute some methods to satisfy the addressed requirement.

8

Page 9: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Encapsulation-message

-The encapsulation process (protection- how the flowers will arrive at the destination) is a very important aspect in OOP.

-In structured programming, the main role was performed by functions (procedures).

-The messages are different from functions because:

- the message is addressed to a designed receiver

- the message interpretation depends on the receiver and can vary depending on the receiver (Laura will be happy to receive the flowers, or not). 9

Page 10: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Late and Early binding

When we are very happy, it is possible to send flowers to the first woman in the street. In this case, the receiver will be known only when we meet the first woman, in programming that means, late binding; the reference will be specified during the application execution.

In programming, it is also possible to specify the receiver from the beginning that means early binding, (Laura).

10

Page 11: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Behavior

-The behavior, in terms of responsibility is another OOP concept. The abstraction degree will increase, and it will allow the highest degree of independence of objects.

-In procedural applications, the data structures are used and modified with functions.

-OOP asks data structures to execute services, being important what the data structures can do for us and not what we can do with data structures.

11

Page 12: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Classes, Hierarchies

The classes and class hierarchies are important elements in OOP.

-Flora is an instance of the flowers shop class; let us consider Flower the class name.

-It is possible that Flora object belongs to a more general concept, the Supermarket class. -In this case, Flower is a subclass of the Supermarket class, an inheritance process being considered.

12

Page 13: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Abstract Class

It is possible to have abstract classes. In this case, it is not possible to instantiate objects from such a class. An example is the Humanclass, which is an abstract class, being a base class in an inheritance process for the Womenand Men classes, classes that are able to be used to instantiate objects.

-Usual upper in the hierarchy, we consider a base class as a root class. The concept seems to come from the human monotheist religionwhere God is higher in hierarchy. The Java classes from the standard packages consider the Object class with the same role.

13

Page 14: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Overriding-Virtual methods

-It is possible that some methods from a hierarchic structure will be redefined because the role was changed. This process is named overriding.

-The method has the same signature with the initial one, that is a virtual method, and it is possible to call the specific method using an inheritance mechanism at the execution. (upcasting process)

-The method name, the number, the type and the order of the parameters give the signature of the method.

14

Page 15: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Polymorphism

-The polymorphism is usually presented only as an overloading process. In this case, the methods have the same name but a different signature. This is an early binding mechanism, static polymorphism.

Overriding is other polymorphism aspect, invoking an inheritance process. This could be an early binding, or a late binding when we use virtual methods overriding (dynamic polymorphism).

15

Page 16: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Exceptions

-In the mammal world, the ornithorhyncus is an exception using eggs for reproduction.

-Exceptions represent a very useful new concept in OOP that offer reliability to the applications.

16

Page 17: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Animistic OOP and OOD

-The OOP is described as an “animistic” process based on a “Help Host” that assists the programmers to find the adequate solution.

-OO Design, OOD, considers the problem to identify objects from the real world and to develop an independent language, organized around these objects. The design technique used in this case is a responsibility-driven design.

17

Page 18: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Responsibility

-The responsibility is a very important requirement in daily life and in programming.

- When we create an object responsible for an action we must specify at least the frame where the observed rules will be achieved.

-The responsibility also considers a high degree of independence and non-interferences. 18

Page 19: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Independence and Code

reusable

-The Flora flowers shop has the independence to choose how to send the flowers to Laura.

-This mechanism is not supervised, which is specific to OOP.

-Code reusable is an important mechanism very easy to be used in OOP if the programmer has a great experience. 19

Page 20: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

OO Techniques (OOT)

OOT, specifies that the software application is organized as a discrete collection of objectsthat includes the data structures and the methods. Four steps are usually considered:

- analyses, based on an abstract model, - system design, based on subsystems

considering the analyzed structure and the proposed architecture,

- object design, with implementation details of data structures and algorithms,

- implementation, with a specific programming language used.

20

Page 21: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

OOP, OOD, OOT

-OOP, OOD and OOT are connectedtogether.

-The behavior application is a very important element considering the user interaction.

-The behavior manifestation, independence and the information content, characterize the application components. 21

Page 22: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Components behavior

Components behavior represents a set of tasks that the component can execute and is expressed by a protocol.

-the state of a component represents all information that a component contains

-a class describes a set of objects with similar behavior

In OOD two concepts are used:

-Cohesion, defines the responsibility degree of a component considering the overriding process

-Coupling, describes the links among software components that must be reduced

22

Page 23: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Parnas principle

The Parnas principle is very important in the mechanism of a software application design.

-This principle separates the interfacemodule and the implementation module. -For a user it is very important to offer an easy useable interface that is why this part uses innovative concepts including multi-discipline concepts.

23

Page 24: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Software components are developed in parallel by different programmers that may consider Parnas principles as:

- the development of a component must offer to the user all information to obtain useful effective services and no more other information

- the development of a component must contain all necessary information to realize the assigned responsibilities and no more other information

24

Page 25: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Component

Implementation

The component implementation considers: -data structures design -algorithm description -a) component implementation using a programming

language. Usual a facilitator component will be used (behind the scene) and preconditions are imposed

-b) component integration, starting with stub components that are limited components and a unit testing process

-testing integration, stubs are replaced with real code -in the complete implementation a regressive testing by

modifying some components will be used -c) software maintenance

25

Page 26: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Life and Programming

-A lot of OO methodologies came from the human life.

-A new direction considered in thesoftware development is the organic computing.

-That’s why understanding life

is easier

to program computers.26

Page 27: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Software Engineering

Methodologies

According to IEEE, software engineering is defined as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

In anutshell, software engineering can be defined as a systematic approach to develop software within specified time and budget.

[http://ecomputernotes.com/software-engineering/what-is-software-engineering-write-basic-objective-and-need-for-software-engineering] 27

Page 28: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Software development involves:

1. Classical Software Engineering (SE) methodologies

2. Approaches based on development tools for automatic, semi-automatic software

3. Modern concepts arising from everyday life in software development

28

Page 29: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

General Software Strategy

The strategy follows three main stages:

1. establishing phases and stages by passing successively a program during their life cycle and to define concrete content of these phases and stages to be clearly demarcated

2. development/use of technologies, i.e. methods and tools that are associated with phases

3. the development of scientific methods, i.e. the appropriate methods for the organization and management of the various activities relating to the realization of industrial-style applications software

29

Page 30: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

New trends in the development of advanced software introduces the idea of software development in an organic way (organic development).

This growth metaphor comes from living organisms, that is done naturally.

In the field of computer science organic development involves the use of software tools in the development of software tools that are part of the application itself.

The user can add/modify application features that were not originally considered by the developer.

This condition is very close to the growth of living organisms, which is why we have introduced this notion so.

30

Page 31: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

General objectives of SE

A) Adaptability of programs

B) Efficiency of programs

C) Reliability of programs

D) The perceptibility of the programs

31

Page 32: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

General principles of SE

1. modularity

2. abstracting

3. location

4. encapsulation

5. uniformity

6. completeness

7. conformability

32

Page 33: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Requirements regarding project

management software

-functional requirements

-quality requirements

-requirements relating to resources

33

Page 34: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Components of projects

management

A. Tasks management

B. Team management

C. Implementation context management

D. Product maintenance management

34

Page 35: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

The basic activities involved in

software product management

A. The feasibility study

B. Planning

C. Execution of the project

35

Page 36: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

The quality of software

products

Quality takes into account all stages of the planning and execution of software. For any software system there must be three, namely specs:1.-Functional specification describing what it

takes to make the system (service).2.-Quality specification that describes how

well operates the components (functions).3.-Resource specification, which specify the

amount spent for the system.36

Page 37: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

In this area it is trying to identify thespecific qualities of products and software aregrouped in three categories:1.Product operation qualities;2.Product revision qualities;3.Product transition qualities;

37

Page 38: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

1. Product operation qualities are:o Accuracy: the margin up to which the program

meets the specifications and meets the objectivesof the user.

o Reliability: the margin up till the program isexpected to work with the specified parameters atthe imposed precision.

o Efficiency: the amount of resources requested bythe software.

o Integrity: the margin up to which access to thesoftware or data of unauthorized persons can becontrolled.

o How to use: the effort required to learn, work,prepare entry and interpret the exit.

38

Page 39: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

2. Product revision qualities are:o Maintenance: the effort required to locate

and repair the error in an operationalprogram;

o Testability: the effort required to test aprogram to ensure that work in thespecified parameters;

o Flexibility: the effort required to changean operational program;

39

Page 40: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

3. Product transition qualities are:o Portability: the effort required for the

transfer of the program from aconfiguration of hardware and softwareenvironment to another/other.

o Reuse: the margin up to which a programcan be used in other applications;

o Interoperability: the effort required toengage a system with another;

40

Page 41: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Time management

In order to effectively organize our timeis required to follow three steps:1.-the creation of the list of priorities;2.-identifying and marking the importance

and urgency of each activity from the list;3.-setting the execution of actions in time;

41

Page 42: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Human factors and

programming implications

-IS – Information System

-IT – Information Technology

-ITC – IT + Communication

IT Revolution, “electronic-communication cottages” – described by Alvin Toffler, Future shock, 1970

42

Page 43: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

IT Effects

Effect Cause

Individual The dismissal of the

expert

Unemployment/

reducing the time

Harder work

Improvement of labor

Labor liability

enablement

Expert system

Automation

Removing the

qualification

Support the

development of IT/IS

Societies The collapse of a city

Leisure possibilities

raised

Communications falling

Automation

Organizations Enterprises without

people

Paperless offices

Automation

Networks, data bases

43

Page 44: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Criteria used to develop IS

A) Success

-productivity

-efficiency

B) Defaults-technical

-utility

-usability

Effectiveness, customer satisfaction, efficiency – triangle representation

Human factors linked to other sciences: Physiology, psychology, sociology, philosophy (spirituality)

44

Page 45: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Psychology and human

memory

Human memory:

-sensorial

-short lasting

-long lasting

Human-level processors:

-perceptual

-cognitive

-motor

-spiritual

45

Page 46: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

46

Page 47: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Users needs

-physical

-functional

-aspirational

47

Page 48: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Software applications

development management

The management of software systems borrows heavily from project management areas, but there are nuances that may arise in the field of software that cannot be found in other management disciplines

Software development process The best-known models used at the moment are:

- Waterfall model,

- Spiral model,

- iterative and incremental development models, etc.

48

Page 49: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

METHODS OF SOFTWARE

PRODUCTS DEVELOPMENT

Sequential methods - used in the past (prototype, successive extensions in two steps)-restrictive, with fixed price and predictive, and now used:V model

Waterfall model

Incremental-iterative methods - arepermissive and enables adaptive changesduring the projects:Agile/Scrum model

Just – In – Time/Kanban model49

Page 50: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

V model

50

Page 51: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Waterfall with feed-back

51

Page 52: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Agile software development

Agile software development is made by a group of software development methodologies based on iterative and incremental development process, where requirements and solutions evolve towards collaboration between teams with auto-organized and cross-functionality (interdisciplinary).

There's an Agile Manifesto since 2001.

There are 12 basic principles considered, from the user satisfaction, to adjusted settings based on circumstance changes

52

Page 53: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

53

Page 54: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Various methods from the adaptive

to the prescriptive

54

Page 55: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

We can compare methods on the basis of the number of rules that are provided. Prescriptive means "more rules to follow" and "adaptive means fewer rules to follow."

100% prescriptive means that you no longer use your brain, you have a rule for everything.

100% adaptive means that you may DO Anything, no rules or constraints.

Both extremes seem to be unfit from a practical standpoint.

Agile methods are sometimes called lightweight methods, specifically because they are less prescriptive than traditional methods

Scrum and Kanban are both highly adaptive, but relatively speaking, a Scrum is more prescriptive than Kanban.

55

Page 56: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Scrum offers several constraints, and thus leave fewer options. For example, Scrum prescribe the use of time-boxed type iterations while, Kanban does not.

RUP (Rational Unified Process) is the most prescriptive-over 30 roles, more than 20 activities, and more than 70 artifacts. A huge amount of things to learn.

XP (eXtreme Programming) is more prescriptive versus Scrum. Includes many of Scrum + a group specific acceptable engineering practices such as development based on tests and scheduling in pair

Kanban eave everything open. The only constraints are the visualization of workflow and limiting work in progress, WIP (Work In Progress). Close enough to do anything but surprisingly still strong.

56

Page 57: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Software development

methodology - SCRUM

Scrum wants that you:

-Share organization in small interdisciplinary teams, cross-functional teams what auto-organize:

-To share the work in a list of small, concrete elements

57

Page 58: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Share time in a fixed-length short iterations (usually 1-4 weeks), with the potentiality to deliver demonstrably code after each iteration.

58

Page 59: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Agile/Scrum Concepts

59/72

Page 60: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Agile/Scrum Roles

PO – Product Owner – the holder of the product.

SM – Scrum Master – person who shall ensurethat the process is respected, that the obstaclesare removed and that each team member has towork.

Agile Team – the development team - isresponsible for the design-and implementation.

60

Page 61: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

- the classical approach is in general of waterfall type with Gantt diagrams

- at Agile/Scrum we use a SOW(Statement Of Works) division: with small packages

Team projects are (medium or small) :

1 Product Director will represent the client, Product Owner

1 Project Manager or SCRUM Master

2-6 developers, developing team

1 tester for 2 developers

61

Page 62: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Partile implicate :

partea interesata de rezultate

partea care dezvolta rezultate

Se bazeaza pe SPRINT-URI

milestone-uri

milestone-ul major = deadline

62

Page 63: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Kanban

Kanban wants you:

To view the workflow (workflow)

Share in pieces, to write every action (item) on a card and then put on the wall

To use columns with names to illustrate where every item in the workflow.

To limit WIP (Work In Progress)-by assigning explicit limits concerning how many items may be in progress at each workflow status.

To measure the so called lead time (the average time of realization of an item, sometimes called "cycle time"), to optimize the process for making this lead time how small and predictable possible.

63

Page 64: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

64

Page 65: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Comparison between the

Agile/Scrum vs Kanban

Similarities:

Both of them are productive and Agile/Just in Time

Both use a programming mechanism by pulling

Both limit WIP

Both of them are transparent to bring improvements to our run processes

Both are geared to deliver software releases quickly and often

Both are based on their own organizational teams

Both ask-splitting activity into pieces

Both plan to release is continually optimized based on empirical data (speed/lead time)

Both methods are based on experience (empirical)

Both methods allow working on multiple products simultaneously

65

Page 66: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Comparison between the

Agile/Scrum vs Kanban

Differences: Agile/Scrum is more normative than Kanban Agile/Scrum requires iteration time box Agile/Scrum roles-requires PO, SM, Agile Team Limiting WIP (Work In Progress) Agile/Scrum does not allow changing in an iteration Agile/Scrum Board resets between iterations Agile/Scrum requires cross-disciplinary teams The tasks are divided into sprints for Agile/Scrum Agile/Scrum requires estimation and speed

66

Page 67: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

Other Differences

67

Page 68: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

JIRA product

JIRA – software tool used for project planning and monitoring; It is used both for the Agile Scrum methodology/and Kanban.

Other tools used for Agile/Scrum:

Agile Tracking Tool, Kunagi, Scrum Do, PangoScrum, Express, Scrumy, Sprintometer, Agilo for Scrum, etc.

Other tools used for Kanban:

Kanbanize, Agile Zen, Kanbanery, Kanban Tool, Kanban Pad, etc.

68

Page 69: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

JIRA description

JIRA-truncation of "Gojira", the Japanese word for Godzila

Developed from 2002 onwards

Comprises three zones:

Zone of tasks

Zone metrics

Zone of graphs

JIRA + Green Hopper plugin-used to project planning.

69

Page 70: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

EXPERIMENTAL RESULTS-

mobile application - Agile/Scrum

Scrum board for the first sprint

70

Page 71: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

EXPERIMENTAL RESULTS -

Agile/Scrum

Story points for first sprint

71

Page 72: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

EXPERIMENTAL RESULTS -

Agile/Scrum

State diagrams

72

Page 73: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

EXPERIMENTAL RESULTS -

Agile/Scrum

Delivered values diagram

73

Page 74: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

EXPERIMENTAL RESULTS -

Agile/Scrum

Story points for each sprint

74

Page 75: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

EXPERIMENTAL RESULTS -

Kanban

State diagrams

75

Page 76: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

EXPERIMENTAL RESULTS -

Kanban

Control report

76

Page 77: Software Management Methodologiesusers.utcluj.ro/~vaida/Publications/2.Software... · Software Engineering Methodologies According to IEEE, software engineering is defined as the

CONCLUSIONS Scrum/Kanban

– mobile application

In the case of mobile application managementapproach, it is desirable to use Kanban method,because the Board is greatly simplifiedcompared to Scrum Board, there are few tasksaccomplished, and the project will be completedin a much shorter time and at a lower cost thanif we use Scrum Board.

If we implement Agile/Scrum method, timeplanning would be higher and would ' lose 'precious time and method for specific meetings.

77