IoT custom software development challenges