What happens to an industry when you make so the average person can play in that industry? For embedded firmware development this is what we refer to as the "Arduino Effect."
Arduinos Are Awesome
Arduinos are great as they allow the average person to easily write code that runs on a microcontroller to do pretty amazing tasks. This brings down the ability to make a simple embedded device to a level where the average person can make it happen.
To consider this problem further it is often best to start with what engineering is:
The application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to people.
I would argue that not only is it the application of science and mathematics, but also the process by which the application takes place. For example in science we learn about the scientific method, which is a process that can be applied to solve a problem. In engineering there is a process that needs to be applied as well. That is you do not grab an Arduino and start hacking out code to make product. This would be like grabbing a piece of lumber and start sawing it make a house. Rather you have to plan these things out and follow a process to make it happen.
House Construction
When you think about building a house does an image like the one below appear in your mind?

That is an image of someone looking at a set of architectural plans to determine how build the house in a clean organized fashion.
Yet when many people think of embedded engineering they think of something like this:

This is as much about embedded engineering as the shelter below is about building a house.

The difference between building a house and simple shelter has the same relationship as embedded engineering is to Arduino development. Like the shelter, Arduino proof of concepts, work for a short period of time but you will have to be a very determined person to live with them long term.
We can actually take the house construction project and compare to embedded engineering project.
Architectural Design
The first step to building a house or an embedded project is to go through and plan out the design. This planning results with the design being done on paper, which is easy to change. The architectural plans allows others to review the design an point out things the designer might have missed. Since the paper plans are easy to change, the cost of a change is insignificant at this stage. Any change in the plans later will exponentially increase in cost, depending on how far down the building process the project is.
Project Planning
Once the plans are approved the planning starts. On a house you would not have the roofing contractor come before the foundation is done. Instead you have to plan out the order and timing to different activities. Additionally you contact different contractors and vendors and start getting a better estimate of not just the timeline but also the costs of the project. Usually however the first step is to determine who is the general contractor or in embedded world the project manager.
General Contractor
When building a house generally a person hires a general contractor, this person's job is to make sure the project plan gets executed on time and meets the architectural design. In embedded engineering this person is often called the project manager. However a common mistake is hiring a project manager who does not know the engineering process. You would not hire a general contractor who did not know about building a house, but many people hire project managers who do not know about building a product. For an embedded project you want someone to manage the project that has experience in building embedded products.
Think of the general contractor's job is to know if a sub contractor has done a good job. If a sub contractor points out a problem, the general contractor has to be able to evaluate the problem and figure out a fix that will minimize impact to project. If the general contractor does not know anything about the project they can not make these decisions and project will stall until money or time runs out.
Testing and Verification
When you are building a house, you eventually want to be done building it. You know it is done when the house meets certain requirements. For example the owner might do a walk through and verify the bathrooms are all painted the correct colors. Additionally building code inspectors should have been signing off on that the house is safe before it is done. We want the same thing in embedded product development, that is we need to know what tests we need to run and verifications that need done to know the product meets requirements.
Sub Contractors and Engineers
As mentioned above the work gets done by engineers and sub contractors. If you have experienced engineers they can look at a design and point out flaws. Often project managers view this as an insult, as they personally did not see the flaws. Poor project managers will often try to over power the engineers and tell them they are wrong or just do the work as designed. This always ends bad as it means the project manager has poor engineers, or the project manager can not effectively understand the engineer's input.
Arduino for Prototypes
Note that not all work needs to be fully engineered. For example often you need a quick prototype to learn something. That is a prototype is device which is designed to learn or prove something. A prototype is not product and as such Arduinos are great for doing quick prototypes. To know if you are doing a prototype ask "What are you trying to learn or prove." Once you answer that then ask how will you test it. If an Arduino prototype will prove what you need in a timely manner it is a good thing. Arduinos are great for prototypes.