We're not strictly an Agile shop, actually, but thanks.

On Mon, Apr 13, 2009 at 18:16, James Deville <james.devi...@gmail.com> wrote:
> Another point. If you are fundamentally agile, you should have stories and
> iterations. What if you posted current breaking change stories at the start
> of the iteration before you started them. Assuming a 1 or 2 week iteration,
> we get time to comment, and you won't have to hold code back.
> JD
>
> On Sat, Apr 11, 2009 at 1:19 PM, Abraham Williams <4bra...@gmail.com> wrote:
>>
>> If versioning is used how long should versions be supported? A week? A
>> month? Lets just say a month for now. If Twitter pushes out changes every 2
>> days it is possible that there would be 15 versions running at any given
>> time. This is an extreme example but something to think about.
>>
>> On Sat, Apr 11, 2009 at 13:56, Alex Payne <a...@twitter.com> wrote:
>>>
>>> Right now, every new machine we get goes immediately into production.
>>> Once we have enough machines that we can get ahead of that capacity
>>> planning, I think a "beta.api.twitter.com" is a great idea. And/or
>>> versioning.
>>>
>>> On Sat, Apr 11, 2009 at 11:00, Yu-Shan Fung <ambivale...@gmail.com>
>>> wrote:
>>> > I second Jesse's suggestion. Having a staging server to test out API
>>> > changes
>>> > would help smooth out transitions (though people needs to be careful
>>> > about
>>> > what change they make as presumably this will run against prod
>>> > database).
>>> > That way your internal developers can directly push code ready for
>>> > release
>>> > immediately to staging instead of waiting 5 days.
>>> > It'll probably also help sanity internally at Twitter. Who knows, with
>>> > developers hitting the staging API before it goes out, we might even
>>> > help
>>> > catch a bug or two once in a while before it goes out :-)
>>> > Yu-Shan
>>> >
>>> > On Sat, Apr 11, 2009 at 2:21 AM, 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
>>> >>>
>>> >>>
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > “When nothing seems to help, I go look at a stonecutter hammering away
>>> > at
>>> > his rock perhaps a hundred times without as much as a crack showing in
>>> > it.
>>> > Yet at the hundred and first blow it will split in two, and I know it
>>> > was
>>> > not that blow that did it, but all that had gone before.” — Jacob Riis
>>> >
>>>
>>>
>>>
>>> --
>>> Alex Payne - API Lead, Twitter, Inc.
>>> http://twitter.com/al3x
>>
>>
>>
>> --
>> Abraham Williams | http://the.hackerconundrum.com
>> Hacker | http://abrah.am | http://twitter.com/abraham
>> Web608 | Community Evangelist | http://web608.org
>> This email is: [ ] blogable [x] ask first [ ] private.
>> Sent from Madison, Wisconsin, United States
>



-- 
Alex Payne - API Lead, Twitter, Inc.
http://twitter.com/al3x

Reply via email to