This document discusses the skills needed for developers in agile times. It emphasizes the importance of continuous learning, collaboration, and adapting to change. The restless developer recognizes that agile development requires new technical and soft skills, and they work to develop these skills in themselves and help the team learn as well. Some of the key skills mentioned include lean startup principles, user-centered design, testing, continuous delivery, collaboration, leadership, and domain knowledge.
6. 6
“Lean Startup uses a feedback loop called
‘build-measure-learn’ to minimize project
risk and gets teams building quickly and
learning quickly. Teams build Minimum
Viable Products (MVPs) and ship them
quickly to begin the process of learning as
early as possible”
Borrowed from Jeff Gothelf's Lean UX
7. 7
"innovation powered by.. direct observation
of that people want and need in their lives
and what they like or dislike about the way
particular products are made, packaged,
marketed, sold, and supported… [It’s] a
discipline that uses the designer’s sensibility
and methods to match people’s needs with
what is technologically feasible and what a
viable business strategy can convert into
costumer value and market opportunity.”
Tim Brown
8. 8
Soft skills
Leadership Skills
Continuous Feedback Clean code
Individuals and interactions
Working software
Customer collaboration
Responding to change
over processes and tools
over comprehensive documentation
over contract negotiation
over following a plan
Build-measure-learn
Guided by the user need
Tests
Consulting Skills
Domain Knowledge
Evolutionary Architecture
Evolutive Design
Test Automation
Refactoring
Continuous Delivery
Full Automation
Feature Toggle
A/B Testing
Multi Language
Multi Platform
Researching
Prototyping
13. FULL STACK DEVELOPER
1. Server Network and Hosting Environment
2. Data Modelling
3. Business Logic
4. API Layer / MVC
5. User Interface
6. User Experience
7. Understanding Client Needs
8. Infrastructure Management and DevOps
9. Automation
10. Cloud Computing
11. Data Science (Big Data, Analytics)
12. Consulting Skills
13. ???
Very hard to be good at all
13
that
Teams, at the other
hand, should strive for
multi-disciplinarity
14. WE DON’T NEED AN ARCHITECT - FOWLER
14
All important decisions go though
him
His value is proportional to the
numbers of decisions he takes
He doesn’t trust in the team
Keep an eye the future of the project and
the backlog
Code with the team in the morning, attend
business meetings in the afternoon
Coach and mentor to the team
His value is inversely proportional to the
number of decisions he takes
15. THE JAVA DEVELOPER - SINGLE LANGUAGE DEFENDER
Java is the only language that is
worth using. Replace Java with your
favorite language.
Only work with Weblogic, etc.
Replace Weblogic with your favorite
web and application server.
Front end development must be JSF.
Replace JSF with your favorite
framework.
15
Favor the client needs, not our
favorite technology.
Using new technologies
sometimes drive to product
innovation
17. 17
"Carrots & Sticks are so
last Century. Drive says
for 21st century work,
we need to upgrade to
autonomy, mastery
and purpose."
18. 18
No one is a natural.
All need to learn.
All can learn.
Learning is a process.
19. 19
Angelina Fabro,
Javascript
MasterClass
Not a Beginner
1. Can deal with principles in any languages
2. Can start coding from scratch
3. You want to know how it works
4. May feel your code is mediocre
Not an Expert
1. Don’t get all the code you read
2. Can’t explain to other people
3. Aren’t confident with debugging
4. Rely on references too much
What to do
1. Ask why obsessively
2. Teach / Speak in Events
3. Work through a suggested curriculum
4. Experiment recklessly
5. Have opinions
6. Seek mentorship
7. Program a lot, and have breaks
8. Recognise what good feedback is
20. A Restless Developer recognises Agile
times demands new skills, technical and
non-technical.
He is not only striving to develop these
skills himself, as he is fighting and
leading the team for that.
20