The Importance Of Leveraging Existing Web Apis
Organizations of all sizes are currently facing similar challenges; they need to become more responsive to rapidly changing technical demands while keeping their technology spend from overtaking their profitability. Leaders of these organizations are looking for ways to increase their velocity of change while maintaining their budget. Often this requires significant payment against existing technical debt which is holding the company back from reaching its goals. To meet this demand companies are adopting agile methodologies and are requiring their development resources to learn a new way of working together with their lines of business to deliver software with increasing velocity.
Digital transformations and agile implementations have become so commonplace that the terms themselves are almost cliché. However, the effects of this transformative technological wave across all companies is not to be overlooked. Rather than diminishing the need for custom software, the move toward microservices, web API enabled applications, and reactive applications is only driving demand higher for skilled development resources. But those resources need new skills and capabilities that did not exist just a few years ago.
Architecting and developing loosely coupled systems based on web API connectivity is the fuel that drives digital transformation for companies today. Developers are coming to understand that in order to support the ever-increasing demand for more rapid implementations of business-critical functionality, enterprise systems need to be composed of mini services that share data and provide services via web technologies. Gartner research identifies this trend and outlines some of the changing landscape in their 2020 Hype Cycle for Application Development. Cloud native architecture is entering the trough of disillusionment while mesh app and service architecture (MESA) is well in the slope of enlightenment, along with mini services and full cycle API management. This type of development requires new thinking. Rather than building all aspects of a complex ystem, developers now need to leverage existing systems and components to combine them in ways that maybe were not intended initially. This is accomplished by leveraging existing web APIs between systems, and building smaller, standalone purpose-built systems. This in turn requires all developers to become in essence full stack developers, working on small, independent systems that run the full gamut of functionality and also expose their capabilities via APIs of which others can take advantage.
"Those leaders, who can drive change, build trust and embrace collaboration will be those who are successful in fuelling the digital transformation that all companies are striving toward today"
To meet this demand some developers are quickly making the shift to low code/no code environments. This shift allows for rapid development of complex systems while still maintaining full control over the implementation details required in the business logic layer. These environments allow developers to focus on the business logic layer that reflects the core competencies of their organization.
Not all low code environments are created equal, which fact may inhibit adoption by some full stack developers. Some low code environments have swung the pendulum too far away from custom development and thus require developers to give up the deep architectural control that they are used to having and upon which they have come to rely. This slows the transition for the overall organization to rapid development and hinders progress toward more agile development. Those low code environments that also allow developers to dive down into the code behind the pre-built components are those that will lead the way in this shift of application development. When done right, low code development allows for both rapid implementation and deep customization that won’t act as a hindrance for upgrades of the environment in the future.
Another key aspect of this fundamental shift is the need for developers to work much closer with the lines of business, and to work together as partners in building solutions. Prior to this shift the developers would leave the definition of requirements squarely on the line of business while they focused solely on implementation of those requirements. The demands for agile development, rapid deployment and overall increased velocity of change have caused a major shift in this ideology. To be effective developers must closely collaborate with their lines of business owners to understand the problem, identify solutions, and implement those solutions quickly. They must work together with their business partners as equals in the organization. This requires not only mutual trust but also a high degree of communication and collaboration. For some developers this is foreign and causes them to have to learn a new skill set. But close collaboration with the line of business is critical to success, and those developers who embrace this will drive the change their organization requires.
Eric Hoffer once famously said: “In times of change, learners inherit the earth, while the learned find themselves beautifully equipped to deal with a world that no longer exists.” Enterprise software development is fundamentally changing. Those leaders who can drive change, build trust and embrace collaboration will be those who are successful in fuelling the digital transformation that all companies are striving toward today. Those developers who adopt low code development and embrace closer collaborative working relationships with their business partners will inherit this new digital world.