Modern SW Developer Explained
© 2012 Tieto Corporation
What skills are needed to survive in tomorrow’s SW development projects?
Jani Lirkki Lead Software Developer Tieto, Devices R&D
[email protected]
© 2012 Tieto Corporation
Background
About this presentation • This presentation is supposed to: • Help you understand software development in a big international software company. • Help you understand what kind of skills a software developer needs.
• Length approximately 45 minutes. • Questions are encouraged and valued at any time!
3
© 2012 Tieto Corporation
2012-01-22
About Jani • Mobile SW developer & agile coach • Hobbies: Footbag net, pool, poker, gym
4
2001
2004
• Started studying at JYU
• Summer trainee at Nokia
2011
2007
• Tieto JKL • Espoo
• Tieto Beijing
2003
2005
2009
• Working at Agora Center
• Application project technical adviser • Started at Tieto JKL • Graduated (MSc)
• Tieto Chengdu
© 2012 Tieto Corporation
2012-01-22
About Tieto • • • • • • •
Finnish company IT services 1968 440 5600 18000 Industries Tieto works at: • Automotive, Energy, Finance, Forest, Healthcare and welfare, Logistics, Manufacturing, Media, Public, Telecom, Retail
• http://www.tieto.com/careers
5
© 2012 Tieto Corporation
2012-01-22
© 2012 Tieto Corporation
Processes today
Why do we need a process anyway? • Software project without process is like traffic without rules. • If you are alone and nobody around you, you might do well without. • Distributed projects with multiple companies involved.
• Helps to ensure that nothing important is forgotten. • Leverage experience from previous similar projects.
7
© 2012 Tieto Corporation
2012-01-22
SW Development Processes Overview • Process defines common way of working. • Rough split: There are waterfall and agile processes.
Agile • Working software early • Encourages changes
• Most other ones are variations of these two.
• Process selection should be based on needs. • Typically waterfall process when work can be planned totally, agile process when there is more uncertainty.
8
© 2012 Tieto Corporation
Waterfall • Easy to understand • Emphasizes comprehensive design
2012-01-22
Waterfall processes • Originating from manufacturing, adapted to SW development. • Assumes that the work can be split into phases.
• • • •
Simple to understand. Clear responsibilities Late change is expensive. Customer gets working software relatively late.
Requirements specification
Design
Implementation
Integration
Validation
Installation
Maintenance
9
© 2012 Tieto Corporation
2012-01-22
Agile processes • Iterative and incremental development • Short iterations. • Deliver working SW at the end of each iteration.
• Change is natural • Cross-functional teams • XP practices • TDD • CI • Pair programming
…
Iteration 3
Iteration 2
Iteration 1
• Customer collaboration • Emphasizes communication and feedback
10
© 2012 Tieto Corporation
2012-01-22
© 2012 Tieto Corporation
Requirements for today’s SW developer
Methods for SW design • Independent from the process, same SW design methods still apply: • UML diagrams • Class diagrams • Sequence diagrams • State diagrams
• Mindmaps • Specifications and plans.
• …and very similar tools are needed • Development tools: IDE, SW design, SDK, Code analyzers (dynamic&static), Version control, Build&Integration, … • Project tools: Office tools, Error DB, Test DB, Backlog/task/release management, Wiki, …
12
© 2012 Tieto Corporation
2012-01-22
Testability • Traditionally: testing is QA team responsibility. • Very late phase in waterfall. • Hard/impossible to automate tests at such late phase.
Automated acceptance + GUI tests
• Nowadays: attention is paid to testability in earlier phases (analysis, design). • Testing doubles: Dummies, Fakes, Stubs and Mocks.
• Most of the testing is programmed (not manual)
Unit tests
Production software
• Amount of test code roughly the same as production code.
13
© 2012 Tieto Corporation
2012-01-22
What a good developer needs • Individual capabilities • • • •
Common sense Flexibility Continuous learning attitude Teamwork skills • Know your strengths, weaknesses
• Personal network of experts • Communication skills • • • •
14
Developer end user Developer customer Developer developer Developer management
© 2012 Tieto Corporation
2012-01-22
Improve your value in job market • Open source contributions • Much like any other SW project. • Learn a little and start contributing. • Start with small contributions (e.g. testing, documentation). • Community supports you – you are not alone.
• Makes your CV more appealing.
• Work with foreign students • Assignments for your studies. • Gives confidence for your language skills.
• Be active • Attitude counts the most • Local interest groups (Geek Collision, Agile JKL, …)
15
© 2012 Tieto Corporation
2012-01-22
© 2012 Tieto Corporation
Summary
Summary Communication skills Processes
Engineering skills
17
© 2012 Tieto Corporation
Tools
SW Developer
Domain knowledge
2012-01-22
Questions & Answers
18
© 2012 Tieto Corporation
2012-01-22
© 2012 Tieto Corporation
Jani Lirkki Lead Software Developer Tieto, Devices R&D
[email protected]