Collaboration Archives - Indium https://www.indiumsoftware.com/blog/tag/collaboration/ Make Technology Work Fri, 12 Apr 2024 08:37:12 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.3 https://www.indiumsoftware.com/wp-content/uploads/2023/10/cropped-logo_fixed-32x32.png Collaboration Archives - Indium https://www.indiumsoftware.com/blog/tag/collaboration/ 32 32 Spilling the Deets: Low-Code in BFSI Made Simple! https://www.indiumsoftware.com/blog/spilling-the-deets-low-code-in-bfsi-made-simple/ Tue, 17 Oct 2023 10:25:57 +0000 https://www.indiumsoftware.com/?p=21175 Recently, the financial services world went through a bit of a digital makeover. To keep pace with these changes and cater to customers’ growing expectations, banks, and financial institutions are on the hunt for creative ways to streamline their operations and offer top-notch service. Enter the low-code superhero. Low-code platforms let you whip up apps

The post Spilling the Deets: Low-Code in BFSI Made Simple! appeared first on Indium.

]]>
Recently, the financial services world went through a bit of a digital makeover. To keep pace with these changes and cater to customers’ growing expectations, banks, and financial institutions are on the hunt for creative ways to streamline their operations and offer top-notch service. Enter the low-code superhero. Low-code platforms let you whip up apps at lightning speed with minimal coding, making it a playground for business folks who don’t speak binary.

We’re about to spill the beans on everything you need to know about low-code in financial services. Buckle up; it’s gonna be a fun ride!

Rapid App Building

Low-code platforms are like the turbo boost for financial institutions. They come with a user-friendly, drag-and-drop playground and a treasure chest of pre-made components, making app development a walk in the park. Even folks in suits, like financial analysts and operations managers, can roll up their sleeves and get creative. With this speed boost, new solutions hit the market quicker, cutting down on wait time and ramping up how smooth things run behind the scenes.

Bend It Like Beckham – Agility and Flexibility

Finance is a dynamic game, with rules that change as often as the weather. Low-code platforms let you pull off those fancy agile moves and keep up with shifts in the market, those never-ending legal requirements, and the constant chatter from customers. Thanks to low-code’s magic, you can prototype and tinker with your apps at lightning speed, making it a breeze to adjust to whatever curveballs the business world throws your way. Whether it’s adding new features or tying into your existing systems, you won’t need an army of coders or disrupt your core operations.

Teamwork Makes the Dream Work

In the old days, IT teams and business folks used to speak different languages, and that led to some pretty epic misunderstandings and delays. But low-code is like the United Nations for business and tech. It brings them together, lets them hash things out, and builds apps that everyone can agree on. No more lost-in-translation moments, just smooth sailing toward those big goals.

Plug and Play

Financial institutions have a pretty tangled web of IT stuff going on. Low-code platforms are like the master key that fits all the locks. They’re pros at connecting with your existing systems, databases, and even those third-party apps you can’t live without. This seamless integration means data can flow like a river, manual tasks can vanish, and your whole operation can get a fresh boost of energy. Plus, they speak the same language as the hottest new tech, so you’re ready for whatever buzzwords come your way.

Playing By the Rules – Compliance and Security

The finance world has some pretty strict rule-makers, like the data privacy gurus and the financial regulation police. When you bring in low code, you’ve got to make sure it plays by the book. Look for low-code platforms that follow the rules, pack a punch with data encryption, let you set the right permissions, and give you a watchful eye with audit features. This way, you can keep the important stuff safe and stay in the good books with the regulators.

Roadblocks and Things to Think About

Even though low-code development brings a ton of perks, you can’t just jump in without a plan. Here are a few speed bumps to keep in mind:

1. Learning the Ropes: Introducing your team to low-code might require time and training investment.

2. Picking the Right Partner: Not all low-code vendors are made equal. You’ve got to be picky and look for the ones with a track record of awesomeness, top-notch security, and the ability to scale to your needs.

3. Tech Debt Pileup: Building apps faster is great but can lead to messy code and a mountain of technical debt. You’ve got to set some rules and keep things in check to avoid this pitfall.

4. App Life Support: Once you’ve got your shiny new apps, you’ve got to look after them. That means managing different versions, testing, and getting them out there into the world. You need processes and tools to keep everything running smoothly.

Digitalization takes center stage: Almost two decades ago, major financial institutions established separate units to explore e-commerce. Today, 70% of BFSI executives consider digital transformation essential (McKinsey & Company). The sector now focuses on payments, retail and online banking, and wealth management, extending into institutional banking. Despite progress in 2020, the insurance sector lags in digitization. To thrive, insurers must shift to a digital-first approach, offering personalized services to boost customer loyalty through unified views.

