ca625 msc software engineering software …gjones/teaching/ca625/mscse prof...guide only, not full...

Post on 23-Mar-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CA625 MSc Software EngineeringSoftware Professional Skills

1. Introduction

Michael O’DuffyCentre for Software Engineering

© Centre For Software Engineering Slide 2

Software engineering as a profession

Technical Skills – core competence

Professional Practice & Code of Ethics- way core competence is employed

© Centre For Software Engineering Slide 3

Software engineering skill set

Technical set

Business or application domain set

Management set

Personal set

© Centre For Software Engineering Slide 4

Skill acquisitionFounding principles

Specialties

Experiences

CPD – skills extension & upgrade

Special challenges

© Centre For Software Engineering Slide 5

Skill recognitionQualification certificates

Skills framework – reference SFIA

Matching skills to projects

Any Questions?

CA625 MSc Software EngineeringSoftware Professional Skills

2. Types of Skills

Michael O’DuffyCentre for Software Engineering

© Centre For Software Engineering Slide 8

Views of Software Development• Strategic - business, innovation, partnerships• Product/Portfolio - product versus service, scope, standards,

product release, support, implementation, maintenance, retirement• Process - life cycle, methods/techniques, formalisation, automation,

development environment, research environment• Architectural - technical structure, technical standards, layers,

components, technologies employed• People/Organisation - sponsor/steering, user representatives,

project management, types of project, single/multiple projects, team, skills, roles, physical environment, forms of communications

• Control – project plan, architectural plan, configuration plan, quality plan, risks

• Market - domain, user profile, channel, territories, price, promotion, packaging, distribution

© Centre For Software Engineering Slide 9

Friction in projects

THEORY:

Concepts and Principles; Methods and Techniques; Structures and Architectures

PRACTICE:

Company interpretation; Personal preferences; Short circuiting

© Centre For Software Engineering Slide 10

People/Organisation: NeedsSTRUCTURE: organisation, roles & responsibilities

FRAMEWORK: process, architecture, plans

SKILLS: technical, business, personal

COMMUNICATION: planning, tracking, co-ordination, motivation, agreement, prioritisation, conceptualising, elaborating, problem solving,

TEAMWORK: collaboration, consensus, specialisation, parallel working, common direction

© Centre For Software Engineering Slide 11

Technical Skills• All phases of project life cycle

• Specialise by technical feature

• Technology specialist

cumulative cost

risk resolutione.g. by prototyping

various types of development

Progress

Evaluate alternatives -identify and resolve risks

e.g. feasibility study, scope of project

Determine objectives, alternatives, constraints

(including 1st plan)

Plan next phase Develop, verifynext product level

(Life Cycle - coding, test etc)

1

43

2

© Centre For Software Engineering Slide 12

Core Technical KnowledgeCore technical skills

– Abstraction– Information Hiding– Distinguishing Specification from Implementation– Recursion– Reuse– Classification & Typing– Constraints & Exceptions– Designing for change

© Centre For Software Engineering Slide 13

Technical Skills• Secondary skills for supporting activities

– modelling– prototyping– testing and inspection– architecture definition– documenting– establishing technical standards– integration– release build– SDE build, tool evaluation

© Centre For Software Engineering Slide 14

Business Skills• Role of IT in user organisation

• Knowledge of application domain

• Business models and implications for IT

• Business paradigms (SCM, ERP, WCM, BPE, etc.)

• Change management

• Project organisation and interactions

• Implementation planning (logistics, resources,sequences)

© Centre For Software Engineering Slide 15

Personal Skills• Self-discipline

• Planning

• Written communication

• Interactive communication

• Team-working

• Situation analysis

• Problem-solving

• Decision-making

Deadlines, priorities, recording, controlling

Estimation, staging, milestones, dependencies

Messages, guidelines, manuscripts, pen pictures, specifications, agendas, comments, notations

Separating people from issues, emotive issues, cultural issues,change management issues

Presentation, role playing, chairing meetings, patterning, listening, negotiating

Team building, relating/empathising, supporting, co-ordination

Understanding, analysing, applying solution

Assessing risk, interpreting plans, considering options, defining decision, deployment

Any Questions?

Professional Ethics

Michael O’DuffyCentre for Software Engineering

© Centre For Software Engineering Slide 18

Why Professional Ethics?• Perhaps?

– Doing good– Being honest and trustworthy– Doing the right thing– Doing things right– Not screwing our customers/ the competition

…• What is your view of Ethics?

