Stealing Bulldogs Is Only The Beginning

When a pair of thugs stole Lady Gaga’s French bulldogs, the world came to a stop. I thought it was coming to an end. In fact, it was a preview of a coming thing and it’s going to be big. On a…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Notes from DevXcon SF 2018

I am super happy to crash this year’s DevXcon. Regarding the name; “Developer Relations” is a common term that’s been around a lot longer than DevX, and in some companies DevRel been moved into a marketing type of focus. The DevXcon is named to emphasize that DevRel can have a technical and UX focus.

Here are my notes!

The users of your product and the users of your content are not necessarily the same folks. You want to write content for those who will read it, even if they don’t use your product or content. Remember that your developers are NOT YOU. A lot of people get into DevRel because they love the product, and it’s hard to remember that you’re not the user of your content.

As DevRel people, our superpowers are our greatest weakness:

You might find out things that are scary, or that you don’t want to find out. But you’ll also find out things that will make you happy, will make you a better DevRel person, and will help you make better relationships with your developers.

Adaptive Path was one of the first companies focused around user experience, as opposed to just UI or design. At that time most companies didn’t have internal design teams, so we’d be brought in by a marketing or IT team. (Now, every company has an internal design team.)

Understand your users, redesigning your interfaces, and iterating on that. “Where the UI lives” changes over time. It could be a command line, but my experience is through graphical interfaces. That said, the same principles apply whether you’re doing a GUI or command line interface. In fact, the way that UX developed came out of software developed in the 70s and 80s. Usability testing was rooted in command line interfaces from way back.

Users experience an emotional journey when they are onboarding to a product or platform. Airbnb did a lot of research with guests and hosts trying to review their journey, and they found a few moments of anxiety, because essentially you’re staying in a stranger’s house. The moment that it’s highest is when the guest is approaching the front door. They’ve spent a lot trying to ameliorate that anxiety. We used to call these “moments of truth,” where if you succeed you win and if you fail you lose, regardless of what happens elsewhere in the experience.

At our organization, we asked users to fill out a short survey and 30 second video of where they were in their journey and what they had been doing. This was hugely useful for us to understand the highs and lows and the emotional journey that our customers were going through. An interview is great, but with multiple snapshots over time you get a better view of their status at any point in time. (In any of these studies, we paid the users for their time. You should expect to compensate your participants.)

Bear Douglas was previously at Twitter, Facebook and smaller startups.

Developers have different ways they interact with your company through the outside world. Open source can have a positive benefit on your company. Here’s how:

Recruiting is a great ally when it comes to open source engagement. When Sandstorm was deciding which company to join, engineers had contributed to two different languages of an open source library. They also had developers writing blog posts and giving talks about the library at conferences. This put Cloudflare at the top of the list. Positioning the organization as a good place to work by encouraging open source contribution can be very beneficial to recruiting. It’s also great for the careers of the engineers who contribute to those projects.

One way to accomplish this is what ThoughtWorks does. When their employees have downtime between projects, they can work on open source projects. This allowed a friend of mine to level up her skills, and was a compelling benefit when recruiting.

What would happen to your organization if the maintainers of open source libraries you use didn’t have the time to fix critical bugs? Your organization can help out organizations through organizations like Open Collective, by helping fix bugs, and giving project maintainers free upgrades. Your organization should help these projects out, and you should be able to find allies in your engineering organization.

In the case of open source community engagement, developers can get familiar with particular toolchains or workflows because of open source projects. I’m much more likely to use the projects that I’m comfortable with. Giving away your product to the open source community means you’re exposing your product to a socially influenced community focused on collaboration. This is especially true for developer tools.

There are a lot of open source companies that are VC-backed in a growth stage. How do you separate the crunchy granola from your larger enterprise story?

Jade heads developer relations at Cloudflare and previously was at Sandstorm.io, Meteor and NASA/Ames Research Center.

There are two main ways that users interact with Heroku: the dashboard and the CLI. There are important differences!

In the CLI, it’s up to the user to input and get a response. In the dashboard, there’s a huge visual experience with dropdowns and menus. It’s a lot easier to guide the user towards a particular experience.

They enable developers to work really really quickly. Developers can complete repeatable, composable tasks and scripting. Additionally, they make it easy to interact with an API. Using CURL, APIs can be tricky — using a CLI, it’s easy. Building for CLI takes a fraction of the effort of a browsers.

Every CLI should have a mission statement of what you’re trying to do with that CLI. This can help as you make design decisions. For Heroku, it’s all about usability and humans before machines.

In the CLI, your tool is words. Language and naming becomes very important. Our CLI is made up of topics (categories) and then commands. We also have rules about lowercase, single words, no special characters: this helps because we’re trying to help our users’ muscle memory. We place commands within topics and match this hierarchy with the filesystem.

We recently released command autocompletion, which lets you tab to complete a command based on text already entered. We also complete values, such as app names.

Safeguard against risky actions with a confirmation step. Some actions are pretty destructive, for example deleting your app or database. If a regular browser experience would include a confirmation popup, replicate this on the command line. Ask a user to confirm either by entering the app name when prompted, or run the command with a “confirm” flag and the app name.

We use spinners to convey state, similar to the way you’d see these in the browser — some with states that change to a check mark or x mark depending on success or failure. We’ve received so much positive feedback on these animations and status indicators. It makes the CLI really come alive for the user.

However, if something will take a little longer to complete, we use notifications to provide status updates. The user may be using a different terminal than the one for their long-running process. We provide an OS-level popup. We received mixed feedback on this, so we provided an option to turn this off. If something feels intrusive to a user, it’s important that the user be able to turn that off.

Enable machine output judiciously. It’s difficult to create specific output in the dashboard, but in the CLI using command line tools developers can get custom information displayed in their preferred format easily.

As much as we’d like them to, self-documenting APIs do not exist. We’re at a bridge of humans of machines, and that’s where API specifications sit.

OpenAPI is a sandard, structured approach for describing APIs that is both human and machine readable. Initially it was called Swagger, now it’s more a vendor-neutral spec and Swagger is more the tooling.

OpenAPI is a bridge to understanding and being able to communicate around using HTTP is a transport.

Everyone loves something that writes your docs for you! But OpenAPI is not just for API references. When you implement a new feature you need to update the server, client libraries, documentation, and coordinate between the client side and backend team. OpenAPI fulfills a lot of these problems. It’s a bridge between teams and removes silos that develop around the API development process.

OpenAPI is a tool for collaboration. It simplifies describing an API, standardizes terminology enabling discussions to happen between teams with less friction. There’s also this term of “API Fastness,” or developing an API quickly while still focusing on the overall developer experience.

Typically people get their spec one of three ways: automating it from the code, creating it from design first principles, or starting from scratch. Let’s focus on the second way, because it’s embracing what OpenAPI stands for. It leads to a consistent, standardized API. It makes users happier and less confused.

If you maintain client libraries or SDKs, you can have more options, create libraries and SDKs faster, and have libraries ready at time of release. How many times have you seen “We’ve released a new feature, and the Python library is coming soon.” You just lost a bunch of Python developers!

With mocking, you start with humans, ask what tasks do they want to accomplish, ask if the API will help them achieve these tasks, and then look to make sure the endpoints are not confusing.

Chris runs a small Python conference in the North Bay. Commercial events and volunteer-run events are different, and he’ll be talking about volunteer events because volunteers cost less. Sponsors know this. AWS charges $350k for their top-tier sponsorship, but our conference only charges $6k. Despite, this, sponsor benefits look similar at most conferences. We’ll look at why traditional approaches to event sponsorship can be difficult when your conference is based on volunteers.

When dealing with volunteer events, you have to understand that different types of people are running them. Volunteers are not paid staff. The main difference is that maintaining a consistent team of volunteers on a project, you need to give them a higher level of emotional upkeep than paid staff. You need to actively work on keeping them happy.

(You also need to keep yourself happy as an organizer, BTW.)

Make sure that every goal a volunteer has leads to effectively delivering the conference. The most effective goals are ones that lead to the success of the conference.

There are many goals where delayed gratification leads to delayed motivation. Sponsor sign-ups are one example, it can take 10 months from first contact to payment.

Past conferences have a track record, budgets, relationships, and profits from previous years to bootstrap your funds for this year. New conferences do not have this luxury.

First commitment: Be able to run the conference. Cancelling is a really poor move for a first year event. We wanted our sponsorship dollars to go toward seed funding to ensure that we can put the event on. Being able to cut benefits is important to new conferences if revenue isn’t up to goals.

Align Goals with Sponsors. Behind the scenes, organizers have to think about alignment, and you have to start with the budget. Frame your budget in terms of “what can make the conference viable?” and “what else can we do to make the conference thrive?” We itemized the budget to individual transactions, which allowed us to cut things that didn’t align with our vision.

Separate lines into “behind the scenes” and “audience facing.” Anything audience facing can be monetized into a sponsor benefit. Once you’ve identified these branding opportunities, you can align them with sponsors who fit. As an example:

In 2017, this approach delivered $19k of our total sponsorship amount of $49k, which is about 40%. These exclusive branding items tend to be higher in dollar amount, and fund more of the stretch goals we have as organizers.

It’s also easy for volunteers to see the benefit. It provides the immediate motivation that volunteers need to run your event.

Tao is a Senior UX Researcher at Google, with a focus on developer experience, programming tools and API usability. This talk will focus on Flutter, a mobile app SDK for crafting high quality native experiences on iOS and Android. Flutter’s three product pillars are high-velocity development, Expressive and flexible designs, and High-quality experiences.

The usability of an API is much different than its shape or functionality, it’s about the full interaction of using the API in a realistic setting. We need to include the tooling and documentation into the API into how we assess an API’s usability.

We don’t want developers to write buggy code, or feel frustrated/confused, when they use your API.

Oana is a Senior UX/UI designer.

Where do you begin when designing for developers? Ask yourself:

You need to start somewhere. If your team’s contention is that developers are power users, remind them that “developer” is not a single persona. There are front-end, back-end, app developers, devops engineers… each has their own purpose for using your application.

Personas are your best friend. Identify their goals and frustrations. Emotions lead to frustrations, and all users will become frustrated with a product at some point. This also helps us realize that we are not our users. Step back and put yourself in the position of “I don’t know anything.”

Let’s say you’ve built up some personas and designed an interface that works for one of your personas, e.g. content operations team. You’ll have to add more features for the different personas.

Example bad assumption: “We only focus on power users, they always figure a way to work with any software.”

Example good assumptions (testable:)

Focus! Make one feature at a time work great. Iterate and keep making it better.

Eventually we ended up with an adaptive UI based on user roles.

For testing your assumptions, you can use questionnaires, usability testing, A/B tests, and beta testing. As your project progresses from start to mid to end, the tools you use for testing will probably change.

They talked about their discovery and experiences in the Ubuntu community, and how Canonical dropped Ubuntu on a community of Linux user groups which had lost some steam after being excited about standing up to Microsoft, and expanded the community to include people who were coming into the LAMP stack right when there was a huge demand of web developers.

We need people outside GitHub to be just as excited about our product as we are about our own content. When I worked at Netlify previously, I was hired because I was engaged and excited about the product.

Your advocates can help push your product. When something happens, good or bad, you need your advocates to surface in the community and back you up. You can think of developer advocates as a specific type of superfan. There are a few things you can do to activate your developers:

Find out what metric your advocates will judge you on, and minimize/maximize as much as possible. This could be in onboarding, using the CLI, or finding reasons to return to your product. Great experiences lead to great engagement.

Diving into onboarding: specifically, we want to help users get started quickly. How long does it take developers to use your product? 1 minute? 1 week? The longer it takes, the less likely someone is to use the product. Onboarding should not stop at signup, it needs to continue with education.

Encourage better interactions within the product. Identify key places where the product can be improved. As an example, inside GitHub there’s an educational “Styling with markdown is supported” note to help people who may not know markdown.

At GitHub, we use the SCOOP acronym:

At this point, I had to take off for the airport. I hope you enjoyed the notes! If you enjoyed these notes, I appreciate your claps (up to 50!)

Add a comment

Related posts:

Adding new test cases for increasing test coverage of Loklak Server

It is a good practice to have test cases covering major portion of actual code base. The idea was same to add new test cases in Loklak Server to increase its test coverage. The results were quite…

How to Get the Most Out of Your OCR Tool

Optical Character Recognition makes it easier to create searchable documents, analyze paper documents and digitize documents for permanent storage. As an extremely broad technology, it can be applied…

Best Questions to Ask Your Landscaping Company

Choosing the right landscaping company is paramount in creating a perfectly planned, outdoor living area that is custom-designed just for you. Merit and reputation are the first qualities to…