Replacing Legacy Systems with Modern Infrastructure: Change is vital as modern platforms offer superior benefits at lower costs. 79% of banking, fintech, and insurance CIOs recognize the influence of real-time, hyper-relevant experiences on customer expectations.

Rethinking Emerging Payments: Emerging payments are consolidating, not slowing down. It’s the right moment for the BFSI industry to develop frictionless, embedded, and native solutions for customer interaction, setting the stage for success.

Low code is like a superhero for financial institutions looking to make big digital changes. It hands the power to the business folks, speeds up app creation, and makes teamwork between business and tech a breeze. But there’s a catch. You’ve got to be ready for these challenges and always keep an eye on the rules and security stuff. If you do it right, low-code can change the game in finance, bring in some cool innovations, and give your customers the best experience they’ve ever had.

Exciting News! We’ve Got an Exclusive Ebook Coming Your Way – Stay Tuned and Follow Indium Software on LinkedIn

The post Spilling the Deets: Low-Code in BFSI Made Simple! appeared first on Indium.

]]>
GitHub Event Request Notification to Teams Channel https://www.indiumsoftware.com/blog/github-event-request-notification-to-teams-channel/ Thu, 27 Jul 2023 11:47:19 +0000 https://www.indiumsoftware.com/?p=17287 Introduction In the modern era of software development, collaboration among team members is more important than ever. With teams spread across different locations and time zones, communication and coordination become critical factors for the success of a project. This is where collaboration tools like GitHub and Microsoft Teams come into play. GitHub is a popular

The post GitHub Event Request Notification to Teams Channel appeared first on Indium.

]]>
Introduction

In the modern era of software development, collaboration among team members is more important than ever. With teams spread across different locations and time zones, communication and coordination become critical factors for the success of a project. This is where collaboration tools like GitHub and Microsoft Teams come into play. GitHub is a popular platform for hosting and collaborating on software development projects, while Microsoft Teams is one of the leading communication and collaboration tools used by many organisations.

Integrating GitHub and Microsoft Teams can create a seamless workflow for developers, project managers, and other stakeholders involved in a project. It enables teams to stay up-to-date with the latest changes in a project, collaborate on issues and pull requests, and streamline communication for efficient project management.

By integrating GitHub with Microsoft Teams, teams can receive real-time notifications on various events in their GitHub repositories. This can include notifications on issues, pull requests, commits, comments, releases, and deployments. This means that team members can stay informed about the latest developments in a project even if they are not actively working on it at the moment. This can help ensure that all team members are aligned and working towards the same goal.

 Integrating GitHub and Microsoft Teams is especially beneficial for remote teams, as it can help bridge the communication gap and enable teams to work together seamlessly, regardless of their physical location. By leveraging the capabilities of these tools, teams can improve their productivity, streamline their workflows, and achieve their goals more efficiently.

In this blog, we will explore the three important and different aspects of integrating GitHub and Microsoft Teams, including setting up webhooks, configuring connectors, generating workflows, customizing notifications, and troubleshooting common issues. We will also discuss the benefits and use cases for this integration, and how it can help teams collaborate more efficiently. By the end of this blog, we will have a good understanding of how to integrate GitHub and Microsoft Teams, and how it can help our team work together more effectively.

Why sending GitHub notifications to Microsoft Teams is important for project management.

Project management requires effective communication, and contemporary technical improvements have made it simpler to build more effective communication channels. An effective tool for team collaboration and communication is Microsoft Teams. GitHub is a well-liked website for code management and teamwork on software development projects. Integrating GitHub with Microsoft Teams improves project management significantly by establishing a flexible and productive platform for collaboration.

GitHub offers a range of notification options for project activity like issues, pull requests, commits, comments, releases, and deployments. However, in a busy development environment where team members are frequently preoccupied with other tasks, these alarms may go unnoticed or ignored. By integrating GitHub with Microsoft Teams, project managers and team members can receive real-time notifications on all project activity, ensuring that they are always informed and ready to address any issues.

The integration provides a central area for all project communication and collaboration. Teamwork can be promoted and the need for separate communication channels for different project activities is removed when team members can communicate in the channel to discuss and provide input on specific project tasks. Team members can stay in touch and informed thanks to this centralised platform for communication, which promotes accountability and transparency in the project.

Furthermore, the integration can improve project management efficiency by reducing the amount of time spent checking GitHub for new activity. Instead, the notifications are sent right to the relevant Microsoft Teams channels, providing team members with immediate access to important project changes. By doing this, it is less likely that important concerns will be overlooked or disregarded, and it is ensured that project stakeholders will be promptly informed of any changes that might affect the project’s budget or timeline.

Setting up a webhook method to receive GitHub notifications in Microsoft Teams

The processes to send notifications of GitHub issues, pull requests, pushes, merges, commits, comments, releases, and deployments to the Microsoft Teams channel using the webhook technique are as follows:

Step 1: In Microsoft Teams, create a webhook. Select the relevant channel by navigating there and clicking the three-dot icon. Find the “Incoming Webhook” connector by choosing “Connectors” and searching. Click “Create” after selecting the connector’s name and image of choice. The connector’s produced webhook URL should be copied.

 

Step 2: Configure the webhook in GitHub: Click “Settings” after finding the desired repository. Choose “Webhooks” from the menu on the left. the “Add webhook” button. In the “Payload URL” section, paste the webhook URL that the connector produced. Decide which events we wish to be notified about. the “Add webhook” button.

 

Step 3: Configure the payload Create the JSON payload to be transmitted to the Microsoft Teams channel by configuring the payload. Use the supplied payload format template or modify it to suit our needs. The necessary data, such as the commit message, author, timestamp, etc., should be included in the payload.

 

Step 4: Test the webhook: Make a code commit, push, pull, merge, or develop in the GitHub repository to test the webhook. Verify whether the webhook initiates the notice and transmits it to the Microsoft Teams channel.

 

Trigger the notification through Action Secrets and workflow YAML to a custom team channel.

The steps listed below can be used to send notifications about issues, pull requests, pushes, merges, commits, comments, releases, and deployments to a Microsoft Teams channel via GitHub action secrets and workflow YAML:

Step 1: Create a Microsoft Teams channel: To receive GitHub notifications, we must first create a channel in Microsoft Teams.

Step 2: Create an incoming webhook in Microsoft Teams by clicking on the three dots next to the channel name, choosing “Connectors,” and then choosing “Incoming Webhook.” To configure the webhook and get the webhook URL, follow the on-screen instructions.

Step 3: Make the GitHub action ready: Wherever we wish to configure the notifications, we can create a new GitHub repository or go to an existing source. Next, make a new file called “notify-teams.yml” in the “.github/workflows” directory. The workflow that initiates the notification is contained in this file.

 

Step 4: Configure the workflow. YAML: Specify the events that cause the notice by configuring the workflow YAML in the notify-teams.yml file. We can configure the workflow to start when a code commit, push, pull, merge, or develop event occurs, for instance. Additionally, we must specify the payload format and webhook URL.

Step 5: Create the GitHub secrets. We must create a GitHub secret in order to safely send the webhook URL to the process. Create a new secret with the value of the webhook URL we discovered in step 2 and the name “TEAMS_WEBHOOK_URL” by going to the repository settings, selecting “Secrets,” and creating a new secret.

Step 6: Test the notification: Once the workflow YAML and GitHub secret have been configured, test the notification by triggering one of the events listed in the YAML file. In order to confirm that the notification was delivered correctly, check the Microsoft Teams channel.

Learn how to leverage this powerful combination for enhanced productivity. Get started now and revolutionize your software development workflows!

Contact us

Installing and integrating the GitHub Application in Teams for a subscribed notification

The methods to install GitHub from Microsoft Teams apps and sign up for notifications are as follows:

Step 1: Go to the Teams area on the left-hand side of Microsoft Teams by opening it.

Step 2: Choose the channel where we want to receive notifications by clicking the team where we want to add the GitHub app.

Step 3: Search for “GitHub” under the Apps area by clicking the “+” button in the upper right corner of the page.

Step 4: To add the “GitHub” app to our team, click on it and then choose “Add”.

 

Step 5: Upon installation, the app will ask us to log in with our GitHub account. To log in and grant the app access to our GitHub repositories, adhere to the on-screen instructions.

Step 6: Select the repository we wish to get notifications for after logging in, then click the “Subscribe” button.

 

Step 7: Select the occasions, such as fresh pull requests, issues, or commits, for which we wish to receive notifications, and then click the “Subscribe” button once more.

Step 8: By selecting the channels we wish to receive the alerts on, we may personalise them by clicking the “Manage notifications” button.

Step 9: Once the notifications have been configured, click the “Save” button to save our modifications.

 

Following these instructions, we will get instant notifications anytime a new event happens in our GitHub repository in our Microsoft Teams channel. This connection can enhance team cooperation and keep us informed of the most recent codebase changes.

Best practises and customising GitHub notifications for better readability in Microsoft Teams

