Or better yet, API versioning!
On 4/11/09, Jesse Stay jesses...@gmail.com wrote:
Doug, can you guys do what Facebook is doing, and release it on a beta
server somewhere beforehand so we can test it on our apps before you
actually release it to the public? A public staging server of some
sort. That will keep these surprises from happening, and we can start
working out alerts to have in place when things might break our code
that go on that beta server. Best of all, it won't ever affect the
end user. Keep the releases on that server, then the releases out to
the public on a timed release schedule. It might take a little longer
to get out to the public, but you'll have a much happier developer
base and in turn a much happier end user by doing so. That would be
my number one suggestion.
Do you guys do any tracking of Twitter itself for developers
complaining about the API? I would also think you could gain some
insight from that as well.
@Jesse
On Fri, Apr 10, 2009 at 12:04 PM, Doug Williams d...@twitter.com wrote:
Twitter's development model is pragmatically agile where features enter
the
code base right alongside bug fixes. You can see this in our changelog
[1].
What is not clear from the log is that most of the code is written just
days
before.
April 8th's rapid deprecation of the since parameter/If-Modified-Since
header (and to a lesser extent, the removal of undocumented HTTP POST
access
to accounts/verify_credentials) [5] caught a number of developers off
guard.
The criticism of this hasty change on the impact to hackers and businesses
alike was both valid and appropriate. The results from last month's survey
[6] lead us to believe that the use of this parameter was minimal and that
it was safe to capture performance gains through the deprecation. In
hindsight, our sample size was statistically insignificant because we made
a
mistake.
It is apparent we need to make a change towards transparency. Openness
demands we give developers a clear line of communication when changes are
made that will break current functionality. While these changes are rare,
they do happen. As a result of this week's conversation, we will give a
minimum of 5 business days notice before we ship code that removes
currently
documented functionality. Two notable exceptions are critical security and
performance fixes.
Five days may seem short notice but it is a compromise from our standard.
There are two major concerns we must consider when shelving code that is
ready for deploy:
1) We do not write unnecessary code. Code only exists in the deploy
pipeline for a feature or defect fix that is ready to go out the door. We
view deployable code as an asset that should be handling requests as
quickly
as possible.
2) Un-merged code adds complexity. The Twitter code base is constantly
moving. Deploying code requires merging with the master branch which grows
in complexity as an undeployed branch sits idle.
We currently use the changelog [1], @twitterapi [2], The API Announce List
[3], and the Dev Group [4] to inform developers of changes in hopes that
features will get used, and deprecations will be honored. I'd suggest any
developer with a long-running application to subscribe to the low noise,
only signal, API Announce mailing-list [3] to receive API updates as they
are released.
Lastly, lets work together. Tell me what you developers need that we are
not currently providing. How can we better manage this communication?
Which
method of notifications work best for you? Aside from transparency with
API
changes, what else do you want to know?
1. http://apiwiki.twitter.com/REST+API+Changelog
2. http://twitter.com/twitterapi
3. http://groups.google.com/group/twitter-api-announce?hl=en
4. http://groups.google.com/group/twitter-development-talk
5.
http://groups.google.com/group/twitter-api-announce/browse_frm/thread/5822fbfd5ea857c6?hl=en
6.
http://groups.google.com/group/twitter-api-announce/browse_frm/thread/68f2667f4e9842aa?hl=en#
Keep the bytes flying,
Doug Williams
Twitter API Support
http://twitter.com/dougw
--
--
Aaron Brazell
web:: www.technosailor.com
phone:: 410-608-6620
skype:: technosailor
twitter:: @technosailor