Difference between revisions of "Development Strategy"

From EUDP
Jump to: navigation, search
(How)
(How)
Line 16: Line 16:
 
'''Ingredients'''
 
'''Ingredients'''
  
*    [[Exact Requirements]] (HW timing, etc.)
+
*    Artefacts from [[Launch Phase]]
*    [[Risk Management]]
+
*    Artefacts developed in previous timeboxes
*    [[Design Criteria]]
+
*    [[Class Diagram]] and a short description
+
*    [[State Machine Diagrams]]
+
*    [[Use Cases]]
+
*    [[Sequence Diagrams]] expressing the dynamics of the system
+
*    Results from the [[Functions Analysis]]
+
*    Results from the [[User Interface Analysis]]
+
*    Results from the [[System Interface Analysis]]
+
*    [[Subsystem Architecture Design]]
+
*    HW [[Block Diagram]] design
+
  
 
'''Process'''  
 
'''Process'''  
Line 33: Line 23:
 
To find the best development strategy, you must consider the following aspects:
 
To find the best development strategy, you must consider the following aspects:
  
*    Find a central part in the system to be. This must be developed in order to keep all developers busy. The central part will mostly be the microprocessor. This must be developed in HW and a test sequence must be performed i SW in order to find out if the HW is implemented correctly.
+
*    Find a central part in the system-to-be. This must be developed in order to keep all developers busy
*    Find the parts which will take the longest time to develop. These parts must be developed soon enough to complete the project  according to  schedule.
+
**      Hardware is often a central part and usually takes quite long time to develop, hence it must be started first
*    Select the parts with the highest risk impact, and plan the implementation of these parts early in the development process.
+
**      The software developers can develop stubs that mimics the hardware until it becomes ready for them to use
 +
*    Find the parts which will take the longest time to develop. These parts must be developed soon enough to complete the project  according to  schedule
 +
*    Select the parts with the highest risk impact (see [[Risk Management]]), and plan the implementation of these parts early in the development process
 +
 
  
 
*    The strategy also includes problematics concerning bus, memory, power supply, etc.
 
*    The strategy also includes problematics concerning bus, memory, power supply, etc.
**           The use of uniform busses, e.g. I2C, RS232, etc. This sets higher HW standards if more circuits need special features.
+
**     The use of uniform busses, e.g. I2C, RS232, etc. This sets higher hardware standards if more circuits need special features
**           The use of uniform power supply voltages, which makes a simpler power supply.
+
**     The use of uniform power supply voltages, which makes a simpler power supply
**           The memory management is important in order to make it possible to develop the SW.
+
**     The memory management is important in order to make it possible to develop the software
 +
 
 +
 
 +
*    In every timebox, some errors are made
 +
**      Make an error list and classify the errors
 +
**      Decide and plan when errors shall be handled with
 +
*    If new ideas are found, these must be considered
 +
**      Decide if they should be implemented or not?
 +
***      If the new ideas will be implemented, it must be in according with the project plan
 +
***      If the project will be behind schedule, then it must be accepted by the costumer
  
*    In every timebox, some errors are made. These must be corrected in a prober way sooner or later. Make an error list and classify the errors.
+
*    For every timebox reconsider the strategy
*     If new ideas are found, these must be considered. Should they be implemented or not? If the new ideas will be implemented, it must be in according with the project plan. If the projectwill be behind schedule, then it must be accepted by the costumer.
+
**      Is the strategy consistent with experience so far?
 +
**      Does parts have to be reorganised in order to enable critical part to be developed earlier in the project
 +
**      Has new ideas and errors changed the order of implementation
  
Considering these aspects, you must find out how long each timebox takes and what to develop in each timebox.
+
Considering these aspects, you must find out how long each timebox takes and what to develop in each timebox. Also use the diagram on [[RealisationPhase]]
  
 
== Why ==
 
== Why ==

Revision as of 12:53, 18 December 2012

What

Strategy.png

Decide the direction for the project. Strategy is the long term overall plan for what is to be developed at what time.

How

The dish

To decide the development strategy.

  • What to develop in which timebox.
  • How many timeboxes.

Ingredients

  • Artefacts from Launch Phase
  • Artefacts developed in previous timeboxes

Process

To find the best development strategy, you must consider the following aspects:

  • Find a central part in the system-to-be. This must be developed in order to keep all developers busy
    • Hardware is often a central part and usually takes quite long time to develop, hence it must be started first
    • The software developers can develop stubs that mimics the hardware until it becomes ready for them to use
  • Find the parts which will take the longest time to develop. These parts must be developed soon enough to complete the project according to schedule
  • Select the parts with the highest risk impact (see Risk Management), and plan the implementation of these parts early in the development process


  • The strategy also includes problematics concerning bus, memory, power supply, etc.
    • The use of uniform busses, e.g. I2C, RS232, etc. This sets higher hardware standards if more circuits need special features
    • The use of uniform power supply voltages, which makes a simpler power supply
    • The memory management is important in order to make it possible to develop the software


  • In every timebox, some errors are made
    • Make an error list and classify the errors
    • Decide and plan when errors shall be handled with
  • If new ideas are found, these must be considered
    • Decide if they should be implemented or not?
      • If the new ideas will be implemented, it must be in according with the project plan
      • If the project will be behind schedule, then it must be accepted by the costumer
  • For every timebox reconsider the strategy
    • Is the strategy consistent with experience so far?
    • Does parts have to be reorganised in order to enable critical part to be developed earlier in the project
    • Has new ideas and errors changed the order of implementation

Considering these aspects, you must find out how long each timebox takes and what to develop in each timebox. Also use the diagram on RealisationPhase

Why

In order to make the best design, it is important to find the best development strategy. With a wrong strategy, the project will take longer and cost more money. Some developers may not be able to work if some parts are not developed/implemented in time. In order to save time and money it is, therefore, essential to spend some time finding the best strategy and order of development.

Verification Planning is the next important step.