Generative AI which used to be once the stuff of science fiction has firmly established itself as a transformative force in the software industry. It has disrupted traditional software development approaches, pushing the boundaries of what is possible and reshaping the way we design, build and maintain software applications. The software industry is being profoundly changed by generative artificial intelligence (generative AI), which is at the forefront of technical advancement.
This article explores the meaning, scope, importance and use of generative artificial intelligence (AI), highlighting how it has the potential to revolutionize the software industry.
What is Generative AI?
Generative AI refers to a class of artificial intelligence techniques that focuses on creating new data that is similar to existing data. Unlike other AI methods that may be purely predictive or classification-based, generative models have the unique ability to generate entirely new content, whether it’s images, text or even code.
This ability to generate new content sets generative AI apart from other AI techniques. Instead of simply analyzing and making predictions based on existing data, generative models have the capacity to create something entirely novel. This opens up a world of possibilities in various fields.
The Evolution of AI in Software Development
Artificial intelligence has long been used in the software business. But the introduction of generative models signals a substantial advancement in the way AI is used in software development. While generative AI makes use of neural networks and unsupervised learning, traditional AI applications frequently use rule-based systems or supervised learning. By enabling machines to learn and create on their own, without explicit instructions or labeled data, generative models have transformed the field of artificial intelligence. This innovation has created new opportunities for software development by enabling AI systems to produce original content, anticipate the future, and even help with creative work.
One of the key advantages of generative AI is its ability to understand and mimic complex patterns in data. Traditional rule-based systems rely on predefined rules and logic, limiting their adaptability to new situations.
The Role of Generative AI in Modern Software Development
Generative AI has found its place in almost every stage of modern software development. From generating user interface designs to automatically creating code, its applications are diverse and game-changing. Generative models can analyze vast amounts of unstructured data and learn underlying patterns, enabling them to generate realistic outputs that resemble the training data.
Unsupervised learning plays a crucial role in generative AI. By learning from unlabeled data, these models can identify hidden structures and relationships within the information they are exposed to. This capability is particularly valuable in software development because it allows AI systems to discover insights or create solutions that may not have been apparent through traditional programming approaches.
Let’s dive deeper into how generative AI is revolutionizing various aspects of software development.
Understanding Generative AI Models
Generative Adversarial Networks (GANs)
GANs consist of two neural networks, a generator and a discriminator, which engage in continuous competition. The generator aims to create data that is indistinguishable from real data, while the discriminator tries to tell whether the data is real or fake. This adversarial process leads to the generation of high-quality content.
Variational Autoencoders (VAEs)
Variational Autoencoders, or VAEs, are another type of generative model that excels in data compression and generation. VAEs work by learning a probabilistic distribution of data, enabling them to generate new data samples by sampling from this distribution. They have applications in generating images, reconstructing data, and even assisting in drug discovery.
Recurrent Neural Networks (RNNs) in Generative AI
Recurrent Neural Networks have been a staple in sequence generation tasks. With applications ranging from natural language generation to music composition, RNNs are known for their ability to take into account the context of previous inputs. This makes them well-suited for tasks where the order of data matters.
Generative AI in Software Design
Automating User Interface (UI) Design
One of the most visible impacts of generative AI in software development is in the realm of user interface (UI) design. Designing a user-friendly and visually appealing UI is crucial for any software application. Generative AI tools can analyze user preferences, industry trends and brand guidelines to automatically generate UI layouts, color schemes and typography choices.
Generating Creative Graphic Assets
In addition to UI design, generative AI can create graphic assets such as icons, logos and illustrations. By understanding the context and purpose of the design, these AI systems can generate visually striking and on-brand graphics, saving designers significant time and effort.
Enhancing User Experience (UX) through AI
User experience (UX) is a critical factor in software success. Generative AI can analyze user behavior and feedback to suggest improvements in UX. For example, it can generate personalized content recommendations, optimize user flows, and even predict potential pain points in the user journey.
Code Generation with Generative AI
The Rise of Code Generators
One of the most disruptive applications of generative AI is in code generation. Writing code is a time-consuming and error-prone task, and AI-powered code generators aim to alleviate these challenges. These tools can understand high-level requirements and generate code snippets or even entire programs in various programming languages.
Benefits of AI-Generated Code
AI-generated code offers several advantages. First and foremost, it accelerates software development by automating a significant portion of the coding process. This leads to faster time-to-market and reduced development costs. Additionally, AI-generated code is less prone to human errors, resulting in more reliable and robust software.
Challenges and Limitations
While AI-generated code holds tremendous promise, it also faces challenges. Ensuring that the generated code aligns with the intended functionality and adheres to coding standards remains a complex problem. Moreover, debugging AI-generated code can be challenging, as traditional debugging techniques may not apply.
Natural Language Processing (NLP) and Generative AI
Conversational AI, powered by generative models, is revolutionizing customer support and interaction. Chatbots and virtual assistants equipped with NLP capabilities can engage in human-like conversations, answer queries, and provide support around the clock.
AI-Powered Content Creation
Generative AI has also made its mark in content creation. It can generate written content, from news articles to marketing copy, at a scale and speed that would be impossible for human writers alone. Content generated by AI can be tailored to specific audiences, optimizing engagement and impact.
Language barriers are no longer insurmountable obstacles, thanks to generative AI. These systems can translate text and speech between languages with remarkable accuracy, opening up new opportunities for global collaboration and communication.
Testing and Debugging with Generative AI
Generative AI plays a vital role in automating software testing. It can generate test cases, simulate user interactions, and identify potential vulnerabilities and performance bottlenecks. This accelerates the testing process and enhances software quality.
Detecting Anomalies and Security Threats
Security is a paramount concern in software development. Generative AI can analyze system logs and user behavior to detect anomalies that may indicate security breaches or cyberattacks. This proactive approach to security can save organizations from devastating data breaches.
When bugs do arise, generative AI can assist developers in the debugging process. It can analyze code, pinpoint issues, and even suggest potential fixes based on established best practices. This accelerates the resolution of software defects.
Predictive Analytics and Decision Support
In industrial settings, generative AI is used for predictive maintenance. By analyzing sensor data and equipment performance, AI models can predict when machinery is likely to fail, allowing for proactive maintenance and minimizing downtime.
Data-Driven Decision Making
Data is a valuable asset in the modern software landscape. Generative AI can analyze large datasets, extract meaningful insights, and provide decision-makers with the information they need to make informed choices. Whether it’s market trends or user behavior, AI can uncover hidden patterns.
Forecasting with Generative AI
Generative models are also adept at forecasting. Whether it’s predicting demand for products, stock market trends, or weather patterns, AI can provide forecasts with a high degree of accuracy. This is invaluable for industries where accurate predictions drive strategic decisions.
Generative AI in Software Documentation
Automated Documentation Generation
Documentation is an essential part of software development. Generative AI can automate the creation of documentation by extracting information from code, user interactions, and system behavior. This ensures that documentation remains up to date and comprehensive.
Improving Accessibility and Clarity
AI-generated documentation can also enhance accessibility. It can convert text to various formats, such as braille or audio, making software accessible to individuals with disabilities. Additionally, AI can simplify complex technical language, making documentation more understandable for a broader audience.
In a globalized world, software often needs to support multiple languages. Generative AI can assist in translating and localizing documentation, ensuring that users around the world can access information in their preferred language.
Collaboration and Knowledge Sharing
Facilitating Remote Collaboration
Generative AI tools enable remote collaboration by providing real-time language translation and interpretation services. This breaks down language barriers and fosters global teamwork.
AI-powered knowledge repositories can store and organize vast amounts of information, making it easily accessible to developers and other stakeholders. This promotes knowledge sharing and accelerates problem-solving.
AI-Powered Search and Retrieval
Locating relevant information within large datasets or repositories can be challenging. Generative AI can enhance search capabilities by understanding context and intent, delivering more accurate and efficient results.
Ethical Considerations in Generative AI
Bias and Fairness
Generative AI systems can inadvertently perpetuate biases present in the data they are trained on. Recognizing and addressing bias in AI models is an ongoing ethical concern, particularly when AI influences decisions that impact individuals’ lives.
As AI systems become more capable of generating highly personalized content, concerns about privacy arise. Balancing personalization with data protection is a delicate ethical challenge.
Accountability and Transparency
Understanding how AI makes decisions and being able to explain those decisions is crucial for accountability and trust. Ensuring transparency in AI-generated content and actions is an ethical imperative.
Generative AI Adoption in Industry Sectors
In healthcare, generative AI assists in medical image analysis, drug discovery, and patient care. AI can generate 3D reconstructions of medical scans, analyze medical records, and even assist in diagnosing diseases.
The financial industry relies on generative AI for fraud detection, risk assessment, and algorithmic trading. AI can generate insights from vast financial datasets, helping institutions make informed decisions.
Manufacturing processes benefit from predictive maintenance and quality control through generative AI. AI-generated simulations can optimize production processes and reduce waste.
In the entertainment industry, generative AI contributes to content creation, from generating music and art to enhancing video game experiences. AI can even create entirely new storylines for interactive media.
The Future of Generative AI
Advancements in AI Research
The field of generative AI is rapidly evolving. Researchers continue to push the boundaries, developing more sophisticated models and improving existing ones. The future promises even more impressive AI capabilities.
Potential Disruptions and Transformations
As generative AI becomes more integrated into software development, it has the potential to disrupt traditional job roles and workflows. However, it also opens up new opportunities for creativity and innovation.
Ethical and Regulatory Challenges Ahead
Addressing ethical concerns and establishing robust regulations for generative AI will be paramount. Striking the right balance between innovation and responsibility is a complex but essential task.
Challenges and Barriers
Generative Artificial Intelligence (AI) has emerged as a transformative force in various industries, but it also brings forth a set of intricate technical challenges that organizations must tackle to fully harness its potential.
Scaling AI Models
Scaling AI models is a complex undertaking that requires careful consideration of both hardware and software aspects. As AI models become more sophisticated and powerful, they demand substantial computational resources.
Ensuring Model Fairness
Ensuring fairness in AI models is a critical concern, particularly when generative AI is employed in decision-making processes. Model fairness is about preventing biases and discriminatory outcomes in AI-generated content or decisions.
Handling Large Datasets
Generative AI models, especially those used in natural language processing and image generation, require extensive datasets for training. Handling these large datasets efficiently is a fundamental technical challenge.
Bridging Skill Gaps in the Workforce for AI Adoption
The rapid advancement of Artificial Intelligence (AI), particularly in the realm of Generative AI, has created a significant demand for specialized skills within the workforce. As organizations increasingly embrace AI technologies, addressing skill gaps becomes crucial for successful AI adoption and utilization.
The Growing Need for AI Expertise
The integration of AI, including Generative AI, into various industries and domains has expanded its potential impact. However, this expansion also highlights the pressing need for individuals with AI expertise. Here are some key factors contributing to the growing demand for AI skills:
- Complexity of AI Technologies: AI technologies are inherently complex, requiring a deep understanding of machine learning algorithms, neural networks, data engineering and domain-specific knowledge.
- Diverse Applications: AI has diverse applications across industries, including healthcare, finance, manufacturing and entertainment. Each domain requires specialized AI expertise to address unique challenges.
- Evolving Landscape: The field of AI is dynamic, with continuous advancements. Keeping up with the latest developments and best practices is a constant endeavor.
- AI in Decision-Making: AI is increasingly used in decision-making processes, making it imperative to have professionals who can interpret, validate, and ensure the ethical use of AI-driven insights.
Challenges in Developing AI Expertise
While the demand for AI expertise is on the rise, there are several challenges organizations face when trying to develop this expertise within their workforce:
- Lack of Educational Resources: Many AI techniques and tools have emerged relatively recently, making it challenging for educational institutions to keep pace.
- Rapid Technological Evolution: Continuous learning and adaptation are essential but can be resource-intensive.
- Interdisciplinary Nature: AI is inherently interdisciplinary, requiring knowledge in mathematics, computer science, data science, and domain-specific areas. Finding individuals with the right combination of skills can be challenging.
- Competition for Talent: The high demand for AI experts has created a competitive job market, making it difficult for organizations to attract and retain top talent.
Strategies to Bridge Skill Gaps
To bridge skill gaps in the workforce and develop AI expertise effectively, organizations can implement the following strategies:
- Invest in Training and Education: Organizations should allocate resources to provide training programs and educational opportunities for their employees. This can include online courses, workshops, and certifications in AI-related fields.
- Encourage Continuous Learning: Encourage employees to stay updated on AI trends and technologies through self-paced learning, attending conferences, and participating in AI communities.
- Cross-Training: Identify individuals within the organization who show an aptitude for AI and offer cross-training opportunities. For example, employees with strong programming skills might be trained in AI techniques.
- Collaborate with Educational Institutions: Establish partnerships with universities and educational institutions to create AI-specific programs or sponsor AI research projects. This not only benefits the organization but also contributes to the broader AI ecosystem.
- Mentorship Programs: Implement mentorship programs where experienced AI professionals guide and mentor less experienced colleagues. This knowledge transfer can accelerate skill development.
- Diversity and Inclusion: Promote diversity in AI roles. Diverse teams bring different perspectives and problem-solving approaches, which can be invaluable in AI development.
- Leverage AI Tools: Utilize AI tools for AI skill development. AI-driven educational platforms and tools can help employees acquire practical AI skills.
- Certification Programs: Support employees in obtaining relevant certifications in AI. These certifications can validate their expertise and boost their confidence in working with AI technologies.
- Career Path Development: Create clear career paths and progression opportunities for employees interested in AI. Show how AI skills can lead to meaningful and rewarding career trajectories within the organization.
- External Partnerships: Collaborate with AI-focused startups, research organizations, or consulting firms to tap into external expertise and gain access to AI talent.
Integrating Generative Artificial Intelligence (AI) tools into existing software development pipelines represents a significant opportunity for innovation and efficiency. However, it also introduces a set of complex integration challenges that organizations must address to ensure a seamless and effective adoption of Generative AI.
The Complexity of Integrating Generative AI
Generative AI tools, with their ability to create content and make predictions, have the potential to revolutionize various aspects of software development. However, their integration into existing workflows can be challenging due to the following complexities:
- Diverse Ecosystem: The Generative AI landscape is vast, with a variety of tools, frameworks, and models available. Choosing the right combination that aligns with the organization’s goals and existing infrastructure is a complex decision.
- Compatibility: Ensuring that Generative AI tools are compatible with existing software stacks, programming languages, and development environments is crucial. Mismatches can lead to technical hurdles and delays.
- Data Integration: Generative AI often requires access to large datasets. Integrating these datasets with existing data sources and databases while maintaining data consistency and security can be intricate.
- Workflow Adaptation: Integrating Generative AI tools often necessitates adjustments to established development workflows. Ensuring that these adjustments are efficient and minimally disruptive is a key consideration.
Key Considerations for Addressing Integration Issues
To successfully navigate integration issues in Generative AI adoption, organizations should focus on the following key considerations:
- Compatibility Assessment: Conduct a comprehensive assessment of the organization’s existing software infrastructure, including programming languages, frameworks, and tools. Identify potential compatibility issues with chosen Generative AI solutions.
- API and SDK Integration: Many Generative AI tools provide APIs (Application Programming Interfaces) or SDKs (Software Development Kits) that facilitate integration. Evaluate the availability and functionality of these integration options and their alignment with your development needs.
- Data Management: Develop data integration strategies that allow for the seamless flow of data between existing systems and Generative AI tools. Ensure data security, privacy, and compliance with relevant regulations during this process.
- Testing and Quality Assurance: Implement robust testing and quality assurance procedures to identify and address integration issues early in the development cycle. Thoroughly test how Generative AI tools interact with existing software components
- Documentation and Training: Provide comprehensive documentation and training for development teams to familiarize them with Generative AI tools and the integration process. This empowers developers to use these tools effectively.
- Workflow Optimization: Redesign development workflows to incorporate Generative AI seamlessly. Identify areas where AI can augment human capabilities and enhance efficiency.
- Version Control: Implement version control mechanisms for AI models and related code to track changes and ensure reproducibility. This is crucial for maintaining consistency and transparency in AI integration.
- Monitoring and Maintenance: Establish continuous monitoring of integrated Generative AI systems to detect issues or anomalies. Develop maintenance procedures to address system updates, model retraining, and evolving integration needs.
- Scalability Planning: Consider scalability requirements as part of the integration strategy. Generative AI solutions may need to scale with growing data volumes and user demands.
- Feedback Loops: Create mechanisms for feedback and improvement based on the performance of Generative AI tools. Continuous improvement is essential for optimizing integration.
- Data Governance: Implement data governance practices to maintain data quality, integrity, and compliance throughout the integration process. Define ownership and responsibility for data-related decisions.
- Cybersecurity and Privacy: Prioritize cybersecurity and data privacy throughout the integration process. Implement measures to protect against potential security vulnerabilities introduced by AI integration.
Generative AI and Augmented Intelligence
Generative Artificial Intelligence (AI) represents a transformative force, but its true power emerges when it collaborates with human intelligence, a concept known as augmented intelligence. This partnership combines the creativity, empathy and complex reasoning of humans with AI’s data-processing capabilities, leading to powerful outcomes.
Augmented intelligence inspires innovation by enhancing creativity in fields like art and design, provides data-driven decision support across industries, boosts efficiency by automating routine tasks, improves customer experiences through chatbots and virtual assistants, and accelerates research and development.
However, ethical considerations, such as addressing bias and ensuring transparency, are essential. Embracing augmented intelligence is not about replacing humans but empowering them to work alongside AI, shaping a future of collaboration and continuous improvement.
Skills of the Future
In the age of augmented intelligence, the workforce must embrace a new set of skills to navigate the evolving landscape effectively. These “skills of the future” blend technical expertise, adaptability and human-centric abilities. They include AI literacy to understand AI’s capabilities, data literacy to work with data effectively, coding skills, critical thinking and problem-solving abilities. Creativity and innovation remain essential, along with emotional intelligence for collaboration. Adaptability and lifelong learning are crucial to keep up with technological advancements, while ethical AI understanding and cybersecurity awareness are necessary for responsible AI use. Proficiency in human-AI interaction design and interdisciplinary knowledge enhances effectiveness in AI-related roles. Skills related to project management, resilience and a global perspective round out the toolkit for success in the age of augmented intelligence, fostering innovation and adaptability in an ever-changing environment.
Human-Centric AI Development
Human-centric AI development is a pivotal concept. It places human values at the heart of AI design, ensuring it aligns seamlessly with human goals and ethics. Key elements of this approach include ethical frameworks, transparency, accountability, fairness and user-centered design.
The significance of human-centric AI lies in addressing ethical concerns, building trust, empowering users, mitigating bias, enhancing user satisfaction, improving decision-making, and ensuring responsible AI deployment. However, challenges like complex decision-making, bias elimination, usability and regulatory compliance exist.
Looking ahead, human-centric AI development will continue to be essential, evolving with human values and needs. It enables us to harness AI’s potential while maintaining ethical foundations and trust, enhancing the human experience in an AI-driven world.
Security in Generative AI
As AI systems become increasingly capable, they can also be exploited for malicious purposes, necessitating a profound understanding of potential AI-based threats and the crucial role of cybersecurity in mitigating them.
Protecting AI Models
Safeguarding AI models is essential to prevent tampering and attacks that could compromise their functionality and output. Here are key considerations for protecting AI models:
- Access Control: Implement strict access controls to limit who can modify or interact with AI models, ensuring that only authorized personnel can make changes.
- Data Security: Secure the data used to train and fine-tune AI models, as data breaches can lead to adversarial attacks or model vulnerabilities.
- Model Encryption: Employ encryption techniques to protect the integrity of the AI model itself, preventing unauthorized alterations.
- Monitoring and Anomaly Detection: Continuously monitor AI models for unusual behavior or performance deviations that may indicate tampering or attacks.
- Regular Updates: Keep AI models and related software up to date with security patches and enhancements to mitigate known vulnerabilities.
- Robust Authentication: Implement robust authentication mechanisms to ensure that only trusted users can access and modify AI models.
As AI systems advance, they can be harnessed for malicious purposes, posing novel cybersecurity challenges. Understanding potential AI-based threats is crucial to staying ahead of emerging risks:
- Adversarial Attacks: Adversarial attacks involve manipulating input data to mislead AI models, causing them to produce incorrect outputs. These attacks can disrupt AI-driven systems, from image recognition to natural language processing.
- Deepfakes: Deepfake technology uses AI to create convincing fake media, such as videos or audio recordings. This poses risks in terms of misinformation, impersonation, and privacy violations.
- AI-Enhanced Cyberattacks: Attackers can use AI to optimize and automate cyberattacks, making them more sophisticated and harder to detect.
The Role of Cybersecurity
Cybersecurity must adapt to the evolving landscape of AI-driven threats. The field of cybersecurity plays a pivotal role in addressing AI-based security challenges:
- AI-Powered Threat Detection: Develop AI-driven threat detection systems capable of identifying and mitigating AI-based attacks and vulnerabilities.
- Ethical Considerations: Explore the ethical implications of AI security, ensuring that cybersecurity measures align with ethical standards and human values.
- Research and Innovation: Invest in research and innovation to stay ahead of emerging threats and develop advanced security measures.
- Interdisciplinary Collaboration: Foster collaboration between AI experts and cybersecurity professionals to create holistic security strategies.
- Regulatory Frameworks: Develop regulatory frameworks that address AI security, promoting responsible AI development and use.
- Public Awareness: Educate the public about AI security risks and best practices to enhance digital literacy and resilience.
AI Regulations Across the Globe
As Artificial Intelligence (AI) transforms industries, countries worldwide are creating their own AI regulations. This diverse global landscape of AI regulations presents opportunities and challenges for international organizations. Regulations cover data privacy, ethics, safety, and accountability.
For global operations, complying with varying regulations, managing data privacy, and adhering to ethical guidelines are complex tasks. International cooperation is emerging to harmonize standards and address common AI governance challenges.
To thrive in this dynamic environment, organizations must remain agile, proactive, and committed to responsible AI practices. Understanding and shaping AI regulations is essential for responsible and sustainable AI deployment worldwide.
Investment and Funding Trends
Generative AI, startups are at the forefront of innovation, but their ambitions require substantial financial support. This funding is essential for various aspects, including research and development, infrastructure, talent acquisition, data procurement and scaling operations.
Identifying funding opportunities, such as venture capital, angel investors, government grants, corporate partnerships, crowdfunding, and incubators, is pivotal. Effective investor relations, including a compelling business plan and pitch deck, play a crucial role in securing funds.
Additionally, once funding is secured, prudent financial management becomes essential for startups to efficiently allocate resources and ensure long-term success in bringing their AI innovations to the forefront of technology.
Additionally, startups operating in the generative AI sector rely on funding to nurture their ideas and scale their innovations. Identifying and capitalizing on funding opportunities is pivotal for their success. For investors seeking to enter the generative AI arena, careful consideration of investment strategies, including risk assessment and portfolio diversification, is essential to navigate this dynamic landscape effectively.
Generative AI has ushered in a new era of possibilities for the software industry. From automating mundane tasks to powering creative endeavors, its impact is profound and far-reaching. As organizations embrace generative AI, they must also navigate the ethical, regulatory, and technical challenges that accompany this transformative technology.
The future holds both promise and responsibility as we continue to harness the potential of generative AI in the ever-evolving landscape of software development.
Generative AI, once the stuff of science fiction, has firmly established itself as a transformative force in the software industry. It has disrupted traditional software development approaches, pushing the boundaries of what is possible and reshaping the way we design, build, and maintain software applications.
Strivemindz leads the way in software development services, offering tailored solutions that leverage the latest AI advancements. Their expert team combines cutting-edge algorithms with industry expertise to drive growth and innovation. Strivemindz stands out for its commitment to quality, security, and ethical AI practices, making it the trusted partner for businesses looking to thrive in an AI-driven world.
How does Generative AI relate to the software industry?
Generative AI is a branch of artificial intelligence that focuses on creating new content, ideas, or solutions. In the software industry, generative AI is transforming various aspects of software development, including code generation, user interface design, data analysis, and decision-making processes.
How can Generative AI enhance software development processes?
Generative AI can enhance software development processes by automating code generation, optimizing software performance and assisting in software maintenance and upgrades. It can also contribute to improving software testing and quality assurance by automating testing, bug detection and enhancing quality assurance practices.
What are the ethical considerations and challenges associated with Generative AI in the software industry?
Generative AI raises ethical concerns such as privacy and security, as well as potential biases in generated software. There is a need to address these challenges and ensure fairness, transparency, and accountability in the development and deployment of generative AI. The human-machine collaboration paradigm also needs careful consideration to ensure the responsible use of generative AI in software development.
What does the future hold for Generative AI in the software industry?
The future of Generative AI in the software industry looks promising. It is expected to continue playing a significant role in shaping software development by enabling even more advanced automation, personalization, and adaptive solutions. As the technology evolves, it is crucial for software professionals to stay updated with the latest developments and embrace the opportunities that generative AI brings.