In short, developers can find a lot of guidance to assist them with
programming their applications. Platform developers have drawn
on decades of software engineering knowledge to create software
architectures and SDKs that provide developers with access to
needed device resources. However, these technical aspects don’t
address the larger issues of creating large-scale applications.