© Centre For Software Engineering Slide 19

Ethical Focus• Ethics of Duty

– Duty owed to who?• Company• Customer/User• Society

• Ethics of Consequence– Who could be affected?

(Note these may be in conflict with each other)

© Centre For Software Engineering Slide 20

IEEE / ACM Code• “Software Engineering Code of Ethics

and Professional Practice”• Software Engineers shall

– Act in the Public Good– In the best interests of clients and employer– Ensure products meet highest standards– Maintain integrity and professional

independence– Be fair and supportive of colleagues– ….

© Centre For Software Engineering Slide 21

Examples for Discussion• Accept full responsibility for your own work• Not knowingly use software obtained illegally• Be honest about the limits of your experience and

competence• Ensure achievable goals for any project• Ensure adequate specification, realistic estimates,

adequate testing …….

© Centre For Software Engineering Slide 22

IEI Code• Behave at all times with integrity• Maintain highest standards of

competence and conduct• Responsibility to yourself, society,

clients, employer, colleagues• Take account of social and societal

impacts

And Finally…….

© Centre For Software Engineering Slide 24

Product v. Process

Process Axis (doing things the the right way - i.e. complying with best practice)

YES NO

The right thing done the right way

The right thing done the wrong way -

good product from poor process

The wrong thing done the right way -

useless product from good process

Disaster !!

ProductAxis

(doing the right thing - i.e.

producing product

fit for intended purpose)

YES

NO

Any Questions?

CPD Continuing Professional Development

Michael O’DuffyFICS, MIEI, CEngChartered EngineerChair, Professional Development Committee, ICS

© Centre For Software Engineering Slide 27

Irish Computer Society• Professional body for ICT• Has close links with IEI:

– This includes a route to Chartered Engineer• ICS also developing a CPD scheme

– SFIA framework for recognising skill levels– New certification scheme Certified Informatics

Professional

© Centre For Software Engineering Slide 28

ICT ProfessionalDomain - title

DP to IP/IS to IT to ICTDomain - scope

• Software, Information Systems, Telecoms, Multimedia• Development, Operation, Implementation, Deployment

© Centre For Software Engineering Slide 29

SWEBOK definitionGuide only, not full BOK, a characterisation

Software engineering is “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is the application of engineering to software”

© Centre For Software Engineering Slide 30

Why Body of KnowledgeMove software engineering to a professional status.

Texas – licenseCalifornia - licenseBritish Columbia – licenseOntario – licenseACM & IEEE – code of ethics & professional practiceIEEE & ICCP – certification schemesEngineers Ireland & BCS – chartered engineer

© Centre For Software Engineering Slide 31

SWEBOKTARGET AUDIENCE

• Training and education – curriculum, accreditation• Jobs definition, classification• Job performance evaluation• Specifying tasks in software development• Managing software engineers• Guidelines for software engineering practice• Certification of software engineering

© Centre For Software Engineering Slide 32

SE Professional

SWEBOKDeveloped by UQAM (University of Quebec in Montreal) on behalf of the

Software Engineering Coordinating Committee (Joint committee of IEEE Computer Society and ACM) and submitted to ISO/IEC/JTC1/SC7 the standards sub-committee for information systems engineering, part of a joint technical committee of ISO and IEC

Characterisation of the bounds of the software engineering discipline:- Software requirements - Software configuration management- Software design - Software engineering management- Software construction - Software engineering process- Software testing - Software engineering tools & methods- Software maintenance - Software quality

see www.swebok.org

© Centre For Software Engineering Slide 33

CPD definition

‘The systematic maintenance, improvement and broadening of knowledge and skill and

the development of personal qualities necessary for the execution of professional

and technical duties throughout the individuals working life’

The aim is to promote skill development and life-time learning

© Centre For Software Engineering Slide 34

ICS approach to CPD• Under ongoing evolution

• Compatibility with IEI

• Compatibility with European initiatives, through CEPIS the European umbrella for computer societies– commencing with EUCIP

• Built on a skills framework

© Centre For Software Engineering Slide 35

SFIA Skills Framework for the Information Age

• Developed in conjunction with 30 companies in the UK

• Employers: measure skills - available vs needed

• Individual: benchmark skills needed for particular job or career path

• Market: labour market intelligence;– skills requirements– skills in short supply– education and training targets

© Centre For Software Engineering Slide 36

SFIA the model

Range of skills

L7 set strategy, inspire, mobilise

L6 initiate, influence

L5 ensure, advise

L4 enable

L3 apply

L2 assist

L1 follow

Aut

horit

y an

d re

spon

sibi

lity

© Centre For Software Engineering Slide 37

SFIA services• Career entry, career progression• Skills gap, skills development planning

• Education & training available - skills & skill levels addressed

• Accreditation of training• Certification of course participants

• Possible skills shortages• Profiling existing skills available

© Centre For Software Engineering Slide 38

CPD operation• Individual plan for training & other development• maintenance of CPD log book • registration of CPD with ICS

• CPD plan and achievement used for career progression, for qualification recognition, and for ICS membership progression

• accreditation of CPD schemes• accreditation of training courses

© Centre For Software Engineering Slide 39

CPD operation• Employer scheme: promote, support, accredit

– gives substance to the training commitment– fill skill gaps, improve competence– help achieve qualifications– support career development paths

• Individual scheme: promote, support, register– gives (more) control to the individual– provides logging of CPD achieved– can link to ICS membership progression

Any Questions?

Team work

Michael O’DuffyCentre for Software Engineering

© Centre For Software Engineering Slide 42

Personal Skills• Self-discipline

• Planning

• Written communication

• Interactive communication

• Team-working

• Situation analysis

• Problem-solving

• Decision-making

Deadlines, priorities, recording, controlling

Estimation, staging, milestones, dependencies

Messages, guidelines, manuscripts, pen pictures, specifications, agendas, comments, notations

Separating people from issues, emotive issues, cultural issues,change management issues

Presentation, role playing, chairing meetings, patterning, listening, negotiating

Team building, relating/empathising, supporting, co-ordination

Understanding, analysing, applying solution

Assessing risk, interpreting plans, considering options, defining decision, deployment

© Centre For Software Engineering Slide 43

Communications• Importance• Forms and roles• Need for formalisation

Purpose - Mechanism - Outcome

© Centre For Software Engineering Slide 44

Teamwork• Working effectively & efficiently together

• Team dynamics & team-building

• Everyone is different - personal and relationship traits• Role playing - multiple roles per person

• Person is a specialist - the specialist contribution• Need for - self discipline - communication

- progress tracking - decision making

© Centre For Software Engineering Slide 45

Why Important

• One person can not do everything– do not have the time– do not have the skills

• Each has specialised contribution– skills– experience– ideas

We

all

need

each

other

© Centre For Software Engineering Slide 46

Obstacles to working well together

• Poor forward planning

• Aims not clear

• Ideas not well developed

• Poor organisation

• Poor team work

© Centre For Software Engineering Slide 47

What is Team

collection of persons

crowd

group

teamrewards commitment

© Centre For Software Engineering Slide 48

Types of Groups: BehaviourGROUP STRUCTURE TASK ACTIVITY

PERFORMING StructureRolesFlexibility

ProgressEnergyCommon task

NORMING HarmoniseUnityNormsSupport

Co-operationPlansStandardsCommunication

STORMING ConflictChallenge leaderVary opinions

Value?Emotions!

FORMING AnxietyTesting situationChecking leaderChecking behaviour

Task?Questions?Rules?Methods?

© Centre For Software Engineering Slide 49

Stages of Team DevelopmentStage 1: undeveloped- feelings not addressed- workplace is for work- no changes- poor listening

Stage 2: experimenting- experimentation- discuss risky issues- consider wider options- discuss feelings- more listening- more concern for others

Stage 3: consolidating- methodical working- agreed procedures- agreed ground rules

Stage 4: mature- high flexibility- appropriate leadership- energy and ability- principles- social- individual needs- improvement

© Centre For Software Engineering Slide 50

Team Characteristics - using DSDMWATERFALL

manage by taskdevelop from spec

do not need to know businessisolated from users

make no compromisescompete with other membersreact to surprisesare judged technically

DSDM

manage by objectivedo what business needs

get to know the businesswork with users

make necessary compromisesco-operate with other memberspro-active to prevent surprisesjudged by the end result

© Centre For Software Engineering Slide 51

Teamwork requires Team Building• Roles - define primary, secondary - skillset for each -

team allocates - ensures “skill recognition and application” - recognises “relationships between roles”

• Empowerment - team to decide aspects of process, techniques and tools, project stages and number of iterations - ensures “use of discretion” by team members, raises their self-esteem

• Communication - decide forms of communication for most critical aspects of project, for planning, assessment, review, action - in line with key features of project, special skills of team, culture of project

Any Questions?

