-- create some way of sustainably separating "self" from its environment, so that all the components of downstream steps don't diffuse away. The separating material, which could be a cell wall or cell membrane, also has to allow selective exchange of raw materials in and out of the cell, and provide protection against damage to the cell.
-- design and build a chemical template (DNA/RNA in our case) which allows it to reproducibly recreate itself and all its components.
-- design the molecular machinery which builds that chemical template, and which is also responsible for reading and interpreting the template, regulating its use, and providing error correction. Instructions for creating machinery that makes the template are encoded in the template.
-- design the molecular machinery (enzymes and other proteins) that builds molecular machines, using a design language encoded in the chemical template.
-- establish a chemistry program that takes in raw materials from the environment, and converts it to energy, building blocks for the machinery and template, and allows for repair, defense, and other tasks.
-- establish and implement reliable reproductive (data backup) framework, minimally involving the creation of a copy of the chemical template, and often copying and spinning off a second, complete cell.
These are the elements of basic, independent (i.e. non -parasitic) life. As far as we can tell, the core elements (information stored in DNA/RNA encoding proteins as molecular machines) of this life solution emerged fairly early in this planet's 4.5 billion-year existence, and every other organism since then has simply iterated on the same solution -- no other competing solutions exist to our knowledge.
It thus makes sense to account for this complexity when we calculate the odds of finding life in the universe. In my opinion, the Fermi paradox is nonsense.