Tag: software

  • Survey Surfaces Raft of Ongoing Agile Development Challenges

    Survey Surfaces Raft of Ongoing Agile Development Challenges

    A survey of 788 software development professionals finds 71% are using agile development methodologies within their software development life cycle (SDLC) but only 44% said it is working very well (11%) or somewhat well (33%) in the enterprise.

    Conducted by Digital.ai, the survey identifies end-to-end visibility and traceability from business initiative through deployment as the top opportunity for improvement (44%), followed by an ability to measure cycle time, wait time and bottlenecks (34%), continuous testing (29%) and identification and measurement of technological risk (28%).

    Nearly half (46%) identified too many systems as a primary reason Agile was not scaling, followed by siloed teams (37%), culture clash (34%), inconsistent adoption (30%) and the inability to measure business value (28%).

    Despite these issues, nearly two-thirds (63%) said they have visibility into their Agile pipeline, with 55% claiming they have complete visibility. However, only 36% said DevOps teams currently work together as one team to accelerate innovation and deployment of high-quality and more reliable software. At the same time, only two-thirds (66%) claimed at least 50% of their applications were delivered on time and “with quality.”

    Joyce Tompsett, general manager of the State of Agile project at Digital.ai, said the survey makes it clear many organizations are still trying to strike the right balance when it comes to developing software. For example, the survey finds the top two reasons organizations adopt Agile (tied at 41%) are to accelerate time to market and prioritize delivery and measure customer/business value. Most software development teams are being evaluated both based on velocity (33%) and the value delivered (29%), the survey finds.

    The survey also identifies customer satisfaction (43%), time to delivery (39%) and competitive advantage (34%) as their top priorities for 2024.

    In general, the survey finds that 33% of respondents reported business leaders and executives are actively leading and participating in company-wide agile transformation. However, more (41%) said there was not enough leadership participation. Well over a third (37%) said business teams simply don’t understand what Agile is or what it can do. More than a quarter (27%) said there is not enough training.

    Not surprisingly, the most widely adopted methodology is Scrum (63%) with the Scaled Agile Framework (SAFe) being the most widely used (26%). Another 22% don’t have a mandated framework, while 12% said they have created their own.

    The debate over what precisely constitutes agile development is, of course, ongoing. Each organization tends to adopt the elements of the framework that make the most sense for them, so the actual state of adoption from one organization to the next will vary widely. The one thing that is certain is the more complex the IT environment, the more challenging it can be to embrace agile development.

    And there continues to be lots of room for improvement. If only two-thirds of organizations are delivering half (50%) of their applications on time with an acceptable level of quality, it means there are more projects that are failing to meet that standard than many software development teams might care to admit.

    As more organizations become more dependent on software, however, tolerance for that level of failure will only continue to decline as businesses and leaders lose patience with application development practices that do not live up to expectations.

  • Why Startups are Betting Big on Low-Code/No-Code

    Why Startups are Betting Big on Low-Code/No-Code

    It is exhaustive — from infrastructure to app delivery, from data to applications — to modernize your practices, processes and providers to ensure you have the underlying foundation to take advantage of whatever comes next.

    Two or three years ago, apps created through low-code/no-code platforms were not usually as detailed under the surface as software developed from scratch, yet they sufficed for certain purposes. There was even a clear distinction between software developers and everyone else out of necessity because software development was incredibly difficult to master.

    But now, as we head towards more advanced AI, the SaaS-based low-code/no-code (LCNC) platforms empower businesses to create software exponentially faster and cheaper than a code-based approach.

    The future, therefore, of startups in this changing business landscape becomes even more competitive, taking into account the increasing importance of customer-centric UI modeling, data product development and cutting-edge technologies like machine learning and deep learning.

    High-Value Acceleration

    Applications built through traditional software development can take months or even years to launch. If you create a code-based solution, it’s also easy to blame others and there’s a lack of understanding if it’s not well-documented. “Low-code no-code functionalities can change this dynamic,” says Dr. Ingo Mierswa, an industry-veteran computer scientist and founder of Altair RapidMiner. “The visual workflow describes what it’s doing, so people can understand it, buy into it and take ownership of the results.”

    Visual workflows can be understood and created by more people. “They make it easier to maintain and explain why anything, such as a model’s decision or a bug, has happened because the workflows are documenting themselves,” Mierswa articulates. “It would be hard to create such an explanation if you had to sift through 100,000 lines of code, especially if the code had been changed 17 times in the past two weeks.”

    You need to iterate, you will make mistakes, and you don’t want to waste time with coding non-critical things. “My big advice for all starters is to always think about what’s critical for your product. What’s your IP? What do you need to own and customize? And if coding is not that important for your product, I think going low-code/no-code is always the better way,” Mierswa shares. “It’s more important for startups because you have less resources, less time, more competitive pressure and markets are moving very quickly.”

    Everyone is a Citizen Developer

    In the early 1960s and 1970s, there was a clear distinction between software developers and everyone else out of necessity. Software development was incredibly difficult and time-consuming to learn and master. But now with the onset of low-code/no-code solutions, everyone from custodial teams to C-level executives can create and customize applications that make their jobs more efficient.

    Because no-code/low-code platforms are built on the fundamental premise. “People closer to the problem are better equipped to find simpler and effective solutions,” says Kissflow CEO Suresh Sambandam. “It’s a team sport, and accountability, the most important benefit of LCNC solutions, accelerates development and empowers even more people to collaborate the right way.”A big advantage,” Sambandam says, “is that CIOs of large enterprises can solve the IT talent shortage plaguing the industry today by leveraging expert business users who are ‘citizen developers.’ Many companies can’t avoid struggling to recruit and retain tech talent in a highly competitive market, but low-code/no-code solutions exceedingly help bridge that talent gap by freeing up the bandwidth of existing resources.”

    At the highest level, you always need people who understand the business problems that need to be solved. LCNC functionalities also empower adjacent team members — designers, product managers, data scientists and others — to take part in the different stages of development as the product takes shape.

    Reducing Technical Debt to Overcome Friction

    In an enterprise scenario, most of the core systems like ERP, CRM, SCM in the front end, as well as in the back end, are bought from standard vendors. There is NO differentiation, as all the top enterprises buy from the same vendor. On the other hand, the bulk of differentiation comes from middle-office processes that are unique to an enterprise. Sambandam points out, “Often these are business processes that require heavy domain knowledge that frequently change to adapt to the evolving business conditions and hence business users are better equipped to build these workflow automations.” He highlights that conventional software development models don’t do justice to the agility required by business users and are too complex for them to use. While business users have the domain knowledge, the system would also require integration touch points with other enterprise systems. These integrations often require deeper technical expertise.

    It is essential to create a cultural change within your organization, where it is not just about having the right tools, but also about investing in your employees and skilling them up, commented DevRev Head of Engineering Ahmed Bashir.
    It still is hard work, and there will be friction. “Overcoming friction requires creating a tighter loop across departments and managers, closing the gap between developers and customers,” he underscores. “And LCNC platforms are designed to act as a system of action, surfacing real-time information that connects work with developers, customers and product.”

    This is exactly where platforms like Kissflow, Blaze and Bubble, which support both no-code and low-code use cases come in and let business users handle the domain portion of the application (90%) and IT teams configure the integration points (10%). This greatly reduces friction between IT and business users, especially when it comes to solutions for long-tail internal workflows.

    Long-tail applications include things like approval management, creative requests, incident management, customer onboarding and IT helpdesk. “We looked at the space and decided to tackle this,” Sambandam shares.

    Long-tail apps and processes are often viewed by IT as a drain on time/resources they don’t have, yet it’s a lack of internal workflow processes automation that gum up digital transformation. “We found as we scaled the company that when you empower business users to quickly build and augment workflows that directly impact their day-to-day by giving them the tools to do so without advanced technical knowledge, they are motivated to make it happen,” he affirmed.

    Security is a Business Enabler

    The main objective of security is to protect organizations and people. Organizations prepare for potential security threats by implementing policies and ensuring they have the tools to mitigate and quickly respond to outside threats.

    However many low-code/no-code adopters do not have security expertise on their team so they rely on the LCNC platform to offer security features readily available for the apps they build. Because creating applications with custom code can lead to a variety of security issues. And such applications are difficult to secure, with the majority of tested applications containing one or more session management vulnerabilities, and others with input validation errors.

    Getting a firm handle on security means considering what to do. That sounds simple enough, but it’s surprising how many startups make blunders because of poor planning and shoddy strategies. “We’ve been looking at a trend. Companies want enterprise-level security like audit logs, SSO and other data security requirements for their apps,” commented Nanxi Liu, Co-CEO of Blaze. “Seeing this strong trend, we worked to design our platform with enterprise security and scalability in mind, since most early-stage companies do not have security expertise on their team and rely on platforms to offer advanced security features for the applications they build.”

    Make, however, no mistake — there is no best security but the best practices. “That’s part of why,” Liu says, “compliance-driven businesses like financial services and healthcare companies that require the highest level of security to build their customer portals, consider enterprise-grade no-code and low-code platforms that provide the required level of security.”

    With low-code/no-code platforms, your applications are secure with industry-standard protocols, data protection practices, and features to block unauthorized access.

    To underscore: LCNC allows non-technical people to build complex apps without needing to be familiar with traditional software logic. You don’t need computational thinking because visual components in low-code/no-code platforms automatically have the logic built-in. “And now with the mind-bending AI breakthroughs,” Liu remarks, “users can tell AI in natural language the workflow or feature they need and see it instantly created.”

  • Five Great DevOps Job Opportunities

    Five Great DevOps Job Opportunities

    devopsy.kinsta.cloud is now providing a weekly DevOps jobs report through which opportunities for DevOps professionals will be highlighted to better serve our audience.

    Our goal in these challenging economic times is to make it easier for DevOps professionals to advance their careers.

    Of course, the pool of available DevOps talent is still relatively constrained, so when one DevOps professional takes on a new role it tends to create an opportunity for others.

    The five job postings shared this week are selected based on the company looking to hire, the vertical industry segment and, naturally, the pay scale being offered.

    We’re also committed to providing additional insights into the state of the DevOps job market. In the meantime, for your consideration:

    Indeed.com

    Intel
    Chandler, Arizona
    Cloud Software DevOps Engineer
    $156,410 to $250,410

    LinkedIn

    General Dynamics Information Technology
    Remote
    Cloud FinOps Analyst
    $122,336 to $204,360

    CareerBuilder.com

    Infoway Software
    Doral, Florida
    DevOps Lead
    $120,000 to $190,000

    SimplyHired

    Peraton
    Herndon, Virginia
    DevOps Systems Engineer
    $112,000 to $179,000

    Dice.com

    University of Virginia
    Charlottesville, Virginia
    DevOps Developer
    $95,000 to $125,000

  • Will ChatGPT Replace Human Software Developers? Probably Not

    Will ChatGPT Replace Human Software Developers? Probably Not

    Since the release of ChatGPT, there has been a great deal of hype around generative AI and how companies can leverage it to cut costs and democratize software and application development. Naturally, with discussions of cost-cutting and democratization come whispers about what will happen to software developers.

    This is a real and valid concern, but software developers’ skills, expertise and creativity are still very much needed.

    While generative AI and AI code generation tools like ChatGPT have shown some promise and potential benefits, they are still in their infancy—like many other innovative technological advancements. We also don’t know what scenarios they may present down the road or their true abilities when the technology matures. For instance, how will it integrate with other technologies? We don’t know what will happen when a ChatGPT-generated line of code breaks or needs to be changed. We don’t know if it can provide a novel solution to a unique problem or what security threats it will present.

    Given these unknowns, technology executives should think twice about replacing experienced and creative technology talent, such as software developers, with AI code generators.

    Will ChatGPT create novel code to solve a unique problem never encountered before? Probably not.

    A Tale as Old as Time (Or at Least a Decade)

    The technology industry has been searching for and developing new ways to make certain software development tasks much easier and more streamlined for years. One example of this is low-code/no-code.

    The notion of simplifying application development and replacing software developers with laypeople (citizen developers) has been around for more than a decade now, as low-code and no-code solutions have grown more popular. These solutions have promised that companies don’t need technical talent to get their software and app projects off the ground.

    However, if you look at the impact of these solutions today, their use can result in large amounts of technical debt and almost always require the skill of experienced software developers.

    The reason? Building complex software and applications is extremely difficult; it’s an art.

    Low-code and no-code solutions have their rightful place and can make things easier if a company is looking to launch a simple app or static web page. These solutions can increase the pace of development and time-to-market and enable everyday people without any development skills to facilitate them. However, they are not actually a complete solution and often overlook aspects of development that a human software developer would typically address. Without a skilled expert involved, low-code/no-code platforms often can’t solve a unique problem a company has.

    So, how does this relate to AI code generators like ChatGPT? Here’s how.

    A Similar Situation—With One Key Difference

    When thinking about their place in the development process, AI code generators are not that different from low-code or no-code solutions. The thinking is that they will also enable non-technical individuals to create software and applications with ease.

    Yet, there is one key difference—they promise expertise, too. But is the expertise coming from the AI code generator or the person piloting it? The answer is simple; it is not from the code generator.

    There have been examples of companies and individuals that have tried using ChatGPT to build code, and they have appeared to be successful. However, without the input of the individuals using it, it never would have been able to create the code on its own unprompted.

    This means that the expertise of skilled, human software developers is still very much needed, especially when building intricate software and apps that require complex functionality such as optical character recognition (OCR), internet-of-things (IoT) connectivity and more.

    A Future With Software Developers

    Because of the expertise still required to create elaborate and innovative software and applications, AI code generators will not replace software developers anytime soon, if ever.

    The technology used in these tools is still in its infancy, presenting many lingering questions and potential challenges. We will see this confirmed by the trials and tribulations experienced by the few companies and executives attempting to replace software development teams with tools such as ChatGPT.

    Knowing AI code generators follow a similar path as low-code and now-code solutions, companies and executives should use them as developer enablement tools. These tools should complement the work of software developers by empowering them to focus on the complex tasks software and apps today require.

  • 4 Salesforce DevOps Adoption Challenges

    4 Salesforce DevOps Adoption Challenges

    In today’s ultra-competitive digital landscape, adopting DevOps practices has become crucial for organizations looking to accelerate their development processes and enhance software delivery. Salesforce is no exception to this trend.

    Salesforce DevOps essentially refers to applying DevOps principles and practices to the development and deployment of applications and customizations on the Salesforce platform. When done right, it integrates development and operations teams and offers numerous benefits, including better collaboration, faster release cycles and improved code quality.

    Furthermore, Salesforce DevOps empowers organizations to adapt rapidly to changing business requirements, respond to complex customer needs faster and improve their experience via process automation (for instance, streamlining the product configuration and price quote generation process with CPQ automation) and drive innovation more efficiently on the Salesforce platform.

    However, while the advantages of Salesforce DevOps are evident, its adoption comes with its fair share of challenges. In this article, we will dive into the four core hurdles that organizations face when embracing Salesforce DevOps. Moreover, we will provide actionable tips to tackle these challenges head-on, helping you ensure a successful Salesforce DevOps adoption journey.

    1. Siloed Development and Operations Teams

    DevOps isn’t just about technology and automation; it is also about people. In the realm of Salesforce DevOps, one of the most significant challenges that organizations encounter is the existence of siloed development and operations teams. Traditionally, these two teams have operated independently, often with minimal interaction, leading to fragmented workflows and hindered collaboration.

    This disconnect between dev and ops can impede the delivery of high-quality Salesforce applications and features. The lack of timely communication and coordination can result in misaligned priorities, delays in deployment, and an increased risk of errors during the release process.

    Moreover, siloed teams can stifle innovation and limit the potential for continuous improvement. The development team may create features that do not align with the operational requirements or may not be feasible to deploy efficiently. On the other hand, the operations team might struggle to understand the intricacies of the development process, hindering their ability to provide valuable insights or feedback.

    To overcome the challenge of siloed development and operations teams in Salesforce DevOps, organizations must foster a culture of collaboration and shared responsibility. Here’s how:

    • Promote cross-functional collaboration: Encourage regular meetings and knowledge-sharing sessions between development and operations teams. Foster an environment where team members feel comfortable discussing challenges, sharing insights, and jointly working towards solutions.
    • Break down communication barriers: Utilize collaboration tools such as Slack and Asana that facilitate seamless communication and information sharing between teams. This can help reduce misunderstandings and keep everyone informed.
    • Align incentives and goals: Create shared objectives and metrics that encourage both development and operations teams to work together towards common goals such as improving product-market fit or feature adoption. Recognize and reward collaborative efforts to reinforce the importance of cross-functional teamwork.

    2. Version Control and Source Code Management

    Effective version control and source code management are vital pillars of successful Salesforce DevOps practices. However, many organizations with layered dev teams find it tricky, leading to complexities, inefficiencies, and potential risks in their development processes.

    Version control is essential for tracking changes to Salesforce customizations and configurations over time. Without proper versioning, development teams may find it difficult to collaborate, understand changes made by others, or revert to previous states in case of issues. Additionally, source code management allows for better organization and control of codebases, ensuring consistent and reliable deployments.

    To tackle the challenges related to version control and source code management in Salesforce DevOps, teams should implement best practices and use appropriate tools. Here’s how:

    • Adopt a version control system: Implement a robust version control system, such as Git, specifically tailored for Salesforce projects. Git allows teams to track changes, manage branches, and collaborate efficiently.
    • Establish clear branching strategies: Define clear and consistent branching strategies for different development scenarios, such as feature development, bug fixes, and releases. This helps manage parallel development efforts and ensures smooth collaboration.
    • Encourage code reviews and collaboration: Conduct regular code reviews to ensure code quality, identify potential issues, and ensure compliance with best practices. Encouraging collaboration during code reviews fosters knowledge sharing and enhances the overall development process.
    • Automate deployments and rollbacks: Integrate version control with your Continuous Integration and Continuous Deployment (CI/CD) pipeline to automate deployments. This reduces the risk of manual errors and facilitates easy rollbacks in case of issues.
    • Educate and train development teams: Provide training on version control best practices and tools to ensure all team members are familiar with the processes and benefits of using version control effectively.

    3. Continuous Integration and Deployment

    Continuous Integration and Deployment (CI/CD) are core principles in the DevOps methodology that aim to automate and streamline the software delivery process. However, implementing effective CI/CD practices for Salesforce development can be a daunting task for large-scale enterprise companies, presenting them with various challenges along the way.

    One of the primary challenges in CI/CD for Salesforce is the complexity of customizations and configurations. Salesforce projects often involve multiple components, such as Apex classes, triggers, Visualforce pages, and metadata configurations. Coordinating the integration and deployment of these components in a seamless and automated manner can be intricate, leading to potential bottlenecks and delays.

    Moreover, organizations may encounter difficulties in ensuring the stability and reliability of their CI/CD pipelines. Incomplete or inaccurate tests, improper versioning, and inadequate rollback mechanisms can result in the introduction of bugs or errors into the production environment.

    Here are a few ways to combat this challenge:

    • Automate the build and deployment process: Use Salesforce-specific CI/CD tools that automate the build and deployment process, reducing manual intervention and ensuring consistency in deployments.
    • Implement comprehensive testing: Incorporate automated testing into the CI/CD pipeline to validate changes and ensure code quality. This includes unit tests, integration tests and regression tests to detect issues early in the development life cycle.
    • Use sandboxes for testing and staging: Utilize Salesforce sandboxes to test changes in environments that mimic the production setup. This allows teams to identify and address issues before deploying to the production org.
    • Establish version control for metadata: Use version control for Salesforce metadata to keep track of changes and enable seamless collaboration among developers working on different features.
    • Monitor and optimize pipeline performance: Continuously monitor the CI/CD pipeline to identify areas of improvement and optimize the deployment process for speed and efficiency.

    4. Test Automation and Code Quality

    Test automation and code quality are critical aspects of Salesforce DevOps that directly impact the reliability and performance of applications. However, organizations often have a tough time when it comes to implementing comprehensive test automation and ensuring consistently high code quality in their Salesforce projects.

    Manual testing can be time-consuming, error-prone and insufficient to keep up with the speed of Agile and DevOps development practices. The lack of automated testing can lead to delays in identifying bugs, lower confidence in code changes and a higher risk of regression issues when deploying new features.

    Furthermore, maintaining code quality becomes challenging as Salesforce projects grow in size and complexity. Without adequate quality control measures, development teams may introduce code that does not adhere to best practices, leading to suboptimal performance, security vulnerabilities and increased technical debt.

    Here are a few tips to tackle this challenge:

    • Implement automated testing frameworks: Utilize Salesforce’s built-in testing capabilities, such as Apex unit tests and Lightning Web Component (LWC) tests, to automate the validation of code changes and functionalities.
    • Adopt test automation tools: Consider leveraging third-party test automation tools that can extend and enhance your testing capabilities, such as Selenium for end-to-end testing of Salesforce applications.
    • Create a comprehensive test suite: Develop a comprehensive suite of test cases that cover different aspects of your Salesforce application, including positive and negative scenarios, boundary testing, and integration testing.
    • Integrate testing into CI/CD pipelines: Incorporate automated testing into your CI/CD pipeline to ensure that code changes are automatically tested before being deployed to production.
    • Conduct regular code reviews: As mentioned earlier, establish a culture of code reviews to assess code quality, identify potential issues and ensure adherence to coding standards and best practices.
    • Invest in code analysis tools: Use code analysis tools such as SonarQube and CodeScan to identify potential bugs, security vulnerabilities and maintainability issues in your Salesforce codebase.

    Wrapping up

    Embracing Salesforce DevOps offers numerous benefits for organizations, including increased collaboration, faster delivery cycles, and improved software quality.

    From breaking down silos between development and operations teams to establishing robust version control and source code management practices, addressing CI/CD complexities, implementing test automation, and prioritizing code quality, a lot goes into driving successful Salesforce DevOps adoption. Armed with the solutions, it’s time to implement them, adapt them to your organization’s unique needs, and embark on a journey of unmatched quality and collaboration in your Salesforce projects.