As the evolution of technology continues unabated, development teams face a relentless demand to stay competitive. The opportunities for apps to serve user needs in new and diverse ways puts additional pressure on developers to ensure that their work remains relevant. A constant pace of mobile updates, advancement of new solutions, and gaps in programming skills can turn a development career into a never-ending treadmill run.
I spoke with Mike Hughes, principal platform evangelist at OutSystems, a software development company, to discuss some proactive strategies for development teams to consider. We came up with the following suggestions.
SEE: Software automation policy guidelines (Tech Pro Research)
Addressing coding challenges
Hughes said that "for developers, the pressure is on to deliver results and apps to the business side of their organizations as demands from consumers and other internal stakeholders accelerate the need for digital transformation." The business, of course, depends on marketable apps that can gain the best possible foothold in the industry.
Data makes things tricky, however. Information is constantly being generated and the number of platforms that are required to simultaneously manage it keep multiplying. Addressing the problem of consistent and reliable access to information adds to the complexity. It's important to map out where the data is stored, how it should be accessed and what changes are likely to come down the road (relocating from in-house storage to cloud storage, for example) to be as responsive as possible.
Burnout can be a factor as well. Developers are expected to innovate and provide new solutions yet are still expected to handle day-to-day tasks such as updating and maintaining existing software, systems, and apps. This makes them feel overworked and they might fear they are losing their creative edge. Thus, they struggle to deliver and remain relevant. Sufficient staffing levels, pair programming to help facilitate coding and reduce errors, and departmental outings to build camaraderie and morale can all be helpful solutions here.
Communication is a critical part of building software. While some organizations fail to meet productively, meetings encourage brainstorming and create a groundswell for innovation. Done correctly, frequent meetings encourage more communication, reduce silos, and bring business and IT sides of the organization together. Often, a daily morning meeting to make sure everything is efficient is all that's necessary.
Another challenge developers face is the fact that the development process remains largely manual, and many developers are still writing code by hand. Doing things manually is not a sustainable or scalable solution for the long haul. Instead, developers need a way to produce code that is fast, can be changed easily, and can adapt to demands of consumers seamlessly.
Reusable code, such as from a git repository, can be a key element to rapid and comprehensive app deployment. Low-code development platforms can also meet that need. Using a visual integrated development environment can allow developers to produce an app quickly and edit or update it even more rapidly. This can reduce the time it takes to bring apps to market from months to weeks, alleviates programming backlogs, and offers developers more time to focus on innovation and creativity.
SEE: How to build a successful developer career (free TechRepublic PDF)
Prioritization of work
Prioritization of work depends on coding styles. The diversity of agile development can offer an array of techniques.
One popular method of prioritizing work is the Weighted Shortest Job First technique, whereby the team makes a list of its jobs, assigns a weight or value to each job, and then divides it by the length of the job to determine a relative ranking. This can facilitate delivering value and trims out the unnecessary elements, though priorities should be analyzed and adjusted on a constant basis. The ultimate goal of this technique is to identify the task that has the most value but takes a shorter amount of time to build out shorter milestones.
Low-code platforms enable this type of methodology. Weighted Shortest Job First is particularly useful for development teams using a low-code platform that have a long list of applications and software running the gamut from interdepartmental or operations apps to legacy system replacement or modernization.
Optimization of creativity
Creativity must be a component of the company culture to drive innovation and anticipate future developments. Everyone from all sides and levels of the business should encourage their development teams to be creative. Time should be specifically allotted for employees to research ideas, experiment with concepts, and discuss potential options with a peer community.
Armed with the support to innovate—and the time to do so―developers feel empowered and are likely to develop creative solutions to pressing business problems that can even reduce costs. Technology can fuel that empowerment. For example, when a developer is creating an app using a low-code platform, they can test out new designs and features quickly. This aligns with the agile principle of failing quickly and cheaply.
SEE: IT leader's guide to low-code development (Tech Pro Research)
Addressing the skills gap
A low-code platform offers drag-and-drop visual development, which can reduce the learning curve and assist new developers in getting up to speed in a short period of time. The same applies for a centralized code repository that makes it easy to reuse known workable code via a copy-and-paste format.
Organizations don't have to worry about the shortage of full-stack "super developers" using these methods because low-code or reusable code enables all kinds of developers with different skills and training to build a web app, a mobile app, or apps related to current hot trends, such as Alexa, Siri, and bots. If a DevOps shortage is an issue, it can be addressed by the deployment of an app with the push of a button.
This doesn't have to mean that developers can limit their careers by taking shortcuts and reducing their knowledge as to how code works—just the opposite. By utilizing this method they can immediately develop a hands-on approach that helps them see results and continue to build their knowledge base as formulated upon known workable results.
Building a collaborative approach
Teams that are co-located can have scheduled or impromptu meetings and discussions to share ideas, update each other on project progress, and communicate to resolve issues.
Distributed teams are likely to collaborate using a combination of tools, such as GitHub and project management solutions like Jira. They may even have virtual scrum meetings.
Low-code platforms offer effective collaboration in the development environment. Teams can build apps that consist of multiple modules, which makes team collaboration easy, even for large development factories. The modular system splits the app into components that can be assigned to different developers. However, if it is necessary, teams can still collaborate on the same module for better efficiency.
What tactics have you used to help your dev teams stay competitive? Share your thoughts and advice with fellow TechRepublic members.
- Exclusive: Industry-first AI low-code platform helps you build apps without a developer (ZDNet)
- Novel Bits founder: How developers can turn IoT from a hobby into a career (TechRepublic)
- The 7 most popular programming languages for AR and VR developers (TechRepublic)
- Why 78% of organizations fail to get DevOps right (TechRepublic)
- How to get developer relations right for your company (TechRepublic)
Scott Matteson is a senior systems administrator and freelance technical writer who also performs consulting work for small organizations. He resides in the Greater Boston area with his wife and three children.