Team Roles

Michael O’DuffyCentre for Software Engineering

© Centre For Software Engineering Slide 54

Belbin Test• Selects Roles on Teams• Used in DSDM (RAD) Method• Seven Questions• Allocate Ten Points between Questions• No Time Limit• Go on Instinct !!

© Centre For Software Engineering Slide 55

Team roles• Every team needs different types of people

– leader, follower– thinker, idea generator– technical person, business person, people person

• Think of the best team that you were part of– it probably had many types of people– many types of skills– many types of synergies and conflicts and they worked well

together

© Centre For Software Engineering Slide 56

Belbin Test• Psychometric Test• Used to Create Small Teams• Aimed at Determining Suitable Role in Team• Used Successfully in Large Organisations

© Centre For Software Engineering Slide 57

Factors Identified by Belbin• Abstract/Analytical Thinking Ability• Dominance• Extroversion/Introversion• Stability/Anxiety

© Centre For Software Engineering Slide 58

Belbin Roles - Chairman or Co-ordinator

• Stable, Dominant, Extrovert• Co-ordinates Effort of Team• Good Instinct for People’s Strengths• Clarifies Objectives• Achieves Consensus

© Centre For Software Engineering Slide 59

Belbin Roles - Shaper• Anxious, Dominant, Extrovert• Task Leader• Results Driven• Competitive

© Centre For Software Engineering Slide 60

Belbin Roles - Plant• Dominant, High IQ, Introvert• Source of Ideas• Concerned with Major Issues• Doesn’t Accept Criticism Well

© Centre For Software Engineering Slide 61

Belbin Roles - Monitor/Evaluator• Stable, High IQ, Introvert• Analytical, Abstract Thinker• Sees Flaws in Arguments• Assimilates Large Quantities of Data• Good Judgement

© Centre For Software Engineering Slide 62

Belbin Roles - Implementer• Stable, Controlled• Organiser• Good at Producing Schedules• Can be Over-competitive

© Centre For Software Engineering Slide 63

Belbin Roles - Resource Investigator• Stable, Dominant, Extrovert• Brings Information and Ideas from

Outside• Not Original Thinker Like Plant• Good Improviser• Can Spend too much Time on the

Irrelevant

© Centre For Software Engineering Slide 64

Belbin Roles - Team Worker• Stable, Extrovert, Low Dominance• Sensitive to Needs of Team• Promoter of Unity in team• Good Support Under Pressure

© Centre For Software Engineering Slide 65

Belbin Roles - Completer/Finisher• Anxious, Introvert• Checks Detail• Has Permanent Sense of Urgency• Meets Deadlines and Schedules

Any Questions?

Team Working

Michael O’DuffyCentre for Software Engineering

© Centre For Software Engineering Slide 68

Different teams

• clearly defined role for everyone in the team

• concrete, measurable goal

• visible competition for the team to unite against

• has a coach

• many people not sure where they or others fit

• goal(s) never been spelt out - different people have different ideas of what they are

• competition inside the team as well as outside

• left to its own devices

Football team: Work team:

© Centre For Software Engineering Slide 69

Does your team PERFORM?• P• E

• R

• F

• O• R

• M

roductivity Is the team getting enough done?mpathy Do the team members feel

comfortable with one another?oles & goals Do they know what they are

supposed to do?lexibility Are they open to outside influences

and contribution?penness Do they say what they think?ecognition Do they praise one another and

publicise achievement?orale Do people want to be in this team?

© Centre For Software Engineering Slide 70

Team Ground Rules• Team problems are everyone’s responsibility• Team time belongs to the team• Respect one another

– no put downs – support the other members of your team

• Don’t get side tracked• Reach a consensus• Keep an open mind

– Put personal priorities to one side

© Centre For Software Engineering Slide 71

Effective Teamworking• Communicate and express opinions

– Share information• Value the different qualities and skills in others

– value each individuals contribution• Solve problems in a structured way

– Participate together to resolve problems– Consider all the options (brainstorming)

• Understand your role– Check what is expected of you– Take the initiative

© Centre For Software Engineering Slide 72

Summary (1)• Successful teamwork requires team building• Team selection techniques can provide a useful

indicator of possible team roles• Effective communication is the greatest personal skill

employed in projects

© Centre For Software Engineering Slide 73

Summary (2)• Effective teams

– Establish ground rules – Communicate and express opinions– Value the different qualities and skills in others– Solve problems in a structured way – Understand roles

Any Questions?

top related