Developers are responsible for carrying out the technology vision of the CIO. However, many feel that the CIO does not fully understand the pressures they are up against, and what tools and training they need to succeed at their job and create the most value.
«Above all, developers want to be trusted by their CIOs,» said Brian Rock, senior director of engineering at Applause. «When all is said and done, developers—like all employees—want to be seen as owners of the products they are delivering. Owners, much like consumers, care about quality and customer experience.»
Here are 10 things developers say they wish CIOs knew about their job.
1. Developers need training to innovate
CIOs sometimes mistake the amount of time it takes to implement new technologies, said Daryl Heinz, CEO of data consultancy DF Heinz.
«It does not take 3 years to get to the cloud,» Heinz said. «Most big data vendors are all selling same open source solutions that are available for free online. An investment in training developers to secure and understand open source tools would cut existing data license and storage fees by 80%. This how Fortune 500 companies maintain competitive advantage in the market today, but few of them would want you to know that.»
SEE: Hiring kit: Python developer (Tech Pro Research)
2. CIOs must communicate the mission of a project
CIOs need to clearly communicate the overall mission of a project, and encourage development team managers to reinforce that message, said William Ma, team lead and solution architect at Mendix.
«Often, developers are given a list of requirements to work on and aren’t given the full context of the intended outcome of the project,» Ma said. «This can create issues when the list of requirements is completed, and while it meets the requirements, it may not be the best solution for the intended business purpose and updates need to be made.»
3. Developers aren’t just writing code
Practices like Agile and DevOps have transformed developers’ responsibilities over the past few years, said Michael Dikman, a software team manager at Perfecto.
«We aren’t just writing code anymore,» Dikman said. «A decade ago, that seemed like the case; back then, our role was laser-focused on writing code, pushing it out into the world and then moving on to the next project. Today, however, our job is so much more than that.»
Developers are now creating applications, rather than just features, that they know works for people across a variety of platforms and geographies, Dikman said. «This means we need greater insight into not only our business objectives, but the customer experience, too,» he added. «For our code to work well we need to be able to constantly collect feedback from the customers in real-time, whether that’s via one-by-one user monitoring or synthetic monitoring. Essentially, we now need to act and think more like business owners rather than code slingers.»
4. QA testing isn’t easy
CIOs sometimes forget that developers are also responsible for unit test implementation and documentation following the completion of product development, said Alex Ough, CTO architect at Sungard Availability Services.
«This can be a struggle for developers given their other responsibilities, but it’s important to complete, especially when dealing with microservices that interact heavily with one another,» Ough said. «Performing thorough unit testing can help identify and resolve a minor bug before deployment. If proper testing is not performed, an undetected bug has the potential to cause a lot of wasted time trying to find the root cause later on down the road.»
5. Rethink re-architecting apps
New application architecture best practices are introduced almost regularly, according to Mor Cohen, CTO of Turbonomic and former senior software engineer, from monolithic applications, to three tier applications, to microservices based 12-factor architecture, through full FaaS and serverless architecture.
«While clearly there are benefits to moving to more advanced architectures there is a significant cost associated with it,» Cohen said. «Instead of jumping to the latest trend and setting goals on percentage of apps that need to be re-architected, CIOs should focus on evaluating each application based on the value and effort that re-architecting would provide.»
Sometimes there are less expensive ways to achieve those benefits with less effort, she added.
SEE: Job description: Java developer (Tech Pro Research)
6. Most developers aren’t security experts
Software vulnerabilities can have catastrophic business consequences, but most developers don’t have the security expertise to prevent those vulnerabilities from making it into production—especially when they are releasing software at the speed and scale common in DevOps environments, said Ofer Maor, director of solutions management at Synopsys Software Integrity Group.
«Most developers aren’t security experts and they aren’t intimately familiar with the multitude of ways adversaries might try to exploit their software,» Maor said. «Developers need help from tools, processes and security experts, but in such a way that doesn’t prevent them from doing their job effectively and efficiently.»
This also means providing training to avoid common security pitfalls, and rapid, accurate, security feedback. It also means the CIO must support the decision to «break the build» when a critical security vulnerability is found, Maor said.
7. Deadlines need to be well thought out
As digital transformation initiatives have every enterprise entering a new era of cloud, cybersecurity, and automation, developers can struggle to meet delivery goals—especially when CIOs don’t fully understand the full scope of the challenges ahead, said Malcolm Ross, vice president of product at Appian.
«These are not small initiatives and will fundamentally change how organizations operate, the type of employees they hire and the tools they use to digitally transform the enterprise,» Ross said.
Developers are often measured against seemingly conflicting objectives, Maor said. «Most developers are measured on their ability to meet deadlines, i.e. time-to-market,» Maor said. «They are also expected to produce secure, high-quality code but are not necessarily incentivized to do so at the expense of meeting deadlines. Equipping them the right tools and best practices is important, but also acknowledging the extra effort it requires and balancing it with other KPIs will make it much easier for developers to prioritize software security and quality.»
8. Tools must be chosen from both a technical and business perspective
CIOs sometimes select tools from a business perspective, without first assembling the technical nuts and bolts that impact developers, said Jennifer Reif, a developer relations engineer at Neo4j.
«In a traditional enterprise hierarchy, developers rely on IT leadership support to get the business buy-in and success of solutions,» Reif said. «Developer ideas have far more momentum and success with leadership backing. CIOs should involve developers before giving any (even rough) estimates to an organization’s leadership, as the business will likely hold IT to whatever number is given.»
9. Process changes require C-level buy-in
CIOs need to understand that fundamental process changes, such as moving from waterfall to DevOps, requires support from the entire C-suite, said Randy Bias, vice president for cloud technology and strategy at Juniper Networks.
«[These changes] impact the way dev services are consumed and delivered across the enterprise,» Bias said. «Ignoring this puts developers in an impossible situation where expectations are unmet and they are blamed, because the CIO and his or her C-level counterparts did not plan well.»
10. The developer role is shifting
CIOs need to understand how the developer role is shifting, said Kiran Chitturi, CTO architect at Sungard Availability Services.
«In the past, developers were highly specialized—frontend/backend, one specific language, platform, etc.,» Chitturi said. «However in today’s landscape, a CIO should place more value on hiring ‘full-stack’ developers with a DevOps, CI/CD mindset, who are willing to learn new technologies.»