Broke-Implement Agile Method of Mobile App Development

The mobile application market has been expanding very rapidly. For successful mobile app development and ensuring app’s visibility, one needs to follow a systematic approach. Currently, all the models are based on two methodologies of mobile app development i.e. Waterfall methodology and Agile Methodology. In agile methodology, the different phases of app development cycle take place in parallel, with a defined pipeline of expected features and requirements. While there are many advantages of parallel development of various modules under the agile theory, the development is fraught with certain challenges. In a case a previous module doesn’t perform as expected, the entire undertaking may be subject to failure. Keeping this weakness in mind, this paper is presenting an idea of broke-implement agile method. This method is especially beneficial from a user’s point of view as it provides them the opportunity to customize the app while development is underway. Thus, it helps make the user comfortable and ensure he/she is satisfied with the product. Moreover, this method helps user choose only the relevant features thereby translating into cost and time savings.


INTRODUCTION
Today mobile phones aren't just an accessory of the rich and famous. During last few years, mobile apps have changed our daily life routine to means of communication. From booking cabs to ordering food to booking flights to making bills, mobile apps have made things easier for people. It is well-documented that people everywhere are spending an increasing amount of time on their phones. Mobiles are being used for entertainment, self-study, shopping hub, bill payment, and money transfer or even running a business [1]. The reason for the success of mobile phones of course is mobiles apps. That's why the mobile application market has witnessed such unprecedented growth. As smartphones proliferate different aspects of life, various platforms have emerged [2] [3].
According to statista.com, Smartphone users across the world are expected to touch four million by 2020 [12]. Now new challenges are arise for the developers as well as IS educators and students to master the skills to design and develop apps that can run on cross-platforms [13]. Various researches have been undertaken in this field of mobile application [14].
For successful mobile app development and ensuring app's visibility, one needs to follow a systematic approach [5]. There are various different types of models that are used by coders for development of mobile apps. This entails basic five activities viz. communication, planning, modelling, construction and deployment. Each and every model focuses on these same activities in a different manner. Currently a large number of complicated software and system development projects have moved away from a process-intensive approach to a more agile approach, with Scrum [4]. In the Scrum methodology, instead of providing complete, detailed descriptions of all the activities that need to be undertaken for a project, most of the work is left to the Scrum software development team. As only the team members will know best how to solve the problem that are raised before them [10].
Currently, all the models are based on two methodologies of mobile app development i.e., Waterfall methodology and Agile Methodology. Waterfall model mainly focuses on stablecustomer requirements whereas agile methodology is best suited for applications with frequent changing needs of customers. Both methodologies have their own pros and cons. The basic concept of agile methodology is to break down the whole project into smaller and manageable parts. The different phases of app development cycle can take place in parallel, with a track of expected features and requirements [6]. While this parallel processing may result in time savings, there continue to be certain challenges with this course of development. In many cases, the previous module doesn't perform satisfactorily, leading to the failure of the entire operation.
Keeping this weakness in mind, this paper is presenting a different variant of the agile methodology or the broke-implement agile method.

AGILE METHODOLOGY
The agile methodology for mobile application development is an alternative to some of the earlier methods of project management such as the waterfall model. This approach enables an evolution of solutions through combined efforts of developers and the customers. Agile methodology is an iterative and flexible approach that can be used in complex projects where the customers' requirements change frequently. There are many key points of agile development strategy which includes teamwork, continuous improvement, constant feedback and the adaptability to changes.

BROKE-IMPLEMENT METHOD
Broke-implement method is based on agile methodology as in this method too, the whole project is broken down into smaller parts. But instead of focusing on all the modules simultaneously, developer will take one module at a time. Within the myriad of functions an app seeks to perform, there is often a key function which draws on the main idea. This methodology postulates that if the key function is functioning properly than the whole will definitely be.So one has to find out that key function and start working on it. After picking up that first key part, developer will performall the steps like layout designing, coding, testing and deployment. After implementation, feedback is taken to validate that key part of the project in the real environment ( Figure 1). If positive feedback is obtained than the development of the remaining parts is initiated. Apart from the key function, all other parts can be constructed simultaneously or one after each other. Once all the parts have been created and implemented, the final consolidation is undertaken in order to complete the user experience ( Figure 2).
Let's take an example of very popular app of India paytm;the key function of Paytm will be online payment transactions. The other functions would be bill payments, shopping and banking. If the paytm app would be based on Broke-implement method then-online payment transaction module will be deployed first and feedback would have been obtained from the market. After that separates apps would be created for bill payment, shopping and banking. After deployment of each and every app, feedback would have been obtained again and upon successful implementation of each app, they would be integrated on a single platform. Although the paytm app had started as payment app and later on all other features were incorporated in paytm. The major difference between extending features of app and building the app with broke-implement method is lying in the overall development. In the broke-implement method one has to create separate apps for each individual feature and publish on play store for real time testing whereas in the method of extending features, one will enhance the current app. If the new feature doesn't get popularity than the effect will be on the current app but in-case of proposed method, at the time of integration that particular app will not be integrated. The second benefit would be the size and complexity of the app. One can provide customization for the user to select the features to install thus integration procedure will be according to the user's choice. Only those features that the users' require will be installed. This is likely to make the user happy as the size of the app would remain manageable and also app would remain less complex. One such case in point is Amazon pay. If user wants only amazon pay app it is not possible because it is a part of amazon app so one has to install either the whole amazon app or amazon seller. Suppose user has limited memory or he/she doesn't want to buy or sell on amazon than also he/she cannot use amazon pay but with broke-implement method it would be an easy task.
There are so many apps that failed owing to their complexity. For instance, Google Wave was supposed to be the ultimate communication tool [9]. Google produced anapp with lots of features that let users do just about anything they wanted. Thus resulted in the dense and heavy-weighted program which was more complicated, and the basic usability suffered. The common user is left, who only wants a new email nothing else [6]. Google Wave was a real-time communication platform. It combined various aspects of emailing, instant messaging, wikis, web chat, social networking, gadgets, online documents and project management to build one well-designed, inbrowser communication user [8]. One could bring a group of friends or business partners together to discuss how your day has been or share files [12]. But this app was proved a great disaster for google. The one of main reasons for the failure of this app was featuring multiple facilities in the initial product.
The key function of Google Wave would be emailing and instant communication. The other functions would be social networking, gadgets and online documentations. If the Google Wave app would be based on Broke-implement method then-emailing and instant communication module will be deployed first and feedback would have been obtained from the market. After that separates apps would have been created for social networking, gadgets, online documentations etc. After deployment of each and every app, feedback would have been obtained again and upon successful implementation of each app, they would be integrated on a single platform. But if the feedback of key function i.e., emailing and instant messaging with a new user interface would be negative all other efforts would have been saved from getting waste. That's the main concern of broke-implement method of mobile app development.

