Blog Post Driven Development
blog.estimote.com
blog.estimote.com
The content of published articles does help not only with team focus, but also is a natural "deliverable" definition for UI-less products such as SDK. Blog post simply cannot be published unless code is in the Github repo, tutorials and sample apps are there as well as illustrations and narration communicating new features.
I think writing a mission statement or press release before development would sink a lot of projects before they began and save millions.
Perhaps one of the things I should have stressed more is what good fun it is to have robust debate about why our work matters! Planning SDK work (even refactoring / housekeeping) doesn't have to be dull.
This blog post is an example the BS PR that Amazon does. IT's frankly dishonest self aggrandizement.
this is Jakub, co-founder of Estimote (YC S13).
As a dev-oriented company our SDK team used to ship tons of new code into our Github repos. We realized that our SDK is much harder to productize and define an explicit "deliverable".
Thus past few months we have applied "Blog post driven development" where the aim of the sprint was to build, test, document and communicate SDK changes in a form of a blog post.
This technique is working for us really well, so John who is driving that team as a Project Leader decided to share the details with the HN community. We hope you will enjoy it and feel free to comment.
--- Here is also a snapshot of our recent blog posts as as a proof shipping code with posts is working really well:
- 5/15 - OAuth support for easier integration of Estimote Cloud into your services - 5/06 - Hugely improved Indoor Location SDK (4-meter accuracy) - 5/04 - Updated Android SDK - 4/23 - Improved beacon real-world analytics (new SDK + API) - 4/21 - Estimote Cloud updates (tag beacons with metadata + GPS location) - 4/15 - Conditional beacon broadcasting (for power saving & easier prototyping) - 3/24 - Fleet Management API - 3/18 - New SDK and firmware - 3/13 - C# and JavaScript support - 3/04 - Support for Apple Watch - 2/24 - Infrastructure Sharing (open beacons to 3rd party apps/brands) - 2/13 - Trigger Engine
Edit: It's honest feedback, the down vote is unwarranted.
Wojtek from Estimote here. Thanks for sharing your thoughts and sorry for the delay with stickers: it took us longer than expected to reach mass production. It was a lot of work (and admittedly more time than initially assumed) to get the enclosures, firmware, PCB and antenna design, and SDK just right. But we'd rather change the shipping date than compromise on product quality. While in software development you can go with the 'f--- it, ship it' mantra and fix stuff with rapid release cycle, it doesn't really apply to hardware.
The initial hurdles are behind now and we're shipping a lot of Estimote Stickers daily now, burning through the backlog fast. All pending pre-orders should ship by the end of Spring, or in early Summer at the latest. You can send me your order number to wojtek[at]estimote[dot]com and I'll check what's the status and when it's going out.
Cheers.
Same as above: you send me your order # to wojtek[at]estimote and I'll update you on the expected delivery. And really sorry for the delay!
Cheers.
If we devote a sprint to finishing a cohesive goal, I find it extremely likely that some team members will be twiddling their thumbs for extensive periods of time. Or that team members will need to re-work stuff to fit with a key piece, which I consider even worse than thumb twiddling.
Do other teams experience this? How do you deal with it?
I try to have 1-2 big goals (stories) for the team in a sprint, and a few smaller, unrestricted ones as well. If we get blocked on the bigger stuff, the smaller stuff is ready to get knocked out.
If those doing the thumb twiddling are important team members who are tangential to this sprint, why not offer them a bonus vacation or something else morale boosting that doesn't require their butt to be in a seat when it's not necessary?
If they're not really helping you accomplish any important goals, why are they on your team?
All that said, it sounds like you've already struck a pretty good balance between accomplishing big goals and taking care of small but necessary stuff.
What a pleasant surprise!
It did quickly remind me of Amazon's 'press release driven development'. I appreciate the desire to promote, but I wish some popular, public art was credited.
In terms of 1, within Drupal's developer community, I remember an aphorism, "Talk is silver, code is gold", which served to promote valuable productions over endless discussions. Then, someone took that and a general feeling of a need for foresight before hasty implementation and said, "Talk is silver, code is gold, and planning is diamonds."
In terms of 2, for free software and community projects in general, I get a sense that this approach aligns with stakeholder engagement[0] toward empowering active developers with broad community feedback through timely awareness and helps community cohesion, as well as user empowerment.
On a brief theoretical view of this aim to align shared interests, this approach strikes me as an appropriate response to dramaturgical awareness. In terms of impression management[1], I get a sense that contributors generally want users to see them as involved for good cause and effect, and users want to be seen as grateful, willing participants (hence comments sections on release posts with floods of thank yous). This outlet seems like one way to deepen this two-way information flow.
0: https://en.wikipedia.org/wiki/Stakeholder_engagement 1: https://en.wikipedia.org/wiki/Impression_management#Erving_G...
(a) we'll start the sprint with an outline of a blog post, a few key points, and a general theme. Then we get to work, and as we're approaching the grand finale, we start drafting the post. It actually always surprises us—when you start describing something in more detail, you bump into a whole set of "hmm, we didn't think of that", "this could use better docs", "oh wow, that part really is exciting" etc. So it does us a ton of good in terms of polishing the feature we're about to release, but at the same time doesn't block us from moving forward with the implementation.
(b) but really, the rule we try to live by the most is to ship fast and often. A feature doesn't need to be perfect, we're shooting for an MVP. Sounds like a cliche, I know, but it works great for us. Long gone are the days when we'd debate, "maybe a few more RESTful endpoints for these new analytics, maybe a few more filters". Now we'll just ship it and start measuring traction & listening to feedback. If people want more, great, if not ... uh, at least we didn't waste time and can get back to the drawing board (: