360 likes | 496 Views
Topgrading UX with Microservices+DevOps. Building products that make business sense. Two decades into the millennium we know how to build working software. Agile. Lean. Sprints. Scrum. TDD/BDD. CI+CD. Kanban. DevSecOps. PASSION. But why most software isn’t used?. Relevant?.
E N D
Topgrading UX with Microservices+DevOps Building products that make business sense www.synerzip.com
Two decades into the millennium we know how to build working software Agile Lean Sprints Scrum TDD/BDD CI+CD Kanban DevSecOps PASSION
But why most software isn’t used? Relevant? Simple? Usable? Friendly? Needed? Cheap? Safe? Quick?
Software That Is Never Used App abandonment problem Not Used Never or Sparingly Used
SOFTWARE THAT’S NEVER USED
HARDLY USED
Getting Users “Hooked” Credits: NirEyal and Amy Jo Kim
Steps to Perpetual Engagement Flawlessly smooth & easy EFFORT Intuitive, minimal UI- a visitor becomes a user High value variable Reward Will make the user return for more Learning results in Commitment Both user and application become smarter using AI & ML Repeat use forms a Habit Stored data, photos, comments, reviews, ratings, connections
Hypothesis Driven Development • Hypotheses to be validated by iteratively building & field testing features to get the desired response/ behavior.
Hypotheses for User Engagement • That the UI will be relevant quick & intuitive for a visitor to become a user with minimum effort • That the value delivered is highly rewarding & promises to be even more so for a user to return & try again • That the user will learn to use & explore value derived by using increasingly complex features to form a habit • That the user will remain committed- thanks to her posts, photos & data stored and followers/likes gained • That the AI algorithms will deliver increasing value by using every new data for training themselves.
Monoliths Make HDD Hard • Releases are infrequent. Too many features are bundled in one release to isolate the effect of each feature on the user behavior • Adding or removing a feature takes too long as the application’s ability to grow its feature set becomes harder as it gets bigger • Making changes can result in regression due to hard wired dependencies. Needs long hours of testing to ensure no regression.
Welcome to DevOps • Continuous integration keeps the code always in ready state(01-03) • Automated regression testing ensures bug free release(04) • Infrastructure as code (Cloud) makes it possible to automate configuration of dev, test and prod environments. (05-06) • Cloud based distributed system in continuously monitored for feedback (07-08)
What makes it harder Monolithic enterprise applications have long regression testing cycles. Continuous delivery is theoretically possible but impractical. (Solution: Microservices) CD pipelines are hardly tested as the dev, test and production environments are not identical (Solution: Docker containers provide uniformity) Feature toggles, feature roll back etc. are hard to implement ( Solution: Spring Cloud)
Soln:ContainerizedMicroservices • One feature can be developed, built and deployed independently • Dev , test and prod environments are identically configured containers. • Easy feature toggles,canary releases, blue green deployments for hypothesis testing • Integration/ regression testing is limited to one microservice–easy to release frequently • Easy feedback @ user behavior- telemetry and analytics
Solution Product increments are tested for desired end user behavior. Only those which are easy, intuitive and captivating pass. Others fail even though they deliver the desired functionality. Source: Introduction to CI/CD with GitLab
Microservices=Product Increments Prioritized Backlog Next Hypothesis to validate Container w/Jenkins+ +Docker daemon Dev QA Ops Repository Test Containers Learning From the Feedback Continuous Delivery Code CI/CD pipeline API Contract validation / unit tests Docker files + Configmaps Continuous Deployment Product Market Validation Dockerhub Docker Images V1 Docker Images V2 Docker Images V3 Commit Stage Compile Basic Tests Kubernetes Container Orchestration Development Roll Back Kubernetes rolling updates Pods Development Test Production API test Stage UAT Manual Test Stage Performance & Security Release test Stage Reports Bugs
Managed Services & PaaS Synerzip developers know how to leverage the latest in public cloud managed services and PaaS technologies, saving time and development effort.
Containerized Microservices Containers (and container orchestration) are cutting edge technologies promising increased server utilization, improved service reliability, and easy dependency management. By containerizing you can reduce costs while also improving availability and development velocity. Synerzip has experience with major containerization technologies (Docker, Rocket) as well as orchestration tools (Kubernetes, Docker Swarm). We can assist you in containerizing your applications to ease the deployment, monitoring, and managing of your services in production.
DevOpsCI/CD RAKE
Mobile Technologies Mobile device usage has skyrocketed in recent years, driving a need for businesses to adopt native and responsive web applications that can be used across any device. Synerzip has extensive experience in mobile application development. We have developed a variety of custom apps across both iOS and Android platforms. Additionally, we can save time and cost with cross-platform development tools like Cordova and Appcelerator, allowing our team to write code that can be compiled into native applications for both Android and iOS.
QA Automation Technologies MonkeyRunner
Your Agile Software Co-development Partner Accelerate delivery of your product/technology roadmap Address technology skills gap in your inhouse team Save >50% with Indiabased software development talent Leverage US based professionals to make it easy for your inhouse team to collaborate
Representative Clients - 15+ Years …150+ more
Upcoming Webinar Blockchain in Clinical Trials Thursday October 24, 2019 @ 1pm ET | Noon CT | 10am PT Presenter: Rama Rao, CEO and Co-Founder Bloqcube, Inc.
But it’s still very hard • Hard to have 100% coverage for integration and regression testing • Dev and Prod environments are different- it works in dev but fails in prod • Adding or rolling back one feature at a time requires code changes in multiple layers involving different teams. • In case of failed builds one has to start all over again or write idempotent scripts