Project management would not be possible without GitHub notifications, which keep developers informed of updates and changes to the codebase. These notifications have even more strength when linked with Microsoft Teams, empowering team members to work together and communicate clearly. But because GitHub generates so many notifications, it is easy for crucial messages to get lost in the noise.

 It’s crucial to customise the alerts and adhere to several best practises to make sure that GitHub notifications are understandable and actionable in Microsoft Teams. We can follow the instructions listed below:

  1. 1. GitHub can produce notifications for a wide range of activities, from code pushes to pull requests. Choose which events to send notifications for, Select the most crucial events, and only send notifications for those, to prevent spamming our team with notifications.
  2. 2. Adjust notification settings: GitHub gives us the option to adjust notification settings for specific repositories, giving us more control over the alerts we get. We can decide, for instance, to only get notifications for a certain kind of event or to completely silence notifications for a certain repository.
  3. 3. Use keywords and filters to make sure notifications are simple to search for and easy to take action on. For instance, we can configure filters to only display notifications for a certain file or issue, which will make it simpler to identify and fix issues.
  4. 4. Use simple and concise wording: Use clear and concise language to ensure that notifications are readily understood. Avoid using acronyms or technical jargon that other team members might not understand.
  5. 5. Utilise integrations: GitHub is only one of several tools with which Microsoft Teams can be integrated. By utilising these integrations, we can make sure that notifications are delivered to the appropriate team members at the appropriate time, enhancing productivity and teamwork.

Supercharge your team’s collaboration and streamline project management with GitHub and Microsoft Teams integration. For more details book a call Today!

Contact us

Conclusion

Microsoft Teams and GitHub integration can greatly enhance team communication and project management. Team members can keep updated about code revisions, pull requests, and other critical updates via real-time notifications, ensuring that everyone is on the same page. There are numerous ways to start notifications, like installing GitHub apps in Microsoft Teams and using GitHub Actions secrets and workflow YAML. Every technique has its benefits and can be tailored to meet certain project requirements.

Using a clear and simple message, offering context, and emphasising important information like merge conflicts or unsuccessful builds are all best practises for customising notifications. The notification templates can also be altered by teams to fit their tastes and branding. Teams can enhance the readability and efficiency of GitHub notifications in Microsoft Teams by adhering to these best practises, resulting in more effective collaboration and improved project outcomes. Overall, modern software development teams aiming to optimise their workflows and increase productivity should consider integrating GitHub notifications with Microsoft Teams.

The post GitHub Event Request Notification to Teams Channel appeared first on Indium.

]]>
Scaling Scrum for Large Projects or Large-Scale Scrum (LeSS) https://www.indiumsoftware.com/blog/scaling-scrum-for-large-projects-or-large-scale-scrum-less/ Tue, 27 Jun 2023 09:36:29 +0000 https://www.indiumsoftware.com/?p=17213 Introduction: What is Large Scale Scrum (LeSS)? If you are envisioning scaling your scrum project to a larger level, then Large Scale Scrum (LeSS) by Bas Vodde and Craig Larman is the best choice to adopt and enforce. As the traditional scrum framework, LeSS is also an agile framework that qualifies for scaling scrum on a large

The post Scaling Scrum for Large Projects or Large-Scale Scrum (LeSS) appeared first on Indium.

]]>
Introduction: What is Large Scale Scrum (LeSS)?

If you are envisioning scaling your scrum project to a larger level, then Large Scale Scrum (LeSS) by Bas Vodde and Craig Larman is the best choice to adopt and enforce. As the traditional scrum framework, LeSS is also an agile framework that qualifies for scaling scrum on a large scale. LeSS was refined with a substratum of one scrum team, as expounded by Jeff Sutherland and Ken Schwaber in the Scrum Guide conglomerates, and this applies to numerous teams that collaborate to deliver one shippable product. Companies specializing in digital assurance services can support digital teams in examining and enhancing these processes.

The LeSS framework adheres to all the Scrum values: Respect, Courage, Openness, Focus, and Commitment.

Let’s understand LeSS by way of example. Say that you have four agile teams employed currently, and now you aspire to develop a large, complex product that will only be successful if your teams coordinate closely. The traditional scrum is too incompetent to continue in this situation. Well, what is the next step? Numerous frameworks are available for scaling Scrum, but here we will take a deep dive into LeSS.

Types of LeSS

LeSS branches off 2 two types:

(I) Basic LeSS is analogous to traditional scrum teams, where the scrum team varies from 2 to 8 teams.

(II) LeSS Huge has a focus only on large enterprises where more than 8 Scrum teams work together to deliver a single shippable product.

In this blog, we are only going to focus on LeSS Huge.

Experiments, Guides, and Principles of LeSS

Numerous experiments were conducted under the direction of Bas Vodde and Craig Larman to promote Scrum, and they defined the framework for large-scale Scrum with ten guiding principles. These aid large businesses in escalating their conventional scrum. The following guidelines were forged to scale the scrum on a large scale:

  1. Scrum at scale is Scrum.
  2. Transparency, empirical process control
  3. More with less
  4. Product focus throughout
  5. Customer-centric
  6. Ongoing development in the pursuit of perfection
  7. Systems analysis
  8. Lean thinking
  9. Theorem of queues

Since the principles are self-explanatory, I won’t list them all here.

Key differences between traditional and large-scale scrum

