  Implementing a quantum algorithm on a NISQ device has several challenges that
arise from the fact that such devices are noisy and have limited quantum
resources. Thus, various factors contributing to the depth and width as well as
to the noise of an implementation of an algorithm must be understood in order
to assess whether an implementation will execute successfully on a given NISQ
device. In this contribution, we discuss these factors and their impact on
algorithm implementations. Especially, we will cover state preparation, oracle
expansion, connectivity, circuit rewriting, and readout: these factors are very
often ignored when presenting an algorithm but they are crucial when
implementing such an algorithm on near-term quantum computers. Our contribution
will help developers in charge of realizing algorithms on such machines in (i)
achieving an executable implementation, and (ii) assessing the success of their
implementation on a given machine.
