Table of Contents generated with DocToc
See general learning path info
The community of practice is a great way to learn from others who share the same professional discipline. The community helps to proliferate better practice and ideas across teams that don’t interact regularly.
Level - Awareness
Learn which communities exist
- Actively aware of the relevant communities channels, sessions and forums
- The cross-government slack team has many communities such as software-development, front-end, security
- Attend as many community events as you can. Read blog posts and engage in discussion
- Ask questions - there is no such thing as a silly question
- Be open to learning from others, regardless of different levels of experience
- Know how to find and join external communities of practice which might be relevant to you
Level - Working
Learn how to do a talk
This is where you show something or share an idea with the community through a talk or presentation. Things to think about:
- Make the title of your talk interesting to attract community members
- A talk could be a short 10 min lightning talk with less preparation or a more in-depth technical session
- Identify a key message/point of your talk for the audience to take away
- Leave time for questions or discussion
- Asking for feedback afterwards can be useful
Learn how to write blog posts
Writing a blog to share a tool/technique/learning/failure/solution that you’ve experienced recently. Things to think about:
- If you’re not sure whether to blog about a topic - think of a title and ask for opinions first before committing to writing the whole blog
- Learn about how to write well to interest others and get your points across clearly
- Decide if you want to write an internal blog for just the community or an external blog
- It’s ok to ask for feedback before publishing if it helps
Talk/blog ideas
Some templates to inspire you:
- ___ is a piece of work i’ve done recently
- ___ is something i’m proud off doing
- ___ is something i’ve learnt recently
- ___ is a topic i’m interested in
- ___ is overrated
- ___ is underrated
- I think we should be doing/using more of _____
- I think we should be doing/using less of _____
Level - Practitioner
Engaging community sessions should be:
- Community-driven (topics suggested by the community)
- Varied to accomodate different goals and individuals preferences
- Talks and blogs - sharing of knowledge by community members
- Deliberate practice session - The community gets together to do an exercise where they practice a specific task thats common to our daily job roles. Working with different community members and a wrap up discussion to share approaches at the end usually works well
- Games and workshops - Introduce new skills or concepts in a less formal way
- Debates - Group discussions around a particular topic. Could involve arguments and counterarguments or be less formal and just have a chat.
- If you have an idea but aren’t quite sure, ask other developers for their opinion or float the idea on our community chat channel.
- Make the objective of the session clear in advance
- It’s ok to ask for help to promote or run a session, thats what the community is for.
- Variation of session types encourages participation. Consider what types of session have been run recently and what types of session haven’t been done for a while to ensure sessions are varied and interesting.
- It’s ok to not be the subject matter ‘expert’. The key is to create an environment for discussion and learning, not necessarily teaching others by yourself.
- Time facilitation skills and asking questions are useful skills to hone.
Learn how to run deliberate practice sessions
These sessions are where a community group practices a particular task that is typical of our day to day practice. The principle aim is to learn from each other about different ways of approaching a problem. Practice could mean using TDD, code review, refactoring, problem decomposition, interface design, mob programming, anything really!
Things to think about:
- Which format might work best - individual / pairing / whole group practice
- Make sure you plan adequate time as practice sessions often take longer than anticipated
- Remember to leave adequate time for sharing and discussion at the end - this is often the most valuable part.
- It’s ok to ask for help to run these
- Codewars for small coding problems
- Kata-log for library of categorised code katas
- Refactoring exercises (including front-end)
Learn how to facilitate debates
These sessions are where a community group gets together to hear different perspectives on a particular topic. It’s best to get two opposing views on a subject and let both parties share their views at the start of the session. The best debate topics are relevant to current work, controversial or provocative, challenging the status quo. Although any topic can result in an interesting debate. Again the key here is to facilitate the session by asking questions to help the debate continue, asking for counter responses to statements, pros and cons etc.
Learn how to host an external speaker
This is when someone does a talk from another community within NICE or external to NICE. If you’re unsure about talk topic ideas just ask for some opinions first
Learn how to run a game or workshop
This could be to facilitate better community relationships or with a particular learning objective. Workshops could be drop in sessions where others bring problems to discuss as a group, for example refactoring/testing/software design workshops.
Level - Expert
Learn how to build new communities of practice
Learn how to sustain communities of practice
- Encourage diverse participation
- Foster community leaders/leadership
- Sponsor people to run events, based on personal development