Architecture to project planning

By | Mar 31, 2019

In previous article I discussed how to decompose an application into an architectural design using volatility based decomposition. I now want to show how the architecture can help you with your project planning.

As a recap below are where we left off.

  1. We drew up the a use case diagram from the requirements.

     

     

  2. We identified the following components for our architecture design. 
  3. We did some call chain diagrams.

Project Planning

Because of the architectural design we have followed we now know what components are needed. We can also work out in which sequence they would need to be build.

The project plan is a way to have some transparency for business:

  • Show business a milestone being worked towards.
  • Show concrete items being build.
  • Show how many resources are needed to achieve a certain date.
  • Provide business with a delivery date.

So where do we start?

I will be using Yed to present the project plan visually but something like powerpoint can also be used or even Microsoft Project.

  • The developer now gets involved in the process and has to investigate and provide and estimate on how long it will take him to deliver the component, fully tested with unit testing.
  • Once we have these values we can start to plot out the order in which these components would need to be build as if a single developer was going to produce the entire feature. This is the worst case scenario and is called the decompressed view.

 

Click on the image to enlarge

 

 

  • Next we find out how many developer we would actually have on the project and we design the project plan according to that.

 

Click on the image to enlarge

 

The red line indicates the critical path, if there are any delays on this line the entire project gets delayed.

There is a point where adding more resources to a project does not help. If you study the project plan above you will notice that due to the dependencies one can not have more than 2 developers on this project.

What else can we do?

Due to the mechanical manner in which the project can be build one can do costing per component as the development time and resource cost is known.

For more information see the related items below.

Related.

Juval Lowy – Introduction to Project Design
Building blocks of an application
Volatility based decomposition for Microservices

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of