Idea Formulation
To start making a mobile app, the foremost and most important step is to conceive an idea for the app. During this stage one has to identify the problem the app seeks to solve and idealise the solution. During idea formulation keep the audience in mind clearly, define it, and figure out where they like to spend their time and money. Audience's likes, dislikes, requirements etc. to be considered at this stage.

Market Research
There are more than 1.5 million apps on play store and on app store so before hitting a market or developing an app one should perform deep market research. Market research is the next step after Idea formulation. In this step, various similar apps are to be studied. How many apps are trying to solve the same problem? Which app is most popular among them all? What are the basic features of the existing apps? What are the new features that can be incorporated in the proposed project? These are some questions that have to be answered while undertaking market research. Feasibility study is also one of the major activities performed during this stage.
Thorough market analysis will also be helpful for developer to know about competitors, their strategies, strengths and weaknesses too. Customers' reviews could be useful to avoid repeating the mistakes done by competitors. Generally researchers overlook these reviews. This can give a chance to win over the competitor's customers.

Designing the layout and Database Design
Post market research, one has to decide ascertain the platform for which the application will be developed for instance IPad or iPhone, IOS or android etc. There are lots of other factors that have to be considered at this stage i.e., dimensions, technology, database tables etc. After selecting the platform, layout designing of application is done. Often, at the time of integration (Final stage) there may be a requirement to share data and hence one should aim to undertake common database designing. Layout designing must be focus on cognitive load, self-evident navigation, finger friendly tap targets, and focus on first time impression.

Breaking the whole idea into smaller tasks
In the next step, the whole task is divided into smaller tasks that can be implemented individually.
After that one will work on the key function that has to be deployed first. In this method, Instead of creating the complete application in a single sketch, one will deploy the single task and observe the performance in the real environment. This will be helpful in moving ahead i.e. whether one has to initiate the remaining tasks as per the scheduled timeline or stop further processing as the market validation has not been received.

Coding
After designing, coding is undertaken during this stage. This is the step where code writing and execution takes place. During coding each code is tested individually so that after coding we will have tested codes. Developer should develop app according to the user's need like ios app or android app.

Testing
Various testing modules are to be used to check the functionality of the app. Tested codes are combined together to verify that the tested app is according to the client's requirements.The application should be tested based on various criteria like usability, compatibility, security, interface checks, stress, and performance. It should increase involvement of quality assurance engineers during the development phase to detect defects at the earliest possible before extensive testing by quality engineers. During testing software engineers must perform basic testing, code review and static code testing etc .

Deployment and publishing on play store
Completely error free application has to be deployed on the play store to download. Remember this will be only a single working module of whole app. Real time feedback can be taken after installation.

Publicity and Feedback
For determining the performance of the app it is very necessary to do the analysis in a proper way. Not only this, one has to use various promotional schemes to publicize the app. This may include cash backs, referral schemes, gift vouchers etc. After analysis, if feedback is positive move to step number four and start working on the next task.

Integration and testing
Once all the smaller units and apps have been developed, one will integrate all the apps in into a single unit. Testing of the integrated platform is a very important part of the broke-implement agile method. As all the apps are individually running perfectly, one just need to create a link among them. During integration one has to create a main page/home page/starting page on which links of all apps are to be present. At the time of integration one has to take care that one app will not affect the other's working.
Main feature of broke-implement method is user's customization. During the integration phase, user will be allowed to choose the features he/she wants to install. At the time of installation, user will be asked to select the features and then only required apps will be integrated on single app.

CONCLUSION
Broke-Implement agile method is somewhat different from extending features of current apps. As in broke-implement method the new features are added as new app not as part of existing app thus it makes easier to get feedback. Also in case if the app gets excellent response than it can also be available on play store as an individual app. This method is also beneficial for user's point of view as it provides users' to customize the app while installing thus make user comfortable and happy to have what he/she wants. User is not forced to have all the features of any app and helps in saving time and storage.
Broke-implement method shows following advantages