The App Trail
How ideas move out of the drawing board onto the app store
Contents 03
Prologue
04
Team Challenge
07
Algorithmic Living
15
App Trail
27
Conclusion
28
The Resume
2 | BUILDING A PRODUCT ON THE APP ENGINE
The Client Log A Typical day at the firm Production management is what happens on regular days. Running a business that offers development services, means you ship out products you make to someone else, who then owns and sells it to others. While it is hard to give up ownership, there are perks to being the most important cog in the wheel. A stream of interesting ideas will find their way to you. You will get to build some pretty awesome products or services that bring value to millions out there. The usual day at the firm (for those who haven’t guessed, we are a development services provider) begins with checks to see if production is on schedule. Resolving impediments or addressing requests for additional resources take up most of the work day.
Walk-in Days But some days are refreshingly different. Days when prospective clients walk-in or reach out with interesting new ideas. If it is an idea that seems promising, you will want it to be built as much as the guy sitting across you. But, ideas need resources to materialise and patrons to survive. Both you and the prospective client will now embark on a shared quest to draw the perfect blueprint for the project. The customer has a rough blueprint and an initial set of specifications laid out for you. The specifications centre on themes like the choice of IT model, the business objectives, the product features and functionality. You offer a few suggestions based on your vast experience with product development. The client seems intrigued by some of the ideas put forth. He requests a detailed report that sets out the development process, the methodologies and infrastructure in detail. It’s time to call for a team meeting…..
3 | BUILDING A PRODUCT ON THE APP ENGINE
1
TEAM CHALLENGE
When a new idea finds its way to the firm, it calls for a team meet. We bring in the experts to solve the business and technology riddles presented by the client. What follows are lively discussions among team members, with ideas that garner most support making it to the whiteboard.
Leaning towards LEAN The list on the board was impressive…
Google App Engine
Lean Software Development
Agile Practices
Dev Opps
The ideas on there could all be grouped under the lean paradigm. Once the principles were agreed upon, the team settles down to chalking out a detailed strategy. The possible impediments and enablers are identified. Any learnings from previous projects are discussed. One final task remains. The contours of the project report are left to be finalized.
4 | BUILDING A PRODUCT ON THE APP ENGINE
It is decided that the report will focus on the lean theme. The ďŹ rst part of the report will introduce the lean-agile paradigm. It will also convey the beneďŹ ts that lean development practices will bring to the project. The second part of the report will outline the various stages of product development. The report also tries to highlight the complementarities between Google App Engine and the Lean paradigm where applicable. Our pre-sales team is then assigned the task of coming up with a report along the decided lines.
5 | BUILDING A PRODUCT ON THE APP ENGINE
The Report The report is ready and is reviewed one final time. It does an excellent job of conveying the thought and process which the firm uses to create successful products. It is now time for you to take a look….
6 | BUILDING A PRODUCT ON THE APP ENGINE
2
ALGORITHMIC LIVING
Code, the Language that runs modern life
We live in a bold world. Our world is constantly innovating smarter ways of doing things. Would software be left behind? Of course, not! Software is ubiquitous in modern life. If you pause to think, algorithms are the most important adjuncts to modern way of life. ‘Code’ helps you decode many things in life….for example:
Tinder: Helps you find your next date
Google Maps: Helps you get to your destination
Google Search: Finds answers to your queries
Amazon: Is your favourite shopping assistant
7 | BUILDING A PRODUCT ON THE APP ENGINE
All of this and more is run by languages which we can only write but not speak. The process of writing algorithms/code is called development. The early models of software development were borrowed from those used in hardware industries. This crude adaptation of models from hardware industry worked well for large projects. For instance, the structured process of the waterfall model suits projects where requirements and scope are fixed, and technology is well understood. Conversely, it does not suit dynamic contexts, which favour a more evolutionary style of development. Startups and large enterprises both want to avoid market failure. The lean movement is a product of this desire to minimise risk and maximise value.
How Lean is Not Traditional The traditional business model is giving way to the lean start-up. The lean startup movement has a more exploratory approach to the business of launching a new service or product. A stark contrast to the old regime, which relied on the perfect plan, long-term forecasts and stealth working mode to get a product out into the market.
What ‘Lean’ People Know The lean startup assumes that •
The business model is not perfect
•
The right product-market fit will only reveal itself through trial-and-error methods
•
Product success/failure can only be guessed at through real consumer feedback.
Lean methodology thrives on creating variation and learning from it. Different hypotheses are tested, revised and discarded. A continuous customer feedback loop is established both pre- and post- product launch. This strategy ensures that too much money isn’t poured into ideas that would end up failing.
8 | BUILDING A PRODUCT ON THE APP ENGINE
The Winning Philosophy It’s a sound philosophy. If you are competing in a game, it would be prudent to discover your weaknesses early on and work on improving them. The alternative would be to find out on field and suffer a crushing defeat with no hope of changing the verdict. If lean methods are widely adopted, they will reduce the incidence of start-up failure, which at the moment stands quite high.
The B Team Alternative development methodologies like the Lean-Agile model and devOps movement are the B team. They have tried to address the limitations of the A team, a.k.a the waterfall model. The newer lower risk models follow incremental, iterative processes that rely on continuous delivery and integration. The change in methodologies has been helped along by the emergence of cloud computing. Given their popularity and apparent value, it is pertinent to introduce these concepts and understand the synergies between these methods and the cloud computing paradigm in general.
Lean-agile methodology
“
Think big, act small, fail fast; learn rapidly.
”
9 | BUILDING A PRODUCT ON THE APP ENGINE
A new development hire in a large firm is usually given a lengthy manual of project documentation on his first week on the job. He may frown at the bulky manual, but once he pores over its contents, he is ready to join the team. The beauty of the traditional waterfall model lies in its simplicity and robust documentation. New members can easily replace old ones in such processes. This is absent in lean methods which often don’t support extensive documentation. Despite this disadvantage, lean methods are rapidly gaining in popularity in the IT industry. The answer to this seeming contradiction lies in the ‘business value’ lean principles bring to firms, which also explains their popularity.
The Right Focus Lean methodology owes its success to its laser-sharp focus on the right elements needed to ensure product success.
1. Build the right thing
2. Build it fast
Discover and deliver value to real costumers
Reduce lead time. The time between customer order to solution delivery is reduced drastically.
3. Build the thing right
4.Learn through feedback
Build quality and integrity into the product with automated testing and integration
The product design must be perfected through frequent feedback right from the earliest stages of production.
10 | BUILDING A PRODUCT ON THE APP ENGINE
LEAN principles The lean-agile methodology has evolved it’s development practices based on a set of foundational principles. A cursory glance will help understand the speciďŹ cs of the lean software development that would be introduced next. 1.
Eliminate waste
2.
Amplify learning
3.
Decide as late as possible
4.
Deliver as fast as possible
5.
Empower the team
6.
Build integrity in
7.
See the whole
A New Manifesto for Software Development Lean software development combines lean methodology with agile practices. The principles behind this method stem from lean manufacturing principles. In the waterfall model, the software moves through set stages of design, development, testing and deployment. Testing and integration were usually left to the end of the development chain. The process meant that defects went undetected for a long time. To counter the negatives of sequential processes, lean- agile software development practices focus on fast feedback cycles:
1. Test-driven development Accumulation of defects is prevented by running tests as soon as the code is written. Automated testing is a part of this methodology and is used to build integrity into the product.
11 | BUILDING A PRODUCT ON THE APP ENGINE
2. Continuous integration The code is integrated into the code base frequently and in small increments. Simultaneous testing is done to check if the newly added code is running smoothly without introducing errors.
3. Iterative development The software development cycle is kept short, with a working application being readied in short iterations of 2-4 weeks. The iteration is followed by review.
4. Cross-functional teams If one goes by Lean-Agile believers, cross-functional teams are the best teams when it comes to software development. What is a cross functional team? A team with members who have all the necessary functional and domain skills to successfully develop and deploy a software product. Such teams include developers, testers, project managers, systems administrators, release managers, and business domain experts among others.
Lean IT model (cloud computing) Cloud computing IT model has replaced traditional model of IT provisioning. The cloud rents computing muscle along with range of management services. These have lowered the price and complexity inherent in software development greatly.
How the ‘Cloud’ is Lean A. PaaS: Cuts down the development costs. Ensures critical developer time is not lost in routine maintenan
12 | BUILDING A PRODUCT ON THE APP ENGINE
B. IaaS: Pay-as-you-use model. Ensures you pay only for what you use at each stage in the product lifecycle. C. Infinite scalability: The cloud offers infinite scalability at competitive prices. In traditional models, provisioning for demands spikes meant that servers were kept idle for most of the year.
Cloud and Lean: The Recipe for Product Success Cloud computing provides easy and automated provisioning of environments. The cloud is not just computing infrastructure (VMs and Network Resources). Cloud offers a range of partial to fully managed services like storage, analytics, PaaS and management services atop this infrastructure. Cloud is also pushing for newer architectures like microservices architecture which will underlie the next generation of cloud applications. The cloud framework is entirely congruent with the lean methodology principles. Let’s understand why…
A. Eliminating waste through A/B testing Google App Engine allows testing of multiple versions of the application. A/B testing and tracking cookies can help gauge consumer response to different versions of the application. This can help trim unnecessary features.
B. Build Integrity In through Testing Google App Engine allows unit testing and integration testing of the code while it is in development. Identifying mistakes early saves time and money. Also, it allows quality to be built into the application early on.
C. Deliver as fast as possible through PaaS Google App Engine is fully managed and hence applications can be developed and deployed in a short time. Reducing lead time is a stated goal of the lean model.
13 | BUILDING A PRODUCT ON THE APP ENGINE
The Future: Lean as the Norm Lean start-up methods aren’t just for young tech ventures. Large companies, such as GE and Intuit, have begun to implement them too. Lean-agile methodologies will become the de facto software development methods in the next decade. Early adoption of these practices will increase product competitiveness and help businesses stay ahead of the pack.
14 | BUILDING A PRODUCT ON THE APP ENGINE
3
APP TRAIL
How ideas move out of the drawing board onto the app store
The App trail is something everyone embarking on product development must be familiar with. If you are an enterprise CIO overseeing numerous in-house development teams you will be familiar with most of what we are about to tell you. Alternatively, if you are a startup entrepreneur with limited product development expertise you are in the best chapter of your life, so to speak. Why you ask?
Connecting the Dots: New Needs Breed New Methods We have already introduced you to changes sweeping through the world of software development – the agile-lean methodologies, devOps and Cloud computing. These changes reflect the changes in IT environment as a whole. Cloud computing has democratized cutting-edge technologies that allow applications to be launched quickly and cheaply. This has sparked off an app race. The market is witnessing new and interesting use cases that debut new services or service old problems in new ways. Most of these new products are launched by startups headed by first generation entrepreneurs. The traditional heavy methodologies cannot serve this new clientele. So what software development model matches startup needs?
15 | BUILDING A PRODUCT ON THE APP ENGINE
Agile-Lean Model: Development that sparks Discoveries The startup clientele is a mixed package, a combination of creative abundance on one side and resource crunch on the other. Also, a startup idea is usually hazy atleast on some of the details. Understandably so, given that founders are not always experts in the particular domain or market. In such cases, the optimum product-market fit is not clear at the outset and is usually achieved after a few iterations. The development process has to aid this discovery. Agile-lean, devOps and cloud computing paradigms are best suited to such dynamic development contexts.
Where it begins It begins with the quest to build the ‘Right Product’
One that finds early market adoption
One that delights customers
One that goes Viral
One that is sticky
The Premise
“
People don’t know what they want until you show it to them. -Steve Jobs
”
16 | BUILDING A PRODUCT ON THE APP ENGINE
Before you give wings to your startup dreams, test your idea. Product validation through market analysis and concept testing is crucial. This is because even the most brilliant ideas are not immune to the vagaries of the market.
Solving the Outsourcing Dilemma: End-to-End Product Development Does it mean cost concerns weigh higher than quality for most enterprises and startups? It’s never that simple. True, outsourcing is a significant cost and time saver. But, attracting the best IT talent with all the different skill sets required for end-to-end product development is not easy or necessary. In a world where technology and skills become obsolete quickly, it is not prudent to spend time building teams whose skills may not serve you for long. It is easier to hire a firm providing end-to-end product development services. This is why OPD will continue to shine.
Why end-to-end product development? An integrated design and development model where the development partner is brought onboard early on helps in clear understanding of the business objectives as well as user goals. This solves the quality issues and communication headaches inherent in outsourcing model.
17 | BUILDING A PRODUCT ON THE APP ENGINE
‘New’ Engagement models: Emphasize Collaboration and Co-Creation •
Engaging with clients and users to identify needs
•
Defining product specifications
• Building mockups and prototypes to test user experience
‘New’ Software development methodologies Super Teams: ‘Empowered’ + ‘Agile-Lean’ Dedicated cross-functional teams to work on a client’s product through its entire lifecycle •
Each team = Requisite ‘Technical skills’ + ‘Management skills’ for product development
COUNTDOWN TO LIVE APP Now let’s look at the stages expected in a general app building exercise. We are outlining a scenario where the development partner is brought onboard for end-to-end product development. It may well be the case, that the client has in-house capabilities for taking up some of these stages independently. In which case, the client may only require limited application development and deployment services. But bringing the development team into the loop early can result in time and cost savings, as we already pointed out earlier.
Now to the stages…
18 | BUILDING A PRODUCT ON THE APP ENGINE
Stage 1: Discovery Workshops This stage usually brings the client team and the vendor together for intense brainstorming sessions. All the requirements are identified. Once the feature set is identified, a product roadmap is built. The roadmap unifies the features and release schedules onto a single timeline. This visual product roadmap is communicated to all key stakeholders. Developers and testers must be made a part of planning, because their input will help identify technical limitations and opportunities.
Brainstorming sessions throw up a lot of good ideas. The first release is usually a minimum viable product (MVP) which heroes the core value of the product. But capturing ideas in a roadmap would be a brilliant move. This will guide future product enhancements.
Deliverables: • Requirement Book – Functional and non-functional requirements • User stories • Clarification of concept • Project Guidelines • API Specification • Visual Product Roadmap
More realistic Project estimates. Agile methods push for an early release of the MVP. This helps in generating real user feedback and ensures that money and time are spent on developing right set of features in future releases.
19 | BUILDING A PRODUCT ON THE APP ENGINE
A user story is a tool used to capture a description of a software feature from an end-user perspective. The user story describes the type of user, what they want and why. A user story helps to create a simplified description of a requirement. The development team's job is to take care of how to develop the code that will satisfy the requirements of the user story.
Stage 2: Wireframing 101: Wireframes/Mockups/Prototypes A wireframe is worth a 1000 spreadsheets A great User Experience (UX) is the sin qua non for present day apps. A wireframe conveys the key features, their structure and the basic UI of the final product. It tries to create a clear visual memory of the product design in the minds of key stakeholders.
When done right, wire-framing can act as an aid to communication. If the product has a rapid release schedule, it will help development teams visualize the tasks ahead.
Due to their non-interactive nature wireframes are not used in testing. But they can still provide initial feedback on UI design and help correct obvious errors saving time.
Why mock ups: Here’s your answer: You can fix it now on the drafting board with an eraser or you can fix it later on the construction site with a sledge hammer.
20 | BUILDING A PRODUCT ON THE APP ENGINE
Mockups are different from wireframes. They are static visual representations of the final product design. They are emerging as the alternative to good old requirement books. Mockups are used to generate early stakeholder buy-in, as well as to review the visual design. Balsamiq is a software tool that is great for creating semi-functional mockups that can be used in demos and usability tests. Prototypes are a progression over wireframes and mockups. They are interactive and hence costlier. Prototypes are semi-functional and are used in user testing. Translating ideas into rapid prototypes using HTML/CSS and Angular.js will help clients visualize the final product. User testing of prototypes will also flag design and experience issues.
Deliverables: • Wireframes/Mockups/Prototype
Stage 3: Decoding Design, Specifying Tests Once the final wireframes are ready, stakeholders review if the design meets the core functional requirements. Sometimes, a few alternatives of the selected UI design with slight modifications are generated. These are tested later to arrive on the final design. This process is crucial, as too many design iterations post release may harm the product. Writing test plans and specifications is intrinsic in agile methodologies which have developers and testers working in tandem throughout the development process. Defining tests helps clearly communicate the stakeholder expectations to developers. In an agile software development framework, acceptance tests are often akin to detailed requirement specifications.
Deliverables: • UI designs • Framing of acceptance tests
21 | BUILDING A PRODUCT ON THE APP ENGINE
Stage 4: Development and Testing Now the actual fun begins. The code goes into production. User stories are converted to code. Once the short pieces of code are developed they are subject to unit testing. The pieces of code are then integrated and the entire thematic module is tested together. Here, different versions of the code, with slight modifications can be tested together. A/B testing is useful in getting the optimal product market fit.
Google App Engine has in-built ability to support A/B testing. Multiple versions of application can be run in parallel and user response is gauged through cookies. Different versions usually involve subtle modifications to the UI.
Deliverables: • Application code • Unit testing • A/B testing
Stage 5: User Acceptance Testing (UAT) & Quality Checks Once you are ready with a functional application, its crunch time. Before it is launched to the world a final test of the app by real end users is recommended. An alpha or beta release which is tested by a select group of end users can help identify issues that have been overlooked or were undiscovered. UATs need to be diverse by default – the app needs to be tested on different devices by diverse sets of users to throw up some real insights.
22 | BUILDING A PRODUCT ON THE APP ENGINE
The Pivot to Market Success User Acceptance tests help in determining if the application has achieved Product market Fit (PMF). The product features are tweaked until it reaches the PMF. This practice of iterating the product until it achieves PMF is called Pivot. Integration with third party applications like Intercom, Mouseflow help in gaining insights on which product features or functional flows are finding traction and those that are not.
Google App Engine allows easy integration with third party solutions
Build or Buy? Custom Solutions are not popular anymore, most enterprises are licensing third-party off-the-shelf solutions to meet their business needs or for enhancing their product experience.
‘Jazz Up’ Customer Experience Integrations help small startups leverage the power of IT to meet complex business goals and to enhance customer experiences. Integration of Google cloud platform services with third party solutions is easy and rewarding. For example, consider Intercom the customer success solution. Intercom exposes a rich REST API for interacting with its services; this can be integrated with a Google App Engine hosted application.
23 | BUILDING A PRODUCT ON THE APP ENGINE
How you can use the Intercom REST API: 1. To pull data from it and use it for analytic purposes 2. To push data to it, Data that can enrich the service for customers To generate sophisticated business or market intelligence on your product, all you need to do is write a few extra lines of code. This code will extract data from Intercom and load it to Google’s Big Query service. Big Query then uses its analytics might to start generating actionable insights from the data.
Must-have 3rd party integrations • Payment gateway integration (paypal, braintree, stripe) • User Guides (inline manual, walkme) • email communication (send grid, mandrilll) • sms and call integration (twilio) • Customer adoption and communication (Intercom)
Deliverables: • A Alpha/Beta Version of App • User Feedback • Integration testing with 3rd party solutions • Performance testing
24 | BUILDING A PRODUCT ON THE APP ENGINE
Stage 6: Deployment and Support Post deployment performance is crucial to a products market success. Only a lucky few products go viral, and you don’t want your servers to crash if you happen to be the lucky one. Imagine going down the annals of app history as a one-day wonder. So, redundancy and scalability have to built into the design. Product performance relies on proper provisioning and good server architecture. Network performance tests and traffic handling tests are conducted on the app before it goes live. Network issues both during testing and after launch must be resolved promptly through a robust ticketing system.
Google App Engine offers infinite scalability at industry leading prices
Deliverables: • Deployment and Support Documentation • Full integration with third party solutions • Final Application
The Continuous delivery Paradigm What we saw was one full cycle of product development. The current paradigm in software development is geared towards an extended lifecycle for product development. Patches, upgrades and multiple releases are the new norm. This necessitates that the development partnership continue post release. Companies stand to gain from such a scenario, as they • Get expert maintenance support over the life of the product • Can support continuous releases • Ensure the product is fine-tuned to changes in market
25 | BUILDING A PRODUCT ON THE APP ENGINE
You have clocked more miles on your product development journey. With this you have learnt: How products get built. The methodologies, the stages and best practices involved in developing products for our times. But we have so far held back on discussing the philosophy that ties all of this together. Great products tap on the creative geniuses of many minds, tied together by a guiding philosophy. Seth Godin nailed the crux of the philosophy that must propel product development when he said
“
Don’t find customers for your products; find products for your customers
”
Designing a product is designing a relationship with your customers. Pick the right team! For, together you must build a beautiful relationship with your audience.
26 | BUILDING A PRODUCT ON THE APP ENGINE
Conclusion The Client: Firm X The Development Partner: Firm B (The Cloud Development Partner)
Bring your Ideas, we’ll build them for you
Inside the Bitmin office, another team meet is in progress. The project team is being assembled. •
Developer team
•
UX team
•
Testing team
•
Systems Admin team
•
Project management team
•
Client communication team
The person-in-charge is verifying the checklist to see if everything is covered. He then hands out task dossiers to team members. A quick brief follows. The team lead creates and shares the development calendar. And work begins….. And, yet another app will be born into the world
27 | BUILDING A PRODUCT ON THE APP ENGINE
Our Resume Why we are the ‘Pick of the Litter’
WHO WE ARE Bitmin specialises in product development services that are customised to a client’s needs. This is born out of our clear understanding of the difference between custom software and off-the-shelf software types. The ability to go the extra mile in customization hinges on the availability of requisite talent in-house. We have created an additional layer of skills and competencies that will support more sophisticated development needs.
WHY YOU SHOULD HIRE US Bitmin prides itself as an end-to-end product development service provider.
S O M E O F O U R S E R V I C E S T H AT H AV E E A R N E D U S THE RECOGNITION: 1. We strive to gain a thorough understanding of market requirements as well as product requirements 2. We design flexible architecture that will scale as per the direction the product takes in the future 3. We work with shorter release cycles. This helps new features and updates get to the market faster. 4. We map a migration path when maintenance releases are available 5. We develop an easy framework to manage different customised versions of the product 6. We support marketing needs with effective and efficient documentation
28 | BUILDING A PRODUCT ON THE APP ENGINE
OUR SKILLS Bitmin’s expertise spans the entire spectrum of product development cycle. We offer the following key services: 1. New product design and development 2. Feature enhancement 3. Product platform migration 4. Software product testing 5. Software product maintenance and support 6. Product release and license management 7. Product packaging for distribution
OUR STRENGTHS
Perfect Methodology Bitmin has developed superior products for its customers over the years. And with this wealth of experience, we have also refined our methodology to create a highly efficient product development environment. Our product development and engineering framework extends from conceptualization, architecture, design, development, testing, all the way to deployment and future enhancements to porting and finally, but importantly, offering ongoing support.
Reliability Bitmin seriously guards the intellectual properties of its clients by providing them full ownership of the outsourced product. To this effect, we sign Non-Disclosure and IPR agreements with our clients to ensure exclusivity of source code and intellectual capital rights to them.
29 | BUILDING A PRODUCT ON THE APP ENGINE
O U R J O U R N E Y S O FA R
We inspire confidence in a space that lacks it. Our emergence as a reliable OPD services provider is owed to these practices: 1. We employ talented engineers with international expertise in product development on Google App Engine. 2. Our developers are well supported. We have top notch architects, designers and software testing analysts with product as well as domain expertise, to offer high quality to the development team. 3. In addition to its keen focus on quality, Bitmin also prioritises an Agile development environment 4. We continuously invest in adding useful product development tools to our skill suite. 5. We offer Zero risk guarantee for ISVs looking to outsource their product development. We follow stringent IP protection protocols which are integrated into the working contracts.
30 | BUILDING A PRODUCT ON THE APP ENGINE
© Copyright BitMin 2016
BitMin Infosystems Private Limited Jayabheri Silicon County, Hitech City Road Kothaguda, Hyderabad -500084 info@BitMin.net +1 408 520 9294