I know many people that promote the following approach:
“Fake it until you make it!”
I strongly disagree with that statement as it puts the customer and/or end consumer at a huge risk.
When someone “fakes it” (pretends to have required skills, knowledge, experience, etc.) and hopes to learn everything during the development, the final product will “break” sooner or later.
That is why I think it should be called:
“Fake it until you BREAK it!”
Before I go any further, let me admit that I do learn new things every single day. So why I do not feel like a hypocrite?
I strongly believe that there are skills that you should acquire before starting any commercial design/development.
Basic skills for any IoT Consultant:
- network security
- linux administration
- Public Key Infrastructure (PKI)
- understanding of symmetric and asymmetric encryption
- distributed systems design rules
- knowledge of popular programming languages (with advanced skills in at least one of them)
That is a significant effort to obtain the above skills, and it takes years (not months) to get solid experience.
There is no way to learn all of that during the customer-facing project. As a result, the Internet of Things is perceived as insecure. The truth is, IoT is as secure as we make it. I am not saying this is an easy task. I am saying we should not “fake it” cause we will “break it”.
I admitted that I do learn new things every day (during customer-facing projects). So what do I learn?
- business processes unique for every customer
- business goals and definition of a business value (unique for every customer)
- specific technology used in customer’s environment
- specific constraints (network, security, etc.) required by the customer
Trust me, that is a lot of learning while designing and/or developing the actual (to be production) solution.
That is why I strongly recommend learning all the “basics” upfront. A great way to do so is to build a few prototypes and try to compromise them. You will be surprised how much you can learn by breaking your own prototypes.
I do not pretend that “I know it all”; when I do not know something, I simply admit that (instead of “faking it”).
Let’s make the IoT a better/safer place together!