The main function of a feature … is often the easiest part. It’s everything around the feature that makes it harder: UI design, localization, refactoring, accessibility, state restoration, getting new artwork (for a toolbar button, for instance), dealing with errors, testing, updating the documentation, etc.
What consists of “everything around the feature” may vary from one type of software products to another (e.g. UI apps vs. services vs. data-centric apps), but the needs and principles of engineering a real product don’t change.
I often say to people that it’s easy to showcase a Proof-of-Concept (PoC). Name any technology buzzwords (AR/VR, AI/ML, Blockchain, automation, …), and it’s easy to turn around a PoC with those buzzwords attached. But don’t be carried away by the bells and whistles you see! A demo itself is not proof of a usable or reliable product; a PoC is not a demonstration of how easily or quickly one could go from a PoC to a real product.
It’s everything around making it a real product and consistently reliable subsequent product updates that require time, effort, and most importantly the care and art of engineering. The inherent engineering focus and prowess is what differentiates one product and vendor’s viability from another in today’s markets.