non-technical skills for developers
TRANSCRIPT
Non-technical skills for developers
[email protected]@alex_sukhanov
Alexander Sukhanov
Disclaimer:
All of the following is the result of my personal experience and some stuff I’ve read over the time
Intro
We do our work in projects
• Projects have deadlines. We need to have a skillset to meet them.
• Most projects are done in teams. We need soft skills to efficiently work with other people.
• If your projects are done solo and don’t have any internal or external deadlines – Yay, you don’t need any skills at all!
Non-technical skills
I. Personal productivity
Personal productivity
Read my other presentation on productivity: http://bit.ly/1U9ROdg
In short:1. Remember about death2. Set macro and micro goals for your roles3. Learn to set and prioritize every-day tasks4. Consider physiological and psychological
factors
Personal productivity
5. Build useful habits6. Learn mechanics of working on computer7. Find the right tools8. Apply extra effort9. Remember to balance!
II. Responsibility
Responsibility
• Always keep your word– Think before giving your word– Do everything in your power to keep it– If you are failing – ask the person you gave your
word to to remove the obligation.• Learn the difference between doing a task and
having a task done– ‘Done’ is when your result is accepted– So start early. You may have to redo the task
within the deadline
III. Juggling multiple tasks
Juggling multiple tasks
• It’s not a skill you either born with or not. It’s developed.
• To do juggling efficiently– Keep track of multiple active tasks. Use tools,
write them down!– Switch from one to another with minimal time
loss. Zoom out, think.– Set priorities well– Learn to not care about something while you are
unable to work on it
IV. Understanding business context of work
• Business context of work is as important as a technical part
• Four levels of understanding business context:– Low. Having faint business context of a task. It's
not clear what it means and why it's important– Medium. Knowing business goals that this project
will accomplish.– High. Knowing not only business goals, but also
understanding overall organizational strategy and stakeholders' perspective
– Awesome. Full awareness. Additional knowledge of the market and competitors
V. Forging compromises between business and technology
Compromising between business and technology
• Goal of your work is to bring value to the organization/customer
• So you need to understand goals and problems of your clients and customers.
• Don't just execute. Ask others "why" a lot• Learn how to explain technical necessities
such as refactoring. Read: http://bit.ly/1WtyoP4
VI. Managing relations with other people
Managing relations with other people
• Management =! Manipulation• Learn their values. Work with those who share
yours• Give to others. They will help you back. In
most of areas they are much more productive then you
• Control your emotions. – If you are angry let those chemicals leave your
system. Drink a glass of water
Managing relations with other people
• You could make mistakes. Own that!• Talk about ideas, not things and people• Win win game is better then zero sum game
VII. Efficient communication & Positive politics
Politics – a process by which a group makes a decision
Efficient communication & positive politics
• Talk about ideas, not things and people• Understand team and organizational goals• While solving problem in a group the only
thing that you are looking for is the best idea– Doesn’t matter whose it is– If you have other goals – skip that discussion– Learn about 6 hats of thinking. Make others wear
the same hat and change it through the conversation. http://bit.ly/1SBkxbe
Efficient communication & positive politics
• Control your emotions. – If you are angry let those chemicals leave your
system. Drink a glass of water• If intentions of others are not clear – assume
positive intent and then clear them up.• Learn how to critique and not to criticize: http
://bit.ly/1SUdawa
VIII. Managing technical teams
Managing technical teams
• Build trust (trust others first)• Lead by example• Protect your teammates• It could be stressful at times. It’s ok. • Focus on the product and the process. – But only on one thing at a time. – Have retrospective that targets the process
• Balance learning, teaching and doing the work
Managing / being part of technical teams
• Learn how to delegate– State your goal (what, not how)– Set boundaries– Set rules (as minimum as you can). Think about
fail safe– State recourses other person have in his/her
disposal– Clarify the reporting– State Reward / Punishment (not money,
something from inner motivation)
IX. Managing ambiguity
Managing ambiguity
• Find and reduce accidental complication• Make things simple not complex: http://bit.ly
/19t9CLZ• Separate focus on the product and on the process• Iterate• Open information flow• Gather information in one place• Make decisions and reasons transparent to others
X. Expanding client relationships
Expanding client relationships
Trust is the main factor
1. Identify client needs2. Craft a solution in your head3. Can you or your team accomplish this?
Should the client seek help elsewhere?4. Match client's needs and your capabilities5. Negotiate a consensus
XI. Learning
Learning
• You're eager to learn. You'll dive right in to new technologies, new approaches, and new concepts and apply them to your work.
• Read a lot• Find a mentor• Build habits• It’s okay to make mistakes– It’s not important whether or not you make mistakes.
It's how do you react to them.• Read: http://bit.ly/1U9ROdg (slide 36)
Trends
1. Vertical structure -> Horizontal structure
• Reason: reducing accidental complication and communication overhead
• #1 Consequence: You are responsible not for a single task but for a whole project or technical part of it (e.g. front-end)
• #2 Consequence: You could influence a product. Valve, Uber.
2. Office job -> remote job
• Reason: wide range of talent to hire from and more efficient work
• Consequence: Less control over you. A requirement to manage yourself. More: http://bit.ly/1R9ZTvJ
What do you want to talk about next week?
Questions?
Thank you