The Software is eating the world & need for software development is ever increasing.
In order to thrive in the new world, every company needs to become a software company in some sense or at least be willing to heavily invest on software development in today’s world.No matter what industry you’re in, you are expected to be re imagining your business to make sure you are not that next local taxi company or hotel business caught completely off-guard by the likes of Uber or Airbnb.
In today’s highly competitive & disruptive world, from fending off the competition to losing a potential customer to the competition, timing is everything.
Be it a startup launching their product for the first time or Fortune 500 corporation pushing their latest software release, time-to-market has become a critical component for success today for startups & Fortune 500 corporations alike.
Every time you are using Amazon, Facebook, or Gmail, you are using the latest version. In fact, the software may have been updated already 15 times in a day.
Netflix has created a cloud-based IT architecture that allows them to launch hundreds of software changes a day. You don’t have to be tech giant to leverage this kind of shorter development cycles & increased deployment frequency; even a startup may benefit from continuous delivery of code. This is where High-velocity software development comes into the picture.
In this blog, we will try to understand further high-velocity software development, challenges it addresses & how it works to provide you with continuous delivery of high-quality code.
What is High-Velocity Software Development?
High-velocity Software development is a highly optimized software development model which leverages the automation of IT operations & software development processes to provide you with much faster & continuous delivery of quality code.
High-velocity software development addresses the challenges which the traditional development models like Waterfall or Agile don’t address. Critical Challenges that conventional development models don’t address are:-
- Distributed & global teams working in Silos
- Shorter Time to market deadlines
- Communication & collaboration issues
- Managing day-to-day operational problems
High-velocity software development identifies challenging areas of the process and find ways to fix them, through automation, better collaboration, and improved working practices.
Without much further ado, let’s see how it’s all works to give us the much priced shorter development cycles & increased deployment frequency.
How it works
High-velocity software development like in agile development is divided into sprints. It starts with a foundation sprint, which determines the success of the future sprints. The duration of foundation sprint is around 7-10 days.
The Foundation sprint starts with a project kickoff meeting with the client where the Project Manager(PM) educates the customer on the new process. PM creates a tracking checklist for the project & shares the final checklist with CEO and customer at the end of foundation sprint.He identifies the team & starts the requirement engineering phase.
This is the most critical stage in the foundation sprint and all team members involved in the project are required to participate.
- Business analyst(BA) understands the requirements collaborating with the client & create the requirement document for future reference.
- BA shares the effort estimations at a high level once he has the complete list of requirements.
Once the requirement engineering phase gets over, Environment setup is done.
- Dev and QA environment is set up by the DevOps team,
- Git repo is setup
- DevOps Team will setup Jenkins or similar tools for Continuous Integration/Continuous Delivery(CI/CD).
- All code merge to master branch is auto-deployed to the Development environment.
- QA deployment is initiated manually by QA team via CI/CD Tool as and when required
- Base Code is setup & Tech Lead(TL) needs to bootstrap base code & push it to Git repo, TL also needs to ensure all code bases are integrated to sonarcube
- PM identifies the master requirement sheet items for first spring
- Sprints can either be 2 or 3 weeks long.
- Entire Team estimates the items through proper sprint planning techniques & based on available man-hours a sprint plan is created
- This is communicated to customer and approval taken
Establishing the Process
This phase of the foundation sprint includes Kanban setup, Collaboration tool integration, Application design & data modeling.
Setting up a Kanban in the project management tool like Jira l is the essential tool for the whole development process. QA creates the Kanban board for sprint one.
Kanban Process Flow and Ownership:-
These are the tasks planned for the current week.QA owns this tasks & moves tasks from backlog to Open.
These are all tasks being worked in real-time.Development team picks the tasks from Open and move to in progress bucket.
For Peer code review and unit testing.The developer can move the task to Code Review bucket.
Ready for testing:-
Peer reviewer moves the cards from Code Review to Ready for the testing bucket.This environment is accessible to the customer, and they can start testing as well.
The product owner can start testing in QA environment and move the card to Closed.
Collaboration tool Integration
Git, CI/CD like Jenkins and Kanban reports are all integrated with Collaboration Channel like Skype/Slack.
The collaboration channel like Slack/Skype will be the tool through which visibility and transparency to all stakeholders ensured.
As shown in the above figure, with the help of DevOps & CI/CD tools we can automate the whole deployment process & the entire collaboration & communication happens on the collaboration channel.
- Tracking & reporting
- All the progress tracking done via Kanban reports.
- Git provides excellent visibility on commits
- QA Environment provides customer a good visibility on feature progress.
- Collaboration channel is used to consolidate all activities.
- All future sprints after Foundations Sprint are treated same.
- For web applications, the need for an HTML developer is essential to maintain velocity.
High-velocity software development makes the development process an highly optimized, automated & integrated experience. We build applications for startups & enterprises using the high-velocity software development.
So you have an idea & want to build your application the high-velocity way. Let’s connect.