Saturday 26 January 2008

A Simple Overview Of The Product Development Cycle

This is a simple guide to terminology used in product development.

If you are "not a technical person" and you want to understand the process of building a web project, this hopefully will be a good place to start.


Product

What's a product? It can mean many things to many people. In the world of ecommerce it usually refers to a either a service, a website or a software package. I like to think of a product as being something that you can market to others.

Examples might be:
  • Microsoft Word
  • Skype
  • Google Adwords
  • lastminute.com restaurant booking
  • Facebook for Blackberry
  • Intranet or Extranet site

    To build or improve a "product" there are several disciplines that come into play. Each discipline requires certain skills and should have an owner.

    In small companies one person may take on many of the roles required. In larger organisations, there can be teams for each discipline.

    I have identified 9 different roles below. You don't necessarily complete one area before moving to the other. They overlap and have a different emphasis at different phases of the project.


    1. Product Strategy

    Research and planning is needed at the beginning of the project. A Product Strategist would evaluate opportunities, seek out customer and business needs and keep an eye on the competition. The initial output from the product strategist is a "Product road-map" which clearly states the products and features that need to be developed over the coming year and more. This is a high level overview.

    Rarely does an organisation have unlimited resources, therefore also in this phase, new products, product improvements and competing new features need to be prioritised.


    2. Product Planning / Business Modelling

    Here, a Product Manager (or Business Analyst) would articulate and elaborate the features needed in a new product (or an enhancement to a product) and prioritise these needs in the form of a "business requirements" document. They would also complete a detailed financial cost-benefit analysis for the project and engage in discussion to prioritise their product improvements.


    3. Program Management

    Once a product or feature has passed the first prioritisation hurdle, it needs to be prepared for development. A Program Manager would assess Functional Requirements, build use cases (and related test scenarios). They would also work with the technical team to clarify technical requirements and project manage the project through to go-live. Essential the Program Manager is in charge of realising the project.


    4. Architecture and Design

    A Technical Architect needs to build a model for how the product will be built, ensuring that it is compatible with existing systems, can scale and uses best practice software design principles. A User Interface Designer needs to create wireframes to model the experience that the end-user should receive. After that, a Graphic Designer can prepare designs that bring to life these wireframes.

    These designs can be changed and altered as the project progresses, according to feedback received from the business owners, customers and technical teams.


    5. Development

    For development, read "build". This involves many skills, depending on the project, from database administration to programming as well as creating front-end code ("mark-up"). A working prototpe is evolved and passed back for review so that any changes or tweaks to the design can be captured. Developers would also run unit tests that test specific sections of code and create full documentation of how the product was built and operates.


    6. Quality Assurance

    For QA, read "testing". Testers test the product / application / feature against the functional requirements and the relates use cases. They also run regression testing to ensure that the code is compatble with existing systems and stress & load testing to ensure that there is sufficient server capacity and that the system can handle high volumes of activity without comprimise. Finally, the tested product needs to be "signed off" in acceptance testing by the Product Manager.


    7. Configuration / Deployment

    Once the testing is complete, the developers can integrate the code into the live environment and "go-live". Depending on the nature of the system and the complexity of the product, this can be a fairly simple operation or highly complex.


    8. Measurement / Analytics

    Once live, the Product Manager is responsible for measuring the impact of new features / products. Typical measures in Ecommerce would be things like changes to subscribers, visitors, conversion, transactions, revenue and profit. Feedback from these measures will determine the success of the project and need to be compared to the initial forecasts to validate them. This could then generate further product changes.


    9. Project Management

    Pulling all of the above disciplines together, the Project Manager is responsible for keeping the project on track, securing resources and removing impediments. They are the communication hub between all the other people involved and will keep plans up to date and report on progress.


    Pulling it all together

    On way of viewing how these roles interact at different phases of the project are captured in the following diagram of what's known as the Rational Unified Process (iterative software development process framework created by IBM).



    Image source: http://www.msc-inc.net


    That's pretty much it. Who is responsible for each of these areas in your organisation? If you don't know, hopefully the above overview can help you figure this out. Remember - you don't need to have a different person for each discipline.

    You just need to make sure each role is covered.

  • No comments: