From the technical manager's point of view, how can be M.F.B. s to make an app

Source: Internet
Author: User
Tags cloud computing platforms

"Guide" front-end time, a "from the product manager's point of view, do an app need how much money" article in the online crazy biography, we can see the enthusiasm of Internet entrepreneurship! This time, from the point of view of a technical manager, we will analyze how to use cross-platform development technology to save you millions of development costs. The so-called "cross-platform" Development technology is the use of a language and a development tool to support several different mobile/tablet devices, not only to save money and development efficiency, you can quickly launch new version and new features!

As a software engineering consultant, I have been involved in a number of projects, mainly for software team development tools and methodological consulting/training/guidance, I have been exposed to not less than 100 different types/sizes of development teams, there are traditional industries, Internet, there are not bad money, but also start-up entrepreneurs , and there are also app development projects. The most common problem for development teams is that each person's position in a team largely determines his judgment, in short: the field of Vision! And when you ask an IT person that classic "How much does an app cost?" Question, he can only give you an answer based on his own technical background and experience, preferring to recommend those that are relatively sound, while those who do not know the technology are more likely to be judged. I want to say is: Although the Internet business is a technical work, but technology selection must be business first, ROI (input-output ratio) priority. This is why you should first analyze and make judgments from a cost perspective, rather than being subject to technology!

After the answer to the classic "How much money to make an app?" Question, the following questions will follow:

    • Should I develop the iphone version or the andrioid version?
    • There may be a need to hire team members who have mastered the different development languages (iphone uses Xcode/object-c, while Android uses Android SDK and Java) and skills, and the cost of research and development is almost doubled
    • What kind of development environment does the backend system of the product use?
    • How to ensure that the Iphone/android app synchronizes with the backend system when the new feature is online?
    • How much does it cost to develop such an app from scratch?
    • How to understand the usage habits of users and to guide the development of subsequent versions through data analysis?

For many of the current "Internet +" entrepreneurs, how to develop/operate their own products with the fastest speed and minimum cost is a decisive factor in deciding whether to be able to get customers quickly and easily in the early days, to gain the space to survive and to win future opportunities. In fact, for any software development, M.F.B. S is always our pursuit, the current entrepreneurial tide makes this principle more prominent, but also let more people understand the software development.

DevOps (Research and development integration) is also a very popular practice in the software industry in recent years, and DevOps is M.F.B. s to deliver faster value output for our operations by opening up the two teams that were originally in different areas of development and operations. From the user's point of view, the use of mobile devices such as mobile phone/tablet users have exceeded the PC users, and in mobile devices in the realm of iphone/android/windows three points of the world, which makes the above mentioned rapid launch of the product becomes more difficult, At the same time, because the operating system used by different devices, the development environment and the operating environment are completely inconsistent, so that our research and development management become more complex, and realize DevOps is also difficult.

This blog will use the Myshuttle.biz app to show you how an "Internet +" entrepreneurial team can use cross-platform development techniques to solve these problems M.F.B. s.

At the 2014 Visual Studio and Azure Connect () online conference, Microsoft used a set of sample programs called Myshuttle.biz to showcase Visual Studio 2015 and Microsoft The DevOps capabilities provided by Azure, the source code for this sample is also shared. It uses a multitude of technologies to fully showcase the cross-platform development and DEVOPS capabilities offered by Microsoft development tools and cloud computing platforms.
The complete sample code can be downloaded from the following address:
Https://code.msdn.microsoft.com/windowsapps/MyShuttle-demo-applications-1a4b68fe#content

Cross-platform Mobile development whitepaper –myshuttle.biz Case Study

This white paper will provide a detailed introduction to the current 2 major cross-platform development technologies, and I will use the myshuttle.biz case to show you how to accomplish a typical "internet +" product technology layout, team organization, development environment configuration and development process management using cross-platform development techniques in conjunction with cloud computing. Ultimately, a cloud-based development operations Integration (DEVOPS) environment is implemented. Due to the high content, I will gradually publish in the following order; The first part of this series will not involve too much technical content, suitable for entrepreneurs, technology managers and the general public to read, the latter part will involve more in-depth technical details, for the DevOps and cross-platform mobile development technology itself interested in reading friends.

    1. Case background: Myshuttle.biz's business model, application architecture
    2. How does cross-platform development technology do M.F.B. s?
    3. The maturity of cross-platform development technology and comparison of different schemes
    4. Cross-platform development environment configuration and capability analysis
      1. Apache Cordvoa html/javascript Hybrid APP cross-platform technology
      2. Xamarin native app cross-platform technology
      3. ASP 5 cross-platform development technology
    5. Cloud-based DevOps environment configuration and capability analysis
Case background

Myshuttle.biz is a set of "drip travel" of the internet car rental application, can provide business users with call car, billing and back-office management capabilities, to solve the daily needs of business users. Although the "Drip travel" solves the general public's travel needs, but the enterprise car market is still blank. As people who work in the company, there are customers visiting, company building, traveling, even the daily running business, tax and other activities need to use the car, and the enterprise car is a very big expense Myshuttle.bizs is born in such a big background, hope to be able to car rental company's free vehicles and enterprise users, to achieve the optimization of social transport resources and the cost of enterprise vehicles.

You can use the following video to learn about this app:

Application Architecture

Myshuttle.biz uses 3 sets of independent systems to achieve the above business objectives, the backend system through the cloud to provide data storage, business logic processing and back-office management functions, and through the Web application/windows app in the form of the car rental companies/users of the company's management personnel use User app is free to download and use the app through the market, users can use the application to complete the call car, pay and order management functions, the driver app is provided to the driver to use, to complete the call vehicle information push, accept orders, track mileage and other operations.

In addition to being able to perform various operations through the browser, the backend system also provides a popular restful interface for apps and other third-party systems to integrate with them.

Backend system

    • Use SQL Azure to provide secure, highly available data storage services
    • Provide data access services using the WEBAPI provided by ASP. Webapi and Azure Mobile service
    • Provide a browser-based spa app (single page app) for car rental companies for vehicle, driver and order management Services
    • Manage employee, vehicle orders with a Windows app-based desktop app for car managers

User App

    • Use the Xamarin Cross-platform development tool to deliver native app experiences while supporting Iphone/android/windows phone's three mobile platforms

Driver app

    • HTML/JS-based hybrid app experience with Apache Cordova Cross-platform development tools and support for Iphone/android/windows phone's three mobile platforms

How does "cross-platform" technology do M.F.B. s?

With the use of cross-platform development technologies, we do not have to employ developers with object-c/java/c# capabilities, only those who are proficient in the C # language and the visual Studio IDE, and our team composition can be planned as:

–team 1:2 Background developers:
0 familiar with C # development language, ASP. NET MVC
0 knowledge of Microsoft Azure cloud computing Platform
0 Understanding RESTful Interface development
0 responsible for the database in the back-end system, WEBAPI development

–team 2:2 Html/javascript/web/app Developers:
0 Proficient with C#/HTML/JAVASCRIPT/CSS development language, front-end framework such as jquery, AngularJS
0 knowledge of Microsoft Azure cloud computing Platform
0 Understanding RESTful Interface development
0 responsible for the development of Web SPA app and Apache Cordova Hybrid app (Driver app) while supporting iphone/android/windows phone mobile platform

–team 3:2 native app developers
0 skilled use of C # and Xamarin
0 Understanding RESTful Interface development
0 is responsible for native app development (user app) while supporting iphone/android/windows phone mobile platform

–team 4:1 designers
0 familiar with mobile app and web App user experience design
0 can complete the plane prototype and the element cut diagram independently, familiar with the application development process, has the experience which cooperates with the developer.

– 1 Product Managers
0 familiar with Internet products and mobile app operations
0 familiar with Internet product development, with experience in cooperation with research and development team
0 can be completed independently of the user story writing
0 familiar with agile development process, skilled in the backlog for product planning
0 Good communication skills

– 1 Technical Managers
0 proficient in developing languages such as C#/asp.net Mvc/html/javascript/css
0 familiar with mainstream front-end development framework and RESTful interface
0 familiar with Microsoft Azure cloud computing Platform
0 familiar with Internet development, with experience in management research and development team
0 familiar with agile development process, quantity use Backlog,sprint,burndown,kanban and other tools for product development process management
0 Good communication skills

Of course, depending on the complexity of the application and the volume of business, we can also simplify or extend the above team structure, if we have limited resources, we can simplify the team according to the following ideas

    • Combine Team 1 and Team 2 to save 2 developers; Because everyone uses the C # language, MVC Architecture and Rest interface implementations are closely related to front-office development, which not only saves costs, but also improves development efficiency and reduces communication costs between teams. Currently, The premise is that the workload and schedule requirements can be met.
    • On the basis of Team 1/2 merger, we can also consider using only one cross-platform technology (Apache Cordova or Xamarin), in this case, to be able to demonstrate the pros and cons of different cross-platform technologies while using 2 technologies, and in real projects, we can use only one In this way, we can also consider cutting team 3 and doing all the work by Team 1/2, which is also the biggest advantage of using Html/javascript as a unified front-end language and Apache Cordova, allowing us to use the fewest teams to achieve the most mobile platform coverage Of course, if users are demanding on the interface experience, there are advantages to using Xamarin native cross-platform scenarios.

As the business progresses, we may need to expand our team, using cross-platform development technologies, whether simplifying or expanding the team, our team will always align with the business and there will not be multiple lines of business using the same technical team. In the traditional development model, if you do not have enough resources for each line of business (driver/tenant, etc.) with an independent technical team, and according to the technical platform (iphone/android) to form a team structure, there will be different lines of business need to do different things with a technical team, This time will inevitably cause conflict of resources, resulting in internal friction. Using cross-platform development techniques is a good thing to avoid, because we don't have to isolate the team structure that should follow the business because of different technologies. The first principle in the management of a large software development team is that the team should align with the business and not be influenced by the technology selection, so that we can minimize the impact of external factors on delivery according to the needs of the line of business, and deliver continuously according to the business function, while multiple lines of business use the same technical team, Not only the developers at a loss, but also greatly increase the cost of communication, resulting in quality problems.

Finally, for team building and capacity growth, the use of cross-platform technology teams using the same language, tools, development environment, which makes it easier for team members to communicate with each other and help each other to complete the work, which is more conducive to the establishment of a healthy team atmosphere, to foster the atmosphere of mutual cooperation.

In accordance with the above team capabilities, we see the calculation of research and development costs in the following table:

(The following developer payroll data collection from CSDN's 2013 developer Payroll Survey, according to the survey data I roughly estimate the level of salary for each category of programmers, while multiplying the 1.4 factor to account for social security and other factors to calculate the overall monthly cost. Survey Original: HTTP://WWW.CSDN.NET/ARTICLE/2014-03-26/2818997/1)

In particular, we have 2 developers for each technical position in the team configuration, and the different technical positions are interchangeable because of the very similar technology used. The interchangeability of positions is important for us to avoid the effects of illness/leave/leave of employees! And my average salary here has reached 18000 yuan/month, which is higher than the product manager's calculation Method! This means that you can hire a higher level of developer.

According to the above we can also calculate the development cost of the first 3 years:

If you use cross-platform mobile development technology alone, you can save more than $600,000 in research and development costs in the first year, and as the team expands (because the app team accounts for most of the research and development costs), the savings and the amount will become even more amazing! Please note that in the "Product Manager" calculation, he used the "first edition" cost is calculated according to 6 months, roughly 1 million of the research and development costs, and I here the "traditional" calculation method is basically consistent, and practical "cross-platform" technology "first edition" cost than "Product manager" calculation way lower 200,000 yuan!

In reality, many of my friends have asked me how to develop an app M.F.B. s, I often tell them to use cross-platform technology, but the final result they will choose the traditional platform independent development of the way, hope that the above analysis can help these friends can understand the "cross-platform" technology cost advantage. Of course, other questions about these technologies in your mind, such as how they differ from the traditional native apps, what are the pros and cons of different cross-platform technologies, will be answered in subsequent articles ...

For more information, please follow the public number DevOps

From the technical manager's point of view, how can be M.F.B. s to make an app

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.