ca625 msc software engineering software …gjones/teaching/ca625/mscse prof...guide only, not full...
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?