Was this page helpful?

Postmortem

    This postmortem was held on 2008.09.10 to discuss shortcomings in the Kilen Woods release and ways we can improve our engineering process to not repeat these mistakes.

    Issues from previous postmortem

    Here are the issues with the previous postmortem that were discussed:

    Problem Resolution
     Merges from mdc integration branches always led to instabilities  We didn't not branch in Kilen Woods, so this was a non-issue. However, we still need to address these issues for the Lyons release.
     We don't clearly define the scope of features, nor do we communicate changes effectively  We improved our release notes, which helped.
     Russian testers had broken API, and did not know  Still an ongoing issue - Russian QA needs more direction in addressing core functionality issues
     We can improve the release process; we set haphazard dates and oftentimes miss important steps  Much improved, but can still do better about setting a solid roadmap.
     Improve testing process  Added Daniil as a unit tester, and built buildmonkey to test Mono builds to ensure on breakages. Work on automating unit tests further and expanding test coverage. Adding tests for DekiScript.
     Server changes need to be communicated - the /@gui/ problem  Much improved the deki-cp rewrite rule change, but ran into issues with DirectoryIndex.
     Specific problem with UI cache  N/A
     Code cleanup/refactoring should be a consistent task  N/A
     Problem: there's lots of //todos in the src code  N/A
     Problem: minor features tend to be lost when it comes time to do release notes  Team did a much better job of filing bugs for features, which were automatically picked up by the release notes

    Issues during the Kilen Woods Release

    Missed bugs

    These are the bugs that were found critical and fixed after release:

     

    Bug# Summary Status Opened By Assigned To Severity
    #5025 Skinning: Uploading an empty logo kills php closed Guerric DmitryA minor
    #5023 Error uploading site's logo (not graphic files) closed DmitryA Guerric minor
    #5026 Unable to add external user via user management resolved MaxM MaxM major
    #5005 Changing a local user to remote does not pass out credentials to API resolved MaxM Guerric major
    #4985 "Add New Key" button does not work on adding new script page in control panel resolved mozhechkov Guerric minor
    #4975 Creating a single user does not create a password or send them a notification email resolved Guerric Guerric minor

     

    #5025 and #5023 were not critical fixes, but could potentially be problematic. The others were critical fixes, and could have been easily avoided, with proper test coverage.

    Improve testing procedure

    Issues like

    reference to undefined name 'mantis' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)
    should have been caught by the Russian QA team much quicker. How can we communicate more effectively the changes made so they can test against changes? (Maybe someone should summarize all check-ins on a daily basis).

    Given the number of operating systems we support, testing for all the RPMs can be a difficult process. This was a problem in Kilen Woods, as documented in this forum post. To improve this process, we are setting up on the new ESX server a snapshot of common Linux distros (Red Hat, Ubuntu, etc.) which we can quickly fire up, install Deki via RPM, and test the installation procedure. Having somebody go through the "big" new features (a list should be generated) would be immensely helpful.

    Be wary of writable resources

    Writable resources should be kept in a consistent spot - the fact that FCKeditor was writing the custom configuration into the editors folder made it an untenable solution for multi-tenants, and also required extra configuration. While most UI files store documents in /skins/common/cache, this is considered a "safe" folder to delete at any time, hence we couldn't store that information there. A long-term solution will require finding a permanent store for this folder.

    Writable resources also cause problems on the MSI installs, as they may cause IIS to restart - we should be very very careful when creating new writable resources. Any changes we make should also be communicated to the packaging devs.

    Communicating open-source vs. commercial

    This will be an ongoing work item, but we should have done better about being proactive about communicating open-source versus commercial. The message was locked up among a few members; it should have been more explicitly stated to the whole dev team earlier on in the process.

    Shipping delay

    While Kilen Woods was expected to be in August, an early announcement, timed with OSCON went out. The August release date was missed, as tying together the open-source and commercial editions of Deki caused the open-source version to be delayed, while the commercial edition kinks were worked out (along with all the compat issues with open-source). If we had treated the commercial developments to the application outside the scope of Kilen Woods, KW could have shipped three weeks earlier (on time). Given that the product activation was originally only supposed to be a part of the MSI, the delay in adding it to the Linux version was acceptable.

    This development could not have started earlier, as the business side of things hadn't been clarified - the message was only completed hammered out after OSCON, and the technical implementation (refining exactly how commercial/open-source co-exist) took a few weeks after that (signed binaries are hard!).

    SVN syncing to SF.net is a slooow

    Is it necessary to sync our temporary branches to SF.net? We could probably just get away with posting the primary /product/deki branch on there, which would make synchronizing a lot faster.

    Localization

    If there was a big failing in Kilen Woods from a product point, it was the exclusion of localized strings for the new control panel. Due to the new rewrite, it was nearly impossible to carry over the old localization keys to the new ones - hence we trashed them all. However, with 2 release candidates, we should have done a better job of reaching out to the previous translators and coordinating translations.

    In the future, we will maintain a listserv for translators, giving them a heads-up on changed keys. We are also going to develop a online tool which will make translating strings much easier.

    (Should we look at Ubuntu's sytem?)

    Binaries from buildbot

    Is it possible to have the buildbot post binaries, so we we can have a flag in updateWiki.sh that will pick up the nightly binaries without having to build?

    Blogging

    Our blogging: epic fail. Now that we have shipped many features, the engineering team should make a concerted effort to write more blog posts. Ideally, we can put together quick videos to highlight features. A list of bloggable topics should be put together.

    Keeping installation documentation current

    While a lot of our installation documentation remains up-to-date, they are poorly titled. We should make sure that after each release, the installation instructions are up-to-date.

    Changing our release strategy

    In the past, we have shipped both features and bug fixes in incremental releases. This will stop being the case - incremental releases will only contain bug fixes and specifically approved refinements.

    Was this page helpful?
    Tag page
    You must login to post a comment.

    Copyright © 2011 MindTouch, Inc. Powered by