Ang layunin ng pag-develop ng software ay upang bumuo ng mga solusyon na tumutugon sa mga pangangailangan at problema para sa mga gumagamit at negosyo. Upang makamit ito, ang iba't ibang mga teknolohiya at mga pattern ng arkitektura tulad ng Model-View-ViewModel (MVVM) at Model-View-Presenter (MVP) ay ginagamit. Tulad ng anumang bagay na ginawa, ang unang hakbang ay ang