From f1911101f01fbd683b0adf6668fb18774378d467 Mon Sep 17 00:00:00 2001 From: Kay Smoljak Date: Wed, 5 Feb 2025 01:30:13 -0800 Subject: [PATCH 1/4] 2024 survey closed (#2305) * remove 2024 open survey link * 2024 survey closed --- docs/index.rst | 1 - docs/surveys/index.rst | 13 ++++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 3300156c0..faba85af4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -33,7 +33,6 @@ Get more information on how to meet the community, get involved, stay in touch. * Join our :doc:`Slack network ` with thousands of other documentarians * Join a :doc:`local or online meetup ` to dive deeper into the community * Learn more about our :doc:`sponsorship options ` for your company -* Fill out our `2024 Documentation Salary Survey `__ and `browse previous survey results `__ Find or advertise a job ----------------------- diff --git a/docs/surveys/index.rst b/docs/surveys/index.rst index f3a6e8629..855f4ab85 100644 --- a/docs/surveys/index.rst +++ b/docs/surveys/index.rst @@ -5,17 +5,12 @@ In 2019, we launched the first Write the Docs salary survey, to gather data abou Overwhelmed by the positive response, we expanded the survey to collect information about remote work, attitudes towards pay transparency, and satisfaction about salaries, benefits and overall job situations. Based on community feedback, we've continued to refine the questions each year - especially for independent contractors, freelancers and the self-employed. -2024 Salary Survey open for submissions ---------------------------------------- +2024 Salary Survey closed - data processing underway +---------------------------------------------------- -`The survey is now open! `__ New for this year: you can now edit your responses before the final submission, and for privacy reasons the salary/rate inputs are masked. You can now fill out the survey as both an employee and a contractor. +The Salary Survey for 2024 is now closed - thank you to everyone who contributed! The data crunching is now underway and the results will be made available in Q1, 2025. -So no matter what country you live in, what level of skill or experience you possess, or what industry you operate in, we encourage you to contribute. The questions are for people of all employment types: full-time or part-time, permanent or contract, employee or freelance/self-employed – or any combination thereof. If you are currently unemployed, but have worked at least part of the past year, we would like your contribution. - -2023 Salary Survey results available ------------------------------------- - -A huge thank you to everyone in the WTD community: with your help, the 2023 survey broke all previous records for number of respondents, both employees and contractors. Along with finer-grained location data, this has allowed us to publish more than four times as many median salary breakdowns as in previous years. +In the meantime, browse the results of previous surveys. .. toctree:: :caption: Survey Results From 8475e2f750cb7f2956eb28ee0fd554240b1d5955 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 14:02:14 +0000 Subject: [PATCH 2/4] Bump sphinxext-opengraph from 0.8.1 to 0.9.1 (#2288) Bumps [sphinxext-opengraph](https://github.com/wpilibsuite/sphinxext-opengraph) from 0.8.1 to 0.9.1. - [Release notes](https://github.com/wpilibsuite/sphinxext-opengraph/releases) - [Commits](https://github.com/wpilibsuite/sphinxext-opengraph/compare/v0.8.1...v0.9.1) --- updated-dependencies: - dependency-name: sphinxext-opengraph dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sam --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index c15dab828..dbcdf3ac0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -32,4 +32,4 @@ Werkzeug==0.16.1 # pyup: <1.0 # For fancy 404 pages sphinx-notfound-page==0.8 # For fancy twitter previews -sphinxext-opengraph==0.8.1 +sphinxext-opengraph==0.9.1 From 334aa324fbae79197e634ea76f28898465d6dd1a Mon Sep 17 00:00:00 2001 From: Eric Holscher <25510+ericholscher@users.noreply.github.com> Date: Wed, 5 Feb 2025 11:31:39 -0800 Subject: [PATCH 3/4] Ship shirts (#2302) --- docs/_data/portland-2025-config.yaml | 2 +- docs/conf/portland/2025/about.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/portland-2025-config.yaml b/docs/_data/portland-2025-config.yaml index cc18d2735..52190d369 100644 --- a/docs/_data/portland-2025-config.yaml +++ b/docs/_data/portland-2025-config.yaml @@ -277,7 +277,7 @@ flagspeakersannounced: False flagrunofshow: False flaghasschedule: False flagscheduleincomplete: True -flaghasshirts: False +flaghasshirts: True flaglivestreaming: False flagvideos: False flagpostconf: False diff --git a/docs/conf/portland/2025/about.md b/docs/conf/portland/2025/about.md index 648a8c43a..9a5331bed 100644 --- a/docs/conf/portland/2025/about.md +++ b/docs/conf/portland/2025/about.md @@ -11,4 +11,4 @@ The Write the Docs conference covers any topic related to documentation in the s Past talks have also covered such diverse topics as empathy, the history of math symbols, and using emoji to keep your users' attention. Write the Docs brings *everyone* who writes the docs together in the same room: Writers, developers, support engineers, community managers, developer relations, and more. -We all have things to learn, and there's no better way than coming together in the same room and getting to know each other. +We all have things to learn, and there's no better way than gathering at our events and sharing knowledge. From dc002739b024ade8acb3d8a981428a80a12d23c5 Mon Sep 17 00:00:00 2001 From: Aaron Collier Date: Thu, 6 Feb 2025 19:02:29 +0100 Subject: [PATCH 4/4] Add February 2025 newsletter (#2309) * Fix meetup time when UTC * Update newsletter template for new processes * Add February 2025 newsletter * Add logo * UPdate logo again * Improvements after review * Update publishing date * Fix link to proper heading * Add note about Portland speakers --------- Co-authored-by: Eric Holscher --- docs/_scripts/get_upcoming_meetups.py | 7 +- docs/_static/img/sponsors/document360.png | Bin 19380 -> 6954 bytes docs/blog/newsletter-february-2025.rst | 141 ++++++++++++++++++ .../newsletter/newsletter-process.rst | 22 ++- docs/topics.rst | 4 + 5 files changed, 170 insertions(+), 4 deletions(-) create mode 100644 docs/blog/newsletter-february-2025.rst diff --git a/docs/_scripts/get_upcoming_meetups.py b/docs/_scripts/get_upcoming_meetups.py index 43854868a..8702f4bd0 100644 --- a/docs/_scripts/get_upcoming_meetups.py +++ b/docs/_scripts/get_upcoming_meetups.py @@ -113,7 +113,12 @@ async def check_urls(urls): event_date = datetime.fromisoformat(event['date']) except: # If a problem with time zone, just ignore it - event_date = datetime.strptime(event['date'].rsplit(' ',1)[0], '%a, %b %d, %Y, %I:%M %p') + # If date in UTC time + if re.match(r".*Z$", event['date']): + event_date = datetime.strptime(event['date'], '%Y-%m-%dT%H:%M:%S%z') + # Otherwise, try other format + else: + event_date = datetime.strptime(event['date'].rsplit(' ',1)[0], '%a, %b %d, %Y, %I:%M %p') if (event_date - current_datetime).days <= days_within: event['date'] = event_date upcoming_events.append(event) diff --git a/docs/_static/img/sponsors/document360.png b/docs/_static/img/sponsors/document360.png index 4c68bee1397eec532f79e94c3530f2e64d2bebf8..f2c19ea8637342aa2e93dee573fe5b7075bbf0bc 100644 GIT binary patch literal 6954 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 will take place on June 7 in Nairobi, Kenya. If you're interested, submit an `idea for a talk `__. An announcement for speakers in `Portland `__ will be coming soon, so keep an eye out for that. + +The 2024 Salary Survey is now closed – a big thanks to everyone who participated! We're now hard at work crunching the numbers and will release the results before the `Portland conference `__. + +For articles this month, we have thoughts on selling your work as a documentarian to others in your company, how to get better code documentation, the benefits and drawbacks to being a lone writer, and how to write for both AI and humans. Enjoy! + +-------------------------------------------------------------------------- +How to make your work as a documentarian shine: Beyond "just writing docs" +-------------------------------------------------------------------------- + +It's a common challenge for documentarians: underselling the complexity and value of our work. Once tasks start feeling like second nature, we start underestimating how much we contribute to organizational success. If you've ever thought, "I just write docs," it's time to shift that mindset. Here's how to frame your work in language that can help others see the impact you make. + +- **Be loud and visible**: Visibility matters. Share your wins! Send monthly updates, create a quarterly newsletter, or give shoutouts in company-wide channels. Showcase not just what you did but how it made an impact – think before-and-after stories that illustrate real change. + +- **Track and report everything**: Time-tracking, KPIs, and regular reports help you prove your worth. Document coaching sessions, workshops, and cross-departmental consulting. Use ticketing systems to create a paper trail of your efforts. + +- **Embrace strategic terminology**: Think beyond writing and describe your work with terms that resonate with leadership. Use phrases like "stakeholder management," "internal consulting," "change management," and "scalability." You're not just documenting processes – you're enabling knowledge retention, improving self-service, and enhancing productivity across teams. + +- **Tie your work to business value**: Executives care about outcomes such as cost reduction, scalability, and operational efficiency. Demonstrate how documentation reduces support tickets, speeds up onboarding, and eliminates knowledge silos. If you can quantify time saved or efficiency gained, you're sure to be heard. + +In short, your work isn't just documentation; it's strategy, communication, and business transformation. Advocate for yourself and watch your value grow. + +See more Write the Docs resources about `working with other roles `__. + +------------------------------------- +Tips for improving code documentation +------------------------------------- + +Recently, documentarians discussed best practices for improving source code documentation. Developers are usually responsible for documenting their own code. But some developers may not realize that others have to understand their code, they may not know how to write for others to understand their code, or they may not write well in English. Another developer (or a technical writer) may be asked to help (or teach) a developer to document code — especially if the code is complex — so others can understand the code. + +When developers document their own code, they’re immersed in writing the code and write notes to remind themselves about their process. They may assume incorrectly that what they’re doing is obvious to everyone. Code documentation for others (or the writer in 6 months after they have forgotten) may contain: + +* The general objective of the code segment. +* If the code is complex, a comprehensive explanation. +* Interactions or relationships with other code segments. +* If the code is "unconventional", why certain choices were made (NOTE: This information may not be appropriate for all non-internal audiences). + +Simplistic documentation of properties (for example, for a string property: `Specifies the name of the object`) might not be so helpful to someone else. Consider including more details about what the value could be and anything else needed for others to understand how to use the property. + +To encourage developers to document code for others: + +* Have the developer return to the code after a period of time and see what they still comprehend. +* Have the developer write the documentation based on the specifications and then write the code. Correct the documentation as the code gets written and tested. +* Include in developer productivity metrics a way to equate good code with good documentation. + +See more Write the Docs resources about `specific doc types `__. + +----------------------------------- +The highs and lows of writing alone +----------------------------------- + +Like anything else, being a lone writer comes with benefits and challenges. You often have end-to-end control over the documentation, making the decisions and setting the standards. It's satisfying to have such autonomy, and you may even get to lay the foundation for a future docs team. Yet, as rewarding as it is to have ownership, it can be a double-edged sword. When you're the only person working on the docs, you're responsible if something goes wrong. + +Lone writers lack access to the range of skills and perspectives that comes with being part of a docs team. You don't have other documentarians to help with technical challenges or offer feedback on your decisions. It can also be difficult to get everything done, especially in a timely manner. Lone writers sometimes serve in hybrid roles (like engineer/writer or writer/developer educator) and write the documentation for multiple product teams, so they're often pulled in different directions. On the plus side, exposure to different roles and products can help you discover your strengths and passions. + +For many, the advantages of being a lone writer outweigh the disadvantages, but much depends on the culture of the organization. For example, you probably won't be able to make much progress without your manager's support for your vision and approach. Still, within the right environment, being a lone writer can be a great opportunity. + +See more Write the Docs resources about `career growth `__. + +------------------------------------------------------ +Writing AI-friendly *and* human-readable documentation +------------------------------------------------------ + +A recent discussion in the `#ai channel `__ touched on how to write documentation that could easily be parsed by large language models (LLMs) but still be nice for humans to read. One participant pointed to a `recent somewhat infamous decision `__ to close a proposed change to the Microsoft docs because tables might not work well for an AI chat bot. But no one wanted documentation that was only for machines. + +Multiple people commented that focusing on writing well for humans is the most effective way to make it usable for everyone, and everything. People focused on standard documentation practices, such as using structured writing and simple, clear language. Others noted that focusing on making your documentation accessible can also help, as good alternative text for images and clear labels can help tools that don't interact with the content in the same way as some humans. + +Another strategy was to focus on semantics. This could involve exposing semantic types, rather than keeping them hidden in XML tags. It can also mean making sure you chunk your documentation based on meaning when using techniques such as `retrieval-augmented generation `__. Some thought focusing on traditionally structured documents would be enough to solve this. + +If you work with a specific tool for chat, talk with the vendor about what works for that tool or check out their docs (such as the `recommendations from kapa.ai `__). If you want to make your content generally available, consider an `llms.txt file `__. In most cases, if you do the minimum and focus on making your documentation useful to humans, the content will be able to shine in any interface. + +See more Write the Docs resources about `AI and LLMs `__. + +---------------- +From our sponsor +---------------- + +This month’s newsletter is sponsored by `Document360 `_. + +.. image:: /_static/img/sponsors/document360.png + :align: center + :width: 50% + :target: https://document360.com/signup/?utm_source=nl&utm_medium=write_the_docs + :alt: Document360 logo + + +Note from Saravana Kumar, Document360 CEO: + +As organizations grow, so does the complexity of managing knowledge. At Document360, we believe a Knowledge Base should empower your customers & teams, not overwhelm them. That’s why we built a platform powered by generative AI to simplify how businesses create, manage, and share knowledge. + +Whether it’s a self-service knowledge base, API documentation, or SOPs, Document360 adapts to your needs – supporting private, public, and mixed silos seamlessly. + +Imagine a workday in which AI assists you in every stage of documentation creation, from generating content and suggesting titles to summarizing articles and even automatically creating FAQs, glossaries, and charts. That’s like hours freed up from your busy schedule! + +Whether you're in SaaS, IT, Fintech, Healthcare, or Manufacturing, Document360 helps you build a 24/7 consumable knowledge base that drives engagement and accelerates product understanding. + +If you want to simplify documentation and deliver real outcomes for your team and customers, I invite you to experience Document360. Start your `free trial `__ today or schedule a `personalized demo `__ with our solution experts. I’m confident you’ll see why it’s the preferred choice for technical writers worldwide. + +*Interested in sponsoring the newsletter? Take a look at our* `sponsorship prospectus `__. + + +------------------ +Featured job posts +------------------ + +`Senior Technical Writer `__, Wise – *London, hybrid, 3 days in the office* + +*Interested in promoting your open position? See our* `job posting sponsorship `__ *for more details.* + +------------------------ +Write the Docs resources +------------------------ + +Write the Docs offers lots of valuable resources related to documentation. See all of the Write the Docs `learning resources `__. To discuss any of these ideas or others related to documentation, join the conversation in the `Write the Docs Slack community `__ in one of the many `channels `__. That's where all the ideas in the newsletter come from. + +---------------- +Events coming up +---------------- + +- 6 Feb, 17:30 CST (Austin, USA): `Write the Docs ATX Social Event @ Cherrywood Coffeehouse `__ +- 7 Feb, 08:30 EST (US East Coast Virtual): `Social Hour for Documentarians `__ +- 11 Feb, 19:00 MST (Calgary, Canada): `When the going gets tough: How to create great content with limited resources `__ +- 17 Feb, 11:45 AEDT (Australia): `Virtual: Rethinking traditional approaches to release notes `__ +- 20 Feb, 18:30 GMT (London, United Kingdom): `Support 🤝 Documentation: A Two-Way Street `__ +- 21 Feb, 08:30 EST (US East Coast Virtual): `Write the Docs East Coast Virtual Meetup `__ +- 24 Feb, 12:30 IST (Tel Aviv+, Israel): `How to Make Great Instructional Videos `__ +- 25 Feb, 18:00 EST (Ottawa, Canada): `Write the Docs Ottawa Meetup `__ +- 7 Mar, 08:30 EST (US East Coast Virtual): `Write the Docs East Coast Virtual Meetup `__ diff --git a/docs/organizer-guide/newsletter/newsletter-process.rst b/docs/organizer-guide/newsletter/newsletter-process.rst index 9a8a19fe1..9db9dd676 100644 --- a/docs/organizer-guide/newsletter/newsletter-process.rst +++ b/docs/organizer-guide/newsletter/newsletter-process.rst @@ -52,7 +52,7 @@ Once all the story drafts have come in, it's time to assemble, based on the outl :og:image: https://www.writethedocs.org/_static/logo-opengraph.png - .. post:: January 01, 2022 + .. post:: January 01, 2025 :tags: newsletter ######################################### @@ -67,31 +67,38 @@ Once all the story drafts have come in, it's time to assemble, based on the outl Segue into articles. - ------------------ TITLE OF ARTICLE 1 ------------------ CONTENT. + See more Write the Docs resources about `{TOPIC_NAME} `__. + ------------------ TITLE OF ARTICLE 2 ------------------ CONTENT. + See more Write the Docs resources about `{TOPIC_NAME} `__. + ------------------ TITLE OF ARTICLE 3 ------------------ CONTENT. + See more Write the Docs resources about `{TOPIC_NAME} `__. + ------------------ TITLE OF ARTICLE 4 ------------------ CONTENT. + See more Write the Docs resources about `{TOPIC_NAME} `__. + ---------------- From our sponsor ---------------- @@ -121,11 +128,20 @@ Once all the story drafts have come in, it's time to assemble, based on the outl *Interested in sponsoring the newsletter? Take a look at our* `sponsorship prospectus `__. + ------------------ Featured job posts ------------------ - TODO + `JOB TITLE `__, COMPANY - *LOCATION* + + *Interested in promoting your open position? See our `job posting sponsorship `__ for more details.* + + ------------------------ + Write the Docs resources + ------------------------ + + Write the Docs offers lots of valuable resources related to documentation. See all of the Write the Docs `learning resources `__. To discuss any of these ideas or others related to documentation, join the conversation in the `Write the Docs Slack community ` in one of the many `channels `__. ---------------- Events coming up diff --git a/docs/topics.rst b/docs/topics.rst index 25615c1ec..c840cc9e6 100644 --- a/docs/topics.rst +++ b/docs/topics.rst @@ -181,6 +181,7 @@ Other specific doc types Including how-tos, reference docs, tutorials, and books. +- |:newspaper:| `Tips for improving code documentation `__ - |:newspaper:| `Documenting YAML Files `__ - |:newspaper:| `Code samples: Comments and placeholder text `__ - |:newspaper:| `Templates for concept documentation `__ @@ -335,6 +336,7 @@ Related roles Career growth ~~~~~~~~~~~~~ +- |:newspaper:| `The highs and lows of writing alone `__ - |:newspaper:| `Dealing with Feeling Blocked by Bureaucracy `__ - |:newspaper:| `How to describe career progression `__ - |:newspaper:| `Loneliness of the “Lone-ly” Documentarian `__ @@ -551,6 +553,7 @@ DITA AI and LLMs ~~~~~~~~~~~ +- |:newspaper:| `Writing AI-friendly *and* human-readable documentation `__ - |:newspaper:| `Accelerating Documentation Creation with AI `__ - |:newspaper:| `Iterative Writing with a Chatbot `__ - |:newspaper:| `Structured Authoring and Large Language Models (LLMs) `__ @@ -764,6 +767,7 @@ Working with other roles Including product managers, higher-ups, etc. +- |:newspaper:| `How to make your work as a documentarian shine: Beyond "just writing docs" `__ - |:newspaper:| `Dealing with difficult-to-understand drafts `__ - |:newspaper:| `Helpful Questions for Gathering Information `__ - |:newspaper:| `Getting Info from Others `__