Fanbot.m Development Process and Technical Design
This document provides guidance and template material intended to help technical staff team, it is also useful background reading for anyone involved on the development process of our current product, this document will assume you know a thing or two about Lean and/or SCRUM, The less lengthy your sprints are, the faster you can course correct.
“Sprints are like flights; shorter = better.”
Stay lean, build less, you should keep your development process as lean as possible meaning, The more you and your people know, the more you can do in a smaller number of people for smaller amount of money.
Development Process Principles
Agile Development
Features
Stories
Task
Code Peer Review
Early debugging
The code stays here
Developers learn from each others
Teamwork
Time Tracking
Stage Environment
Development
Staging
Production
Straight-line Communication
Weekly Reports
Progress Tracking
Maintenance & Support
Our source control tool for our development process will be Github so we assume you know git, we will use release automation, and we will set up environments so we can regularly release updates, the benefits of a release process is that it forces us to think in terms of “shipping” this will help us to start planning to releasing stables versions of our application every one or two sprints depending on our development process. So the main goal is release the update of our product with a single command.
Four our branching model will be using GitFlow is suited to collaboration and scaling the development team, for more information visit this link. Git Flow Cheatsheet
Mostly of our code will be writing in javascript for automation testing in javascript will be using Phantom.js this framework is mostly used for front-end testing is easy to run from a command line so it integrates nicely in our CI system, for our server-side code will be using
Bug and issue Tracking
For bug and issue tracking will be using a trello board with the following structure:
Reported by team
Reported by clients
Accepted
In Progress
To be validated
Done
Unit tests only help if you’re running them. we have a Drone.io server to watch and test our code, Drone is a lightweight, powerful continuous delivery system built on container technology, drone uses a simple yaml configuration file, a superset of docker -compose to defines and execute pipelines inside Docker containers.
We want to make sure that our team members reviews each other’s code this has several significant benefits. First and foremost, it ensures that you’re shipping higher quality code. Second, it serves as an amazing educational opportunity for team members, so for this will be using our source control version Github using the feature of pull request to make code reviews in our development team once every member of the team review the pull request this can be merged on the requested branch
Release management include our CI environment and our scripts for releasing new code, so we have multiples environments for that staging and production, a staging environment serves two major purposes. First, it creates a shared environment where our members can test their code against consistent representation of your application; this give us a predictable a reliable version of your application that helps to decrease the “works for me” problem, Second, it creates a production-like environment for testing and features that may work slightly differently in a production or staging setting than they would on local development environment — this helps us detect any issues that might not otherwise be visible until you’ve released your code into production.
Complete Process.
We will separate our development stack in 4 categories.
Application and Data
Utilities
DevOps
Business Tools
Application and Data
Javascript
Php
Go
Python
Frameworks
React
Node.js
Mocha
PhantomJS
Cloud Hosting & Storage
AWS
Digital Ocean
Databases
MySQL
PostgreSQL
Mongodb
Redis (In-Memory Database)
Utilities
Paypal
Stripe
Messenger Platform
Api.ai
Google Analytics
DevOps
Github & git
Docker
Webpack
Drone.io
Sentry
Business Tools
G Suite
Slack
Trello
Zendesk
Intercom
InVision
Zoho CRM
Javascript Style Guide
Chatbots are on the rise. Startups are building chatbots like us in fanbot we’ve been working on chatbots for a while, and we’ve been looking on what is going on in the industry.
@surmenok/chatbot-architecture-496f5bf820ed">ChatBot Architecture
@surmenok/natural-language-pipeline-for-chatbots-897bda41482">Natural Language Pipeline for Chatbots
@surmenok/character-level-convolutional-networks-for-text-classification-d582c0c36ace">Character-Level Convolutional Networks
Conversational UX Design. All Facebook Messenger Bots Interactions
References.
Development Process