On Mar 6, 11:54 am, Russell Keith-Magee <russ...@keith-magee.com> wrote: > On Sun, Mar 6, 2011 at 2:41 PM, Vivek Narayanan <m...@vivekn.co.cc> wrote: > > @Sebastien: I got your point about using a dict as an intermediate > > structure and the use of recursion, and I looked at your > > implementation which is somewhat similar to what I have in mind. > > > Well, here is a list of deliverables for the project: > > > • Investigate existing structure of the serializer, make changes, > > refactor to suit needs. (1 week) > > > • Implement metadata methods, change the ``fields`` argument of > > serialize(), write unit tests. (2 weeks) > > > • Implement structures and templates parsing for custom serialization, > > configurations for XML/JSON/YAML etc. Also, write tests for this. (2 > > weeks) > > > • Handling of nested and related models. (1 week) > > > • Investigate the changes to be made at deserialization side and > > implement them. (1 week) > > > • More tests and write documentation. (2 weeks) > > > This is a conservative estimate and am keeping 3 weeks as a cushion. > > Here's some advice: If this is what your final plan looks like, I > would expect that your proposal would be rejected. Here's why: > > * We prefer projects to have a clear design in mind before > implementation begins. It's ok if refinements happen along the way, > but "investigation" periods (and you have 2 of them) are not something > that should be required. You investigate while you develop your > proposal. > > * Testing isn't an activity that can be clearly separated. It's an > integral part of code development. Having a "more tests" activity > indicates you either haven't allocated enough time for testing during > development, or you're trying to pad your timeline. > > * Padding with a 3 week cushion gives the impression that you haven't > thought about the effort required. 3 weeks of full time development is > a long time. > > * I'm sceptical of any plan that consists of "2 week" estimates. > Again -- a week is a long time. If you can't clearly express what will > be developed, tested and delivered in a week long timeframe, then I > don't think you've thought about the problem hard enough -- at least, > not hard enough for us to recommend that Google give you $4k, and > someone from the project spend many hours mentoring you. > > Yours, > Russ Magee %-)
I sent a message to this thread yesterday, I'm not sure why it didn't appear here, so I'm sending it again. First of all, thanks a lot for taking the time to go through the proposal and I really appreciate your feedback. I must concede that I've not been very clear and ended up sounding different than what I really meant. I will be testing as I code, I just referred to some bug fixing in the final stages. Here is a revised timeline: In the run up to May 23rd, I'll be familiarizing myself with the codebase and community practices of Django, examining all the integration points and looking at the best practices of serialization. Week 1: I'll be implementing a basic skeletal structure for the serializer, which will set the stage for the rest of the project. Week 2: Implementation of the deserializer. Week 3: I'll add support for the metadata methods as discussed above. Week 4: Support for datatype conversion and the unicode conversion class methods. Week 5: Add support for string templates and output formats. Week 6: Add support for 'modes' as in JSON, XML, YAML etc, complete the deserializer. Week 7: Implement serialization of related models, M2M fields, foreign keys and nesting depth. Week 8: Add support for ``extras`` and ``exclude`` parameters in the call to serialize(). Modify ``fields`` parameter as described above. Weeks 9-10: Check for bugs, fix them and write documentation with many examples. Weeks 11-12: Refine the project and its documentation. I'll be spending 40-45 hours a week on average. Sincerely, Vivek Narayanan -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.