S.No Traditional Scrum Large Scale Scrum (LeSS)
1 Traditional Scrum is the agile framework depicted for project management. LeSS framework is also a scrum framework that is used in large enterprises that warrants you to adopt and enforce Scrum at a large scale
2 Traditional Scrum has 2 to 8 teams varying project specific. LeSS is molded from Scrum to support its use in larger enterprises.
3 Members of a scrum team are typically 10 or fewer people LeSS branches off 2 two types: Basic LeSS for 2 to 8 teams and LeSS Huge exceeds 8 teams.
4 Members of the traditional Scrum comprehends one Product Owner, one Scrum Master, and Developers. Members of the Large-scale Scrum also encompass one Product Owner, one Scrum Master, and Developers. On top of that, there is Area Product Owner (APO) and a manager.
5 Each team has its own product goal. Multiple teams work together on a sole product i.e., all teams have one product goal shared.
6 Each team has its own sprint. All teams have a sprint in common for them focusing on delivering single shippable product

Roles in LeSS: LeSS has the same roles as the classic scrum, including a Product Owner, Scrum Master, and Development team. Less more duties, which are described below, but with:

Product owner: Has control over the direction, vision, and objective of the product. He makes decisions, defines the product goal, and is in charge of managing the product backlog. The product owner role is expanded in LeSS Huge, namely, to include Area Product Owners (APO), who interact and coordinate across numerous teams.

Area product owner (APO): An Area Product Owner will act as ‘Product Owner’ for their respective teams with more focus on a customer-centric area.

Scrum Master: Accountable for establishing Scrum Also, supervise the team with ceaseless enhancement and be accountable for unclogging any issues raised and taking the next step needed.

Development team: It includes both the developers and testers, and it’s liable for product construction and shipment to the customer.

Manager: The manager supervises by assisting the team with eliminating obstacles for constant improvisation and self-determination.

Team members in LeSS are self-managing, cross-functional, apportion responsibility for all the team’s work, have a shared team goal, and are accountable for managing their own relationships with external teams and people.

Also read this informative blog on Minimum Viable Architecture for Agile Development.

Events in LeSS

With fewer extra events included in LeSS and some modifications made to the current events, LeSS Huge adheres to some of the same processes as standard scrum, including sprint planning, daily scrum, sprint review, and sprint retrospective.

Sprint Planning: In LeSS, sprint planning is split into two phases. During the first phase, all teams collaborate to decide how to divide the work items on the product backlog, and during the second, each team prepares its own sprint work items in conjunction with other teams.

Daily Scrum:  DSM is used as the single-team scrum in LeSS. Every team in the scrum holds a daily 15-minute meeting during which all team members jump on a call to address two topics: what was accomplished, the plan for the day, and any obstacles. The Scrum Master is responsible for clearing any obstacles brought up and taking the necessary action.

Product Backlog Refinement (PBR): PBR is a recursive meeting in which the Scrum team members come together to discuss, focus on, and revise the work items in order to prepare for the following sprints. PBR activities include estimating risks, values, dependencies, and story points as well as providing clarification and amending the user story as necessary.

Sprint Review: Sprint Review is held overall for all teams in LeSS, where the focus is on the whole shippable product.

Sprint Retrospective:

  • Sprint Retrospectives will be held for each team separately.
  • Additionally, an overall retrospective will be conducted that talks about how all teams aligned and worked closely together during the sprint.

Unlock Agile Excellence with LeSS, Contact us today for more information.

Click here

Conclusion

LeSS framework spotlight’s goal, to sum up, is not to invent a new framework but rather to implement Scrum’s ideas and principles as clearly as possible within the context of a huge organisation by means of established rules and norms. By doing so, any company or organisation can build their team’s ability to interact practically with and observe facts or events using LeSS, allowing them to transition from standard Scrum to Large Scale Scrum.

The post Scaling Scrum for Large Projects or Large-Scale Scrum (LeSS) appeared first on Indium.

]]>
Best practices in preparing gherkin feature file https://www.indiumsoftware.com/blog/best-practices-in-preparing-gherkin-feature-file/ Tue, 27 Jun 2023 05:57:29 +0000 https://www.indiumsoftware.com/?p=17197 Test Driven Development (TDD) is a test development process where the software requirements are broken down into smaller units, and create tests for each unit before developing the software. In the TDD approach, developers first create tests for each functional unit and then develop software to ensure that all the tests are handled in the

The post Best practices in preparing gherkin feature file appeared first on Indium.

]]>
Test Driven Development (TDD) is a test development process where the software requirements are broken down into smaller units, and create tests for each unit before developing the software. In the TDD approach, developers first create tests for each functional unit and then develop software to ensure that all the tests are handled in the code.

Behavior Driven Development (BDD) is another test development process derived from TDD. In BDD, testers create tests for the user behaviors. The Gherkin file is used for creating scenarios for end-to-end tests.

TDD vs. BDD Comparison

Parameters TDD BDD
Members involved Developer Developer, QA (or) Customer
The language used for creating tests. Leverage to define tests in plain language (English) Using programming language (E.g., Java, Python, etc.) Using Gherkin / Simple English
Who will create and use tests?

Only developers are able to write and use tests.

Only programmers with programming language knowledge can understand it.

Anyone involved in the project can define tests, and developers and testers can put them into practise.

Everybody working on the project can comprehend.

Used in the phase of Unit Testing Requirement understanding/E2E and Regression testing.
Suitable for Project Suitable for projects that do not have end users. If there is no dedicated QA team for testing. Suitable for projects with large customers. If the project with complex functionalities wanted to document all the user requirements in a readable format, Project with a better user experience.
Tools JUnit, TestNG, Pytest, Rspec, csUnit & NUnit etc. Cucumber, Specflow, Behave, JBehave, Behat & Concordion etc.

What is Gherkin?

Gherkin is a simple structured language that helps to create behavior-based tests using simple English, file can be read and understood by anyone in the software development team.

Gherkin is mostly used to define the tests to cover the end-to-end workflow. Writing scenarios in an independent/standalone way without creating dependency on each other is important.

Each scenario in a Gherkin file will be considered a standalone test.

Gherkin files should be saved with a .feature extension to automate the scenarios.

Many assume that writing feature files in the Gherkin language is easy, but it’s not. Though Gherkin uses simple syntax (Given, When, And, Then…), it has to be used wisely to define meaningful steps. It’s moreover like an art.

Preparing Gherkin is not just documentation work. A person involved in preparing Gherkin files has more responsibility as they are converting system requirements into system behaviors from a user perspective.

Take action now! Improve collaboration, automation, and software quality by implementing best practices in Gherkin feature file preparation. Start today!

Click here

Best practices in preparing gherkin feature files.

Avoid lengthy descriptions.

We must keep the Title & Description short; when the description is long, the readers may skip the lengthy description.

Scenario Background.

The scenario Background adds some context to each scenario. It is like a pre-requisite for scenario execution. Though writing Background is not mandatory like scenarios and steps, they can throw more context on the test and reduce the repetition of steps as they can act as pre-condition.

If there is no Background detail to add to any scenario, we may add some additional detail that are required or help to complete executing the scenario.

For Example:

  • Test Data,
  • Experiment files used for this test,
  • Database connection,
  • Other interface connectivity,
  • Etc.…

Scenario.

Prepare scenarios using clear statements as we document the requirements in user behavior format. Project stakeholders can access these documents for various reasons, such as to read and understand the requirement, to automate the tester to develop a script, and for future reference.

Project members have different levels of application understanding. We must consider this and prepare Gherkin files from lay man’s perspective.

Preparing scenarios at a high level (or) using too many statements is not recommended. Prepare only apt scenarios and steps.

The scenario is high level.

Scenario with too many statements.

Scenario with apt statements.

Pass accurate input parameters.

Always mention the accurate values in the input parameters, sometimes, the results may vary, and our scripts will fail. By passing accurate values, we can save much time, such as failure analysis, script rework, re-execution, etc.

Scenario Outline?

Using “Scenario Outline” is always good, especially when testing with N input parameters of similar workflow.

There are many advantages when we use the syntax “Scenario Outline.

  1. We can pass many parameter values using the same parameter key.
  2. The number of statements in the Gherkin file will reduce.
  3. Readability is good.
  4. Easy to maintain when there is an update or rework.

Using “Scenario” syntax:

Using “Scenario Outline” syntax:

Avoid Technical Terms.

Do not use any technical term (or) coding language in the Gherkin file, as it may not be understood by a non-technical person in the project.

Use the present tense

There is no such rule to prepare a Gherkin file only with the present tense, but I would suggest using the present tense wherever it is possible. It will keep the readers engaged with the application.

Statements with past/future tense.

Statements with the present tense.

Maintain the same naming convention.

We should maintain the same naming convention in all the scenarios inside the Gherkin file. Also, try to maintain all the Gherkin files in the project.

Add more negative scenarios.

This is a common rule applicable to any kind of testing. It is always good to have more negative scenarios in your test scripts. It helps us to validate the application, especially in negative situations. Like how effectively the application is designed, developed, and built to handle unexpected user behaviors.

For instance, does the application show a proper error message to users in unexpected workflow, how quickly can an application recover, any data loss, etc.

Alignment

We must ensure that all the lines are properly aligned inside a Gherkin file.

Always prepare the Gherkin file perfectly, as this will be the first impression to others about the document and its quality and content. It creates interest in the readers and helps them to complete reading quickly.

