Building a Successful Software Development Organisation

By

Plogen


The key to building a successful software development organisation is recognising that software products are the result of an industrial process involving different roles and expertise, each with its own requirements, considerations and responsibilities. The implementation of a profitable and efficient software development organisation depends on the ability to organise and coach necessary development processes. Consider the following questions:


  1. How do you implement and manage business development?

  2. How do you create successful products?

  3. How do you manage software projects?

  4. How do you support existing customers and products?


In answering these questions an iterative software development process model emerges that is complete and describes the lifecycle of a product release from business objectives to decommitting the product. One cycle in the model implies a new product or a new release of an existing product.


Fig. Software Development Process Model


  1. Management

It may seem obvious that management should make all decisions concerning business development. In a software development organisation, this means management must engage directly early in each cycle of the development process. The management’s role is to answer all business critical questions in the Business Analyses phase prior to each product release.


  1. What is the target market segment?

  2. What are the main business objectives?

  3. When is time to market?

  4. What are the constraints in terms of costs and resources?

  5. What is included in the road map after this release?


Deciding the target market segment means identifying key customers for this product release. This decision should be based on the perceived benefits of your product combined with the expressed demand of various market segments and your own sales and marketing capabilities.


Deciding main business objectives means identifying the most important market demands, customer benefits and business value of the product release. These decisions are based on competitive analysis and should also comply with your business strategy.


Deciding time to market means identifying the sales window for this product release. The decision is based on the expected life span of existing products and the estimated period of peak demand from target customers.


Deciding the cost and resource constraints means identifying total investments in the product release. The decision is based on analysing overall development capacity, including the use of external resources, with regard to the estimated business value and the time to market.


Deciding the road map means defining future benefits and target markets for your product. The decision is based on the market analysis and a review of your current roadmap.


In the Software Development Process Model, the management is the owner of the Business Analysis phase.


  1. Sales and Marketing

In a software development organisation, sales and marketing have two distinct roles. Obviously they are responsible for selling your product in the market. The other role, just as important, is compiling information on market demand and customers needs for product development. The detailed mapping of market needs to product benefits, supported by proposed technical features, takes place in the Concept Design phase of the development process. Sales and marketing must know the needs and demands of target market segments and answer key questions concerning future product releases.


  1. What is the target customer profile?

  2. Which technical features are required?

  3. Which are the preferred sales channels?

  4. What is the pricing model?

  5. What is the cost/benefit profile?

------------------------------------------------------------------------------------------------------------

Deciding the target customer profile means identifying the customer stereotype within the target market segment. The decision is based on analysing the market needs and defining the qualities of an ideal customer. This is necessary in order to enable benefit priority. The list of desired benefits usually exceeds cost and resource limits. The highest priority benefits are most important for the product release.


Deciding the required technical features means identifying technical features that will most effectively support the desired benefits. Designing the technical features should be left to the technical staff, but sales and marketing must ensure that the selected features undisposably support the perceived benefits.


Deciding on the sales channels means identifying whether you will handle all sales yourself or whether you inn given market segments will sell via partners. The decision is based on an evaluation of your own abilities to sell and support your product in each market segment. In an international setting you will typically use partners in remote region, e.g. country. Selling via partners will add extended requirements to your deliverables and should therefor be decided in the Concept Design phase.


Deciding on the pricing model means identifying the business model of your product, the price level and terms and conditions in each market segment. The pricing model should cover all aspects of your product offerings including product licence, product support and education.


Deciding on the cost and value means verifying that your business objectives are still valid after the Concept Design phase. The technical staff should estimate the project cost and sales and marketing should estimate the sales income. If your product release is not acceptable on track with your business objectives, you should restart the development process with this knowledge as input.


In the Software Development Process Model, sales and marketing is the owner of the Concept Design phase.


  1. Project Leader

When the Concept Design is ready and accepted, it is time build the product release. This means allocating the necessary resources and setting up a system development project, managed by a project leader. The system development project should focus on building the required product release effectively within the given time and resource limits. The Software Development Process Model in not concerned about which project or system development method used within the project, as long as the project deliveries are predictable. However benefit-driven iterative methods have proved to be successful in small and mid-size projects with highly qualified project members. The project leader must know the organisation’s software development capabilities and his role is to answer the key questions concerning implementation of each product release.


  1. What are the project risks?

  2. What are the project deliveries?

  3. Will the project deliver on schedule?


Deciding the project risks means identifying the tasks and areas that are not sufficiently controlled by the project leader and take initiatives to reduce the risks. Handling the project risks should be the main concern for the during the System Development phase.

Deciding the project deliveries means identifying how much of the prioritised list of benefits the project will be able to deliver.


The project should always deliver on schedule. Time to market is of major business concern and must be predictable. Delayed delivery also often means extra costs.


In the Software Development Process Model, the project leader is the owner of the System Development phase.


  1. Product Support

When the system development project is completed, the new product release becomes current and is ready for customer deliveries. This means the software development project is completed when the new product release is transferred to Product Support for a business as usual handling. Project support must know the existing products and customers and their role is to ensure maximum customer satisfaction and answer the key questions concerning the support of each product release.


  1. What are the deliverable products?

  2. What are the known errors?

  3. What are the frequently asked questions?


Deciding the deliverable products means identifying the products that may be delivered immediately. Product support should always be able to make immediate deliveries of any current product release.


Deciding the known errors means tracking all errors and distribution of fixes and information.


Deciding the frequently asked questions means tracking all customer calls and distribution of a list of frequently asked questions.


In the Software Development Process Model, product support is the owner of all current product releases until they are formally decommitted.


  1. About Plogen

Plogen is a Norwegian consultancy company offering a wide range of professional services related to software product development processes.


http://www.plogen.no

- your software management partner