The implementation of the FCFS policy can easily be managed with a FIFO queue. Typically, a process enters the end of the ready queue. When the CPU is free, the scheduler selects the next process from the head of the queue.
Simply put (and it is simple, in fact), the process that requests for the CPU first is allocated the CPU time first. While the code for this algorithm is easy - it can simply be implemented used a queue - the average waiting time for the FCFS strategy is often quite long.
FCFS scheduling is non-preemptive. Once a process has been given the green light to use the CPU, it continues using the CPU until it is completed.
Consider a situation in which we have few CPU-bound processes and many I/O-bound processes. In a FIFO system, the long I/O-bound processes will hold up the queue while waiting on I/O, as shown in Fig. FCFS-1 below. In such a case, a more CPU-bound process like Process D would be held up while waiting for Process A and Process C to complete I/O operations. This is not efficient!

Fig. FCFS-1