Skip to content
This repository has been archived by the owner on Nov 15, 2022. It is now read-only.

Why a new custom implementation vs reusing existing, proven-to-work code? #82

Open
falkTX opened this issue Oct 15, 2020 · 8 comments
Open

Comments

@falkTX
Copy link

falkTX commented Oct 15, 2020

This is just a question, not sure where else to place it.
Why is stayaway a brand new implementation on something that other entities/countries have already made and published?

For example, Germany has https://github.com/corona-warn-app/

Contrary to the UK, that when they started development no such other projects existed (at least not in a good/mature level), Portugal had the chance to reuse an already working solution.

@davipt
Copy link

davipt commented Oct 15, 2020

@falkTX
Copy link
Author

falkTX commented Oct 15, 2020

I know of it.
But that does not contain:

  1. iOS application
  2. Android application
  3. Infrastructure to build the 2 common mobile application types
  4. A way to run the application without non-free components

corona-warn-app/cwa-app-android#75 is relevant to issue 4, which is not an easy thing to tackle.

Points 1-3 could have been mostly skipped and get a working implementation for those by simply reusing existing, proven-to-work, open-source code.

@davipt
Copy link

davipt commented Oct 15, 2020

A dedicated device could be a solution to avoid usage of closed hardware and closed operating systems.
I wonder about the success of manufacturing and providing millions of devices to the Portuguese population… even many billions to the word. It could be an interesting business case though.

@fmaia
Copy link
Contributor

fmaia commented Oct 21, 2020

The need for dedicated applications comes from the specificities of each health care system. As explained in the project's front page, STAYAWAY COVID builds on the DP3T project (https://github.com/DP-3T) thus not rewriting the entire system as implied in this thread.

@falkTX
Copy link
Author

falkTX commented Oct 21, 2020

Still sounds a lot easier and less expensive to use an existing infrastructure (frontend + CI/CD and not just the DP3T stuff).
Obviously every country is different, but also there is going to be a lot of things in common.

@fmaia
Copy link
Contributor

fmaia commented Oct 21, 2020

You should also consider that these applications were mostly under development as well when the Portuguese app was being designed and implemented. Portugal was among the first to have a GAEN app (7th or 9th). In my opinion, going for a multi-platform framework and being able to focus efforts in what the Portuguese requirements were and, at the same time, reuse what we found to be a stable codebase (DP3T) was the best approach. However, as with any engineering project there are always pros and cons with every decision and one might argue in the opposite direction.

@falkTX
Copy link
Author

falkTX commented Oct 21, 2020

ok I was not aware of that. thanks for the extra information.

my hope is that at some point we can share more than just the DP3T backend.
this is going to become crucial later when we slowly open borders and travel in some semblance of normality again.
someone traveling between countries needing to install many different applications that all serve the same purpose is a bit absurd.

anyway, there is a chance to go back to something more common than just DP3T in the future correct?

@fmaia
Copy link
Contributor

fmaia commented Oct 21, 2020

I agree. Of course a more general approach would have advantages and we will probably tend towards something like that in future generations of these approaches. We might envision that, not only for this pandemic but also for future threats, technology will evolve and provide better solutions. For instance, using bluetooth has intrinsic technical limitations but looking at the technology landscape it was the best approach possible due to its extensive deployment in modern smartphones.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants