Fast Feedback and Rapid Iteration: The New Game Changers for Developers
Let's talk about how modern platforms and programming methods are changing the way legacy developers work.
Join the DZone community and get the full member experience.Join For Free
While low-code programming is designed to speed up the development process and enable collaboration with others inside and outside the business, any modern software development platform is now designed to create opportunities for fast feedback, rapid iterations, and quick system upgrades.
But what does this all mean for legacy programmers migrating to today’s app and app store development platforms? How should legacy developers change their approach to application building to suit the instant feedback, rapid iteration and upgrade cycles that exist in modern app and app store models?
The biggest change is the move away from delivering large, risky upgrades to monolithic systems to adopt a continuous delivery model that is based on a lean set of automated processes from inception to delivery and production.
Whether based around a low-code model or not, these automated processes include key technical practices for version control, deployment, testing, compliance, and short monitored feedback loops, alongside security. This should all be embedded into the development lifecycle from the beginning and organized into autonomous delivery pipelines that rapidly assess the quality of a change before it is made available to a customer. Successful pipelines deliver stability with throughput.
The continuous delivery model means that programmers should no longer be thinking about upgrading an entire system, but should instead recognize that today’s platforms are made up of multiple constituent parts that are loosely coupled – so one part can be upgraded without affecting the rest.
Small Is Beautiful
As a result of this autonomy, developers are being organized into smaller sized delivery teams and combining skills from development and operations to independently deliver features into production. This freedom empowers delivery teams to achieve highly focused goals. Each team works on a separate element of the overall business service independently instead of trying to deliver all constituent parts at once.
The advantage of this approach is that improvements can be delivered quickly – and feedback collected on apps soon after a requirement is identified. The business no longer needs to wait for the IT team to work through a long list of changes as part of a single major upgrade.
Like most people, programmers work best when focused on a single task. If work in progress is limited, there will naturally be greater throughput without risking the integrity or stability of corporate systems.
Of course, this approach works more effectively when system architectures are loosely coupled as a series of microservices, rather than the monolithic centralized systems of the past. Those organizations that have adopted cloud-based platform architectures are already gaining significant benefits from this approach, which is exponential in nature because in theory there is no limit to the number of apps or microservices that can be included.
However, working in small batches in small teams can be more difficult to manage without the right governance model in place. And while agile methodologies embrace experimentation and recognize that a feature may not always be right first time, it pays to do some critical thinking up front to address important questions – such as understanding user demand and whether the planned feature satisfies the most pressing requirements for customers.
For legacy programmers moving into this new era of software development, there are bridges to cross but few barriers. From a cultural and personal development point of view, organizations need to give programmers space to learn and prove themselves in this new environment. If they are heavily skewed towards legacy systems, they may also have to prove the case for a new approach by starting small and bringing a successful proof of concept project to fruition.
For their part, programmers need to accept that they will be increasingly empowered to deliver an entire project from beginning to end, adopting DevOps and agile techniques and embracing the need to build security into new apps and microservices from the start.
Making themselves familiar with tools, terminologies and techniques in the new world of agile and apps is the place to start: being proactive and volunteering for new projects is a possible next step. Honing soft skills such as communication and collaboration will also be important. Programmers are less likely in the new era of app development to be found coding in a back room than they will be working alongside colleagues in the business, co-creating creative solutions to problems.
As more research emerges demonstrating the effectiveness of software developers working in smaller teams, with a single shared goal in mind, expectations from employers will only grow for software professionals to adapt to the new way of working. The most rewarding projects will be found in this new environment, both from a career development and a financial point of view.
Opinions expressed by DZone contributors are their own.