Project completed in week 11 (06.12.-11.12.20) of the Data Science Bootcamp at Spiced Academy in Berlin.

This was the last week of lectures and assigned projects, in which we learned general software engineering techniques and best practices for individual and team coding.

Software engineering metaphors

Our teacher introduced us to three popular metaphors that conceptualize software engineering:

  • Bazaar represents independently written code for open-source software, to which multiple developers can contribute as they see fit.
  • Cathedral represents long complex code for a software built by a group of developers, based on a central plan and software infrastructure, meant to be deployed into a product.
  • Garden represents maintaining code, cleaning it up and refactoring, deleting irrelevant/old code and replacing with code that meets the current needs.

10 tips for software development

More importantly, we got 10 tips for efficient software development and clean code:

  1. Know your league (Bazaar vs. Cathedral)
  2. Structure your code
  3. Use git
  4. Master debugging
  5. Add essential files (requirements.txt.gitignore)
  6. Clean code
  7. Add tests
  8. Continuous integration
  9. Verification and validation
  10. Write good documentation


Testing code is a really important part of software development or any complex project. Testing ensures that everything runs well and doesn’t break as you make changes to the code. There are four main types of software tests:

  1. Unit Test: for a single function/class/module.
  2. Integration Test: for multiple components together.
  3. Regression Test: re-run tests after changes to code.
  4. Acceptance Test: user-level, A/B-testing, focus groups.

I started applying these tips right away on the project that I’m currently working on and also started cleaning up a bit the code of my past projects. Next week I’ll be working only on my final project and preparing the presentation for the graduation on Friday!