Archive for October, 2005

The “Pick Two” Rule for Software Projects

This has been going over my mind for quite some time. So long, in fact, that I don’t remember if I’ve read it somewhere or came up with it myself. Here it goes.

Consider the following attributes that contribute to the value of a software project in terms of cost and profit:

  • Time to market
  • Features
  • Quality
  • For any Software Project with limited resources, when you pick any two of these attributes the third is going to be a trade-off.

    So, for example, if time to market is the major factor, you have to make a compromise between either “Features” or “Quality”. Accordingly, if quality is the main goal you will either have to drop some features or settle for increased time to market, if you need to maintain quality.

    Essential tools for Developers and Power Users

    Everyone loves little utilities that make life easier, especially if you’re a developer. Many times it’s hard to find them since we may not know exactly what we’re looking for. Here’s a nice list by Scott Hanselman.

    Scott Hanselman’s 2005 Ultimate Developer and Power Users Tool List

    I will soon prepare a list of mine.

    Functional Specifications

    I always thought Functional Specs are more of a burden, at least most of the times. Here’s an interesting take by Linus Torvalds.

    A ’spec’ is close to useless. I have _never_ seen a spec that was both big enough to be useful _and_ accurate. And I have seen _lots_ of total crap work that was based on specs. It’s _the_ single worst way to write software, because it by definition means that the software was written to match theory, not reality.

    Joel Spolsky has a slightly different take on the matter. And not just in theory.

    You can find the debate on slashdot.

    Favorite Firefox Extensions

    I’ve been a happy Firefox user for quite some time. I even run on nightly builds on a daily basis (the new auto-update feature of upcoming 1.5 release makes it really easy). I’ve tried quite a few firefox extensions so far, below is a list of some that I’ve found to be invaluable.

    If you’re using a nightly build, or a beta and some of your extensions are disabled, use the Nightly Tester Tools extension to enable them again.

    Web Development

    • Web Developer
      An excellent extension, worth getting firefox just for this. Too many features to mention here. Invaluable.
    • Inspect Element
      Adds an option in the context menu which when clicked will take you to the respective element in the DOM Inspector (built-into firefox).
    • Console²
      Console² is an enhancement over the default Firefox Javascript Console that let’s you display errors filtered by type (Errors, Warnings, Messages), language (JavaScript, CSS, XML) and context (Chrome, Content). Furthermore it provides a simple search box (as seen in the History and Bookmarks sidebars) and some accessibility improvements.
    • IE View
      Adds an option in the context menu to quickly load current page in IE, for comparisons.

    Usability enhancements

    • Greasemonkey
      Allows the customisation of pages through Javascript. You can find a wealth of ready-made scripts here. Unique.
    • Adblock Plus
      Get rid of ads, once and for all.
    • BugMeNot
      Another form to fill out, another service that needs registration? Right-click on any form field, select bug-me-not and this extension will load user-supplied information from a central site to automatically fill it out and submit!
      Brilliant!
    • PDF Download
      Gives you an option to either download a PDF, view it in another tab using Acrobat Reader, or as HTML!
    • Tweak Network
      This extension will allow you to tweak network settings to improve performance.
    • Feedview
      Displays RSS feeds as a regular web-page.
    • FlashGot
      Integrates 3rd party download managers (such as get-right) nicely into firefox.
    • Google Toolbar for Firefox
      All google goodness in a toolbar which is customisable.
    • Stop-or-Reload Button
      Replaces the Stop and Reload buttons with one that changes state appropriately. Nice if you want to save some space.
    • Tabbrowser Preferences
      Provides several options to customise your tab-browsing experience.

    Updated 09/10/05 - Added Console², Nightly Tester Tools