Avoid Spelling Mistakes

Not a major mistake, but spelling mistakes should be avoided in the Gherkin file. It will create a bad impression on the readers. Keep the content of the file simple without mistakes.

Make sure we enable the spell-check option while working on Gherkin files.
Sometimes spelling mistakes may not be highlighted in red lines, which means we haven’t installed the spell check extension and must install and enable it.

For Ex: “Code Spell Checker” & “Spell Right” extensions.

Process-related best practices can also be considered in the project.

  • Gherkin file review/approval process.
  • Collect all the Gherkin files and place them in a common repository.
  • The Gherkin file should be updated whenever there is a change.
  • Provide access rights to everyone in the project.
  • Read-only access to the Gherkin folder (except leads/manager) 
  • Maintain proper folder structure.
  • Maintain version controlling.
  • Periodic backup and maintenance.
  • We can involve the functional team in preparing Gherkin files if the automation team fully engages with scripting work.

Enhance collaboration, automate better, and deliver high-quality software. Start implementing best practices in Gherkin feature file preparation today!

Click here

Conclusion

In conclusion, following best practices in preparing Gherkin feature files is crucial for effective and efficient software development. By adhering to guidelines such as writing clear and concise scenarios, using descriptive language, organizing scenarios with proper structure, and involving stakeholders in the process, teams can improve collaboration, facilitate test automation, and ensure the delivery of high-quality software. Implementing these best practices empowers teams to create feature files that are easily understood, maintainable, and valuable assets throughout the software development lifecycle.

The post Best practices in preparing gherkin feature file appeared first on Indium.

]]>
Building UI in Isolation – Component Driven Development https://www.indiumsoftware.com/blog/building-ui-in-isolation-component-driven-development/ Fri, 21 Apr 2023 12:10:39 +0000 https://www.indiumsoftware.com/?p=16499 Overview of component-driven development (CDD) and building UI in isolation Component-driven development is an approach that aims to address some of the pain points in traditional UI development, particularly when it comes to reusability. In component-driven development, UIs are built as a collection of reusables, self-contained components that can be easily combined and reused across

The post Building UI in Isolation – Component Driven Development appeared first on Indium.

]]>
Overview of component-driven development (CDD) and building UI in isolation

Component-driven development is an approach that aims to address some of the pain points in traditional UI development, particularly when it comes to reusability. In component-driven development, UIs are built as a collection of reusables, self-contained components that can be easily combined and reused across different applications or parts of an application.

In traditional UI development, reusability can be challenging because user interfaces are often built as a single, monolithic codebase. This means that if a particular component needs to be reused in multiple places or applications, it must be manually copied and pasted, which can lead to code duplication and maintenance challenges. Additionally, modifying a component in one place can be difficult or impossible without affecting other parts of the application.

Component-driven development addresses these pain points by breaking down UIs into modular, reusable components that can be easily combined and reused across different parts of an application or even across different applications. This approach allows developers to create a library of reusable UI components that can be quickly and easily assembled into new interfaces.

By promoting component reuse, component-driven development can also lead to improved consistency and maintainability of UIs. Developers can ensure that each component functions and appears consistently across different parts of an application, and updates or changes can be made more easily by modifying a single component rather than modifying multiple copies of the same component.

Every UI element or a combination of UI elements is considered as a Component. Component driven development is a UI development approach that emphasizes building and reusing small, modular UI Components. Each component is designed to perform a specific function or provide a specific UI element, and these components can be combined to create larger, more complex systems.

Also read: Enable Increased Revenue using Rapid Application Development

Benefits of Component-Driven Development

Documentation: Component-driven development encourages documentation of each component’s behaviour and relevant states, which makes it easier for developers to understand how each component should be used and how it fits into the larger system. This documentation also serves as a reference for future development and maintenance, which saves time and reduces errors.

Playground: A playground environment allows developers to experiment with components in isolation without worrying about how they will interact with other parts of the system. This makes it easier to test and refine components before integrating them into the larger application.

Isolated & Reusable Components: The component-driven development approach encourages the creation of reusable components that can be used in different parts of the application. This saves development time and improves consistency, as developers can reuse tested and verified components rather than building new ones from scratch.

UI Asset Library: As developers create and refine components, they can add them to a UI asset library, which serves as a centralized repository of UI elements. This library can be used by other teams and applications, which saves time and improves consistency.

Test-Driven Development: Component-driven development is compatible with test-driven development, which involves writing tests before writing code. This approach ensures that components meet their requirements and work as expected, reducing errors and improving reliability.

Collaboration: Component-driven development encourages collaboration between teams, as components can be developed and tested separately before being integrated into the larger system. This approach reduces the risk of conflicts and errors and allows teams to work more efficiently.

The Component Driven Development Process

