Welcome to Embedded Consulting

Welcome to Embedded Consulting

How to fail with Software

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

How to succeed with Software

The main challenge, in particular with large SW project is complexity. As the complexity increases it becomes increasingly more difficult to verify the software, and they number of ways things ways can go wring rises exponentially.  Fortunately there is a golden bullet.  But before I reveal the secret I would like to review why things go wrong

The list is based on my almost 20 years experience on various project. Its applicability is in my opinion not limited to SW, however SW will be the focus here,

How Company fails with SW

  • Failing to view themselves as a SW company when should
    • Fundamental principles in SW development not implemented
  • Pushing rapid progress in the start of a project and postponing to implement an adequate test regime.
    • Progress is rapid in the beginning and everybody is happy,…. not so fast. The fast progress normally come at the cost of buildup of technical debt. The total cost of the project increases dramatically.
  • Lack of version control and configuration management
    • Stuff that worked before stops working and nobody knows why
  • No common code base for your company core SW
    • Several similar project with “almost” similar code where “resuse” is implemented as “copy and paste”. Combined with lack of version control this constitutes a machinate nightmare.
  • Lack of a common strategy for SW developed.
  • Lack of a proper regime for regression testing.
    • Nobody dares to touch the code and fix bugs because one has no control of the consequences. The risk of introducing new bugs is too big.
  • Lack of documentation.