Internal PR Method NotesJanuary 4, 2022
Internal PR method for product development
- Who is the customer?
- What is the customer problem or opportunity?
- What is the most important customer benefit?
- How do you know what customers want?
- What does the customer experience look like?
- The Big Idea is ______________
- The most important benefit to the customer is ____________
Here’s an example outline for the press release:
- Heading - Name the product in a way the reader (i.e. your target customers) will understand.
- Sub-Heading - Describe who the market for the product is and what benefit they get. One sentence only underneath the title.
- Summary - Give a summary of the product and the benefit. Assume the reader will not read anything else so make this paragraph good.
- Problem - Describe the problem your product solves.
- Solution - Describe how your product elegantly solves the problem.
- Quote from You - A quote from a spokesperson in your company.
- How to Get Started - Describe how easy it is to get started.
- Customer Quote - Provide a quote from a hypothetical customer that describes how they experienced the benefit.
- Closing and Call to Action - Wrap it up and give pointers where the reader should go next. You can accompany the press release with a FAQ that answers all of the other business or execution questions so the press release can stay focused on what the customer gets.
Write press-releases in what I call “Oprah-speak” for mainstream consumer products. Imagine you’re sitting on Oprah’s couch and have just explained the product to her, and then you listen as she explains it to her audience. That’s “Oprah-speak”, not “Geek-speak”.
Rule 1: Must be stated at a future point in time where success has been achieved and realized. Press releases at “launch” are good, but a better one is sometime after launch, where true success can be discussed.
Rule 2: Discuss why it was important, often time to customers (or other key stakeholders). Discuss the accomplishments first in terms of why it is important to customers. How did the customer experience improve? Why do customer care? Then discuss other reasons why it was important and key goals.
Rule 3: Set an audacious and clear goal: Articulate a clear measurable results including financial, operating, market share
Rule 4: Outline the principles used that led to success. This is the trickiest, and more important. Outline the hard things accomplished, the important decisions, the design principles that led to success. Discuss the issues that had to be addressed to have success
The future press release is a type of forcing function
Sorting BullshitNovember 4, 2021
You can sort through bullshit, but at the end, all you have is neatly organized piles of bullshit. It’s better to just throw it all away in the first place and be done with it, switch your focus to something that matters.
Weird cultural compatibilitiesOctober 23, 2021
I have an affinity for rednecks and club kids, and I feel basically neutral towards everyone else. I don’t know what happened.
How to write a job adOctober 20, 2021
I’m chatting with a friend right now who is trying to hire a junior developer. He sent me the Upwork post he is using and it’s terrible. I won’t post his ad copy here, but you can just browse Upwork and find plenty of ads that follow the same lines:
We’re building a web-based SaaS and our lead developer is looking for some extra support.
The back-end of our service is built with BUZZWORD, BUZZWORD and BUZZWORD. The UI is built entirely with OMG WHY?. We need someone comfortable with WORD SALAD I CAN’T EVEN READ IT who can be assigned tasks such as BORING, BARF, UNINTELLIGIBLE TECHNO SPEAK, JERKING OFF THE SENIOR DEV to be more BUZZWORD and thoroughly documenting your work.
We use SOME TOOL YOUR SUPPOSED TO KNOW BUT DON’T REALLY UNDERSTAND for something developers are supposed to do and SOME CORPORATE APP YOU’VE NEVER HEARD for BOSSING YOU AROUND. Currently we have such and such to do with so many hours of work, but if you’re a good boy we will consider giving you full-time hours, leading up to our launch date a few months from now, at which point you’ll be wondering what to do when you have one full-time client and now they don’t need you anymore.
If I’m a programmer browsing job ads, I immediately “next” this ad. Even if it were 15 years ago when I was a junior developer and anxious to take any jobs I could get to gain experience. Here is the job ad I sent back to my friend:
We’re looking for a junior LANGUAGE developer who can learn from and support our senior engineer.
If you are comfortable with LANGUAGE and familiar with BUZZWORD, then this job is an opportunity to level-up your skills under the guidance of an experienced lead developer.
Your job will be to support our lead dev by handling tasks like BORING. You will also have the opportunity to refactor existing code, working with our lead dev to better understand how to produce clean code and solid documentation.
Our app is built with BUZZWORD, BUZZWORD AND BUZZWORD and deployed with BUZZWORD. We use SOME TOOL YOUR SUPPOSED TO KNOW BUT DON’T REALLY UNDERSTAND for for something developers are supposed to do and SOME CORPORATE APP YOU’VE NEVER HEARD for BOSSING YOU AROUND. You don’t need to be an expert with these tools, but show up ready to learn!
The original post tells me what they want, but as a developer I don’t really care what they want, everyone wants the same thing, they want to hire a developer. What I care about is what’s in it for me — interesting new technologies, learning from more experienced programmers… that’s enough to apply, later I’ll find out about the team culture, the availability of work and the rate
You have to attract programmers who aren’t just looking for any job that will pay them, if all they care about is how many hours you have and how much you pay, they probably aren’t good and they probably won’t give you their best work even if they are.
Fungible Human Resources For Fun And ProfitOctober 18, 2021
Email me for more details :)
Post to Hugo via email - demo videoSeptember 30, 2021
I’ve got a lot to improve, but here’s my “first” YouTube video (I actually made a whole bunch of demo/progress videos several years ago when I was the original UI developer for PangeaPoker, but I don’t any of those videos are on the Internet anymore).
Anyway, this is my first new video, I figure I’ll just keep at it until I don’t suck as much.
Bart: [trying to think of something comforting to say] “Uh…Dad? Whenever, I would hang out with Grandma, she would always ask me about you. And I say you’d suck. And she would say that you don’t suck that bad. Homer: She said I didn’t suck? Bart: That bad.
Test post for refactoringSeptember 30, 2021
I am a post to use for testing and refactoring.
First Programming Live StreamSeptember 25, 2021
Did my first programming live stream today. A couple people joined me in Google Meet, and a few people followed along on Twitch.
Unfortunately I didn’t capture audio correctly in OBS, so the people in Twitch could only hear me talking… I did have this setup working before, I’ll make sure to get it working better for next time. Also, I didn’t realized that you need to enable saving streams BEFORE you start streaming, so this stream is lost forever, but that’s okay, it’s a nice memory for those of us that were there.
We looked at the Hugo “post by email” code, with the intention of giving a quick overview of Python package development, so we looked at some Python code, unit-testing code, package setup and how to do deployment. We refactored the email header extraction code into it’s own unit-testable function.
One of the guys watching in Twitch already starting cloning the repo and running the project while watching the stream, so I will probably work with him in the next few days to make more improvements to the code and make it useful for more people. One of the guys that was in the Google Meet runs a couple sites on Hugo, so maybe we can get the code to a point where it would work for his sites.
I had fun streaming. It was suggested to me that maybe YouTube Live is a better option. I have no real preference, whatever works. What I do care about is doing streams for this longer form of video where we figure stuff out live, interact with the chat, etc. And then use the experience of the streams as prep to make tighter standalone videos. For example, after the stream today I could make several shorter (10-20 min) videos showing various things that we looked at on the stream: demoing the post by email software, using unit-testing to refactor code, looking at the IMAP RFC, specifying some Python dependencies with setup.py and others with Tox, etc.
This stream has also already lead to ideas for other streams, like having someone new to Python screen share while setting up the package, or having someone new to Emacs get started with Emacs from scratch and start learning basic commands and setting up their environment. During these kinds of videos I will hangout and guide them while we watch their screen.
Private post about success and motivationSeptember 25, 2021
I thought I’d succeed as an entrepreneur by hiring people smarter than me and managing people well.
That notion was horribly misguided, and I explain why in-depth in a lengthy post on a private forum where I have a progress thread.
It’s a pretty personal and candid post, which is why it’s on a private forum and not visible to the public, but if you’re interested let me know and I can share it as an email.
VanillaSeptember 24, 2021
It’s fucked up that “vanilla” is so often a contemptuous term.
Vanilla is a standard flavor for a reason.
Commonplace is bad when standards are low, but when the standards are high, then the standards deserve respect. This reminds me of the UX designers out there dreaming up their own special, unique designs instead of using standard UX patterns that are proven to work… but I don’t want to think about that now, I was thinking about ice cream which is a much happier subject.
Just saying, vanilla tastes incredible, it’s a quality product.
Post By EmailSeptember 22, 2021
Yesterday I created a “post by email” system to make it super easy to publish blog posts. Posterous already did this back in the day and I guess Wordpress does it too. Well, now my Hugo site also supports posting by email.
Here’s the code: post-by-email
It’s a pretty basic Python package, but for the right person it’s a good reference on using IMAP with Python, reading the IMAP RFC, and as an example of how I do Python packaging, test-driven development and simple devops using Make and Python scripts.
At the moment the package is specific to my needs for my site, but I’m willing to generalize bit by bit if anyone else wants to use it. Otherwise, if you want your own “post by email”, just use mine as a guide and change the code where you need to for you purposes.
The nice thing about post-by-email is that now I’m writing blog posts in my email client while sitting through a meeting. Now I can post from my phone without worrying about Hugo, or environment variables or anything like that. Just send an email and then post-by-email adds the content, builds the new site and deploys.
I’ve done similar stuff in the past with Netlify and Github Actions, but for my purposes right now, posting by email is better.
Category theory notificationsSeptember 21, 2021
A long time ago I subscribed to email notifications from Bartosz Milewski’s blog. The last notification I received kicked off some potential energy that’s been building up for years, waiting for the right time.
So now I’m watching lectures on category theory and working through a book on Haskell.
I’m always messing around with different languages that I find interesting. APL is one of my favorites for when I just having fun learning something new. But I think there is a future with Haskell and at the moment I’m committed to gaining actual competence with the language.
Off-label praxeologySeptember 21, 2021
I will write an email soon about some controversial off-label uses for praxeology, and probably some related ideas that will come up as I’m writing. I won’t publish this email on the web, but I can send it to you if you’re interested, just contact me and let me know.
A couple rants of my ownSeptember 20, 2021
I wrote a 5000 word email today, first responding to a few technology/programming rants a friend shared with me, and then going off on two rants of my own:
Reveling in my arrogance and over-confidence as an engineer
Contemplating my future as a programmer
I’m not going to publish these rants openly, but I can share the email if you’re interested.
Blog v2 IntroSeptember 20, 2021
This is blog v2, although it’s at least my 4th blog that I can remember…
- On my first homepage
- Programming blog, “The Well-shorn Yak” on Blog Spot or whatever it was
- My first blog on MDashX
- This blog
The contents of 1 and 2 are unfortunately lost. The best thing I got out of those was when I wrote an article on how to modify the Flask source code to make it work with JSONP. If I were smarter I would’ve actually contributed the code to Flask, but anyway people were looking for the solution and my blog was the top search result on the topic back in the day (this was around 2011-2012). It was a small thing, but it was really nice when people thanked me for writing the article.
The contents of number 3 are mixed into the “notes” section of this site.
There is no point to this blog other than to be as bloggy as possible, with unchecked drivel, personal trivia and over-sharing, repetition of tired cliches, and most likely going dark for long-periods with no explanation.