The process of component-driven development typically involves the following steps:

  • Designing and prototyping individual components based on user requirements and design standards.
  • Mapping Data points with Components
  • System Integrations with API (Optional)
  • Iteration and capturing variations based on the user feedback, data and behavior of the design and functionality of each component.

Design systems and style guides play a critical role in component-driven development (CDD) by providing a set of standards and guidelines for designing and developing UI components. A design system is a collection of reusable components, patterns, and guidelines that define the look and feel of an application. A style guide is a set of design guidelines and standards that define the visual and stylistic aspects of an application.

In CDD, design systems and style guides provide a shared language and set of guidelines for designers and developers to ensure consistency across different parts of an application or even across different applications. By establishing a set of design standards, design systems and style guides help ensure that UI components are reusable, modular, and maintainable.

Some of the key roles that design systems and style guides play in CDD include:

  1. Establishing visual consistency: Design systems and style guides establish a set of visual guidelines and standards that help ensure that UI components look and function consistently across different parts of an application. This can help improve the user experience and reduce the time and effort required to design and develop new components.
  2. Encouraging reusability: By defining a set of reusable components and design patterns, design systems and style guides promote component reuse and reduce the need for developers to write new code for each new UI element.
  3. Facilitating collaboration: Design systems and style guides provide a shared language and set of guidelines that help designers and developers work together more effectively. By establishing a common set of standards, design systems and style guides can reduce misunderstandings and improve communication between teams.
  4. Promoting efficiency: By providing a set of standards and guidelines, design systems and style guides can help reduce the time and effort required to design and develop new UI components. This can lead to more efficient and cost-effective development processes.

Development Approach in Component Driven Development

Fig: Component Driven development approach

Tools and Framework available for CDD

Tool/Framework Description Key Features
Storybook Open-source tool for building UI components in isolation – Develop, test, and document components independently of main application- Large ecosystem of add-ons and integrations – Supports many popular front-end frameworks
https://storybook.js.org/
Fractal Tool for creating and managing web design systems – Create and organize reusable components – Tools for testing, documenting, and publishing component- Can be integrated with other front-end tools and frameworks
https://fractal.build/
Pattern Lab Static site generator for building UI design systems – Tools for creating and testing reusable components- Integrates with many front-end tools and frameworks- Supports both HTML and React components
https://patternlab.io/
Styleguidist Tool for creating living style guides and UI component libraries – Build, test, and document components in isolation- Tools for integrating components into larger applications- Supports many popular front-end frameworks
https://react-styleguidist.js.org/
Bit Tool for building, sharing, and reusing UI components – Create and manage your own component libraries- Tools for testing, documenting, and sharing components with others- Integrates with many popular front-end tools and frameworks
https://bit.dev/
Atomic Design Methodology for creating and managing design systems – Guidelines for breaking down designs into smaller, reusable components- Framework for designing, testing, and maintaining components over time – Can be used with many front-end tools and frameworks
https://bradfrost.com/blog/post/atomic-web-design/

Best Practices for Component-Driven Development

  • Start with a design system that defines the visual language of your application.
  • Use a component library to speed up development and ensure consistency.
  • Develop components in isolation to make them modular and easier to test and reuse.
  • Write reusable code that can be used across different components and applications.
  • Test your components thoroughly to ensure they work as intended and are compatible with different devices.
  • Document your components to make it easier for other developers to use and understand them.
  • Collaborate closely with designers to ensure components align with the overall design system.
  • Use version control tools like Git to track changes and manage collaboration among team members.

Conclusion

In conclusion, component-driven development (CDD) is a software development approach that emphasizes the creation of reusable, modular, and maintainable UI components. By adopting CDD, development teams can streamline development, improve collaboration, and ensure consistency across different applications.

The benefits of CDD include faster development, increased productivity, better quality, and easier maintenance. CDD enables developers to create reusable UI components that can be easily integrated into different applications, reducing duplication of effort and improving consistency.

At Indium, we believe in the power of CDD to improve productivity and help our customers succeed. Our team of experienced developers uses CDD as a best practice for UI development, enabling us to create high-quality, reusable UI components that are modular, maintainable, and easy to use.

By leveraging the latest tools and frameworks for CDD, we can streamline development and improve collaboration across our team. Our approach to CDD enables us to create UI components that are consistent, scalable, and reusable across different applications, reducing development time and improving quality. We have helped our customers achieve greater success in their software projects, delivering faster development cycles, better quality, and improved user experiences.

So, whether you are a startup or an established enterprise, Indium is here to help you leverage the power of CDD to achieve greater productivity, consistency, and success. Contact us today to learn more about how we can help you with your UI development needs.

To learn how our services can help you build scalable, reusable, and efficient UI components for your web applications.

Contact Us

The post Building UI in Isolation – Component Driven Development appeared first on Indium.

]]>