Matt Ammerman is a co-founder and VP of client services for Apprenda.
As an enterprise software developer, I understand where frustrations lie in today's IT organization and different lines of business.
Here are 10 things developers like me want their CIOs to understand:
1. We're the fastest moving part of the company’s IT organization and we want the everyone else to catch up. Under the right conditions, I can develop applications very quickly. Unfortunately, the wrong conditions slow me down. Having to wait for IT to provision dependencies that I might have drastically diminishes my productivity. IT needs to offer services that streamline their processes and let me work at my pace.
2. We can work faster and for less money with the right tools. We can leverage small investments to go a long way. Every developer has a tool belt. I have tools that I prefer to use when developing software. Make an investment in the tools that I use, from text editors to IDEs to platforms and frameworks. I can use these tools to make excellent software that benefits the company.
3. Coordinating disparate teams within IT to roll out a single app is how I spend most of my time. I can typically write an application in 4-6 weeks, sometimes quicker. At that point I should be able to deliver the app to the customer. Unfortunately, I end up spending a great deal more time coordinating the rollout of the application by talking to disparate groups responsible for things like security, networking and servers.
4. Virtualization alone makes IT's life easier, not mine. The software I write is complex. Making infrastructure easier to deploy does not make it easier to write these complex apps, even if the infrastructure is available on demand. That just makes one part of the job go faster. I prefer to tap into existing systems for complex things instead of trying to become an expert in all of them. Providing those systems is how you can make me more productive.
5. I want to know that I am a part of a single organizational vision for software and services. Sometimes I feel like I'm working on apps or pieces of apps that are part of a larger project or vision that I don’t know enough about. If I'm working on a new initiative that is strategically important to the company, let me know that. I want to feel like I’m contributing to something big.
6. Standardization on technologies within our company will make our lives a lot easier. I have my own way of doing things, and each developer here has their own way. This doesn't bode well for our company's software strategy. If we're not all doing things the same way, lots of things are sub-optimized - from testing, to rollout, to overall code quality. If we standardize on systems, we have expectations that are transferrable between our projects.
7. We'd rather be building new apps or modernizing older ones than keeping up legacy apps. I go to user groups and I talk to other developers. They're doing cutting edge things because they have initiatives to build modern apps. For example, I have friends who are building mobile apps. Meanwhile I am maintaining legacy back office software that could be modernized to provide much more value to the company.
8. Our company should be supporting mobile apps. We can build them, but can IT support them? Mobile apps have interesting backend requirements, like scalability and distribution. Any developer can build a single app for a mobile device. It becomes far more complex to build connected apps and the backend services that support them. We need systems in house that make this part easier. With that, we can build mobile apps very quickly.
9. We should run our IT infrastructure the way the best managed service providers in the world do. Our company has more developers and more end users than many companies that develop software for the public. It stands to reason that we would run our datacenters just like, if not better than, the best managed service providers in the world. I should be able to expect this from IT, because I depend on them to host my apps. It should be easier for me to work with our IT than with an external hosting provider.
10. We could build more reliable software if we had the ability to test constantly in a production-like environment. My ability to deliver quality software is only as good as my ability to test that software. I need reliable and accessible infrastructure resources so I can test quickly in order to implement solutions. Introducing differences between my testing environments and the production environments make it more difficult for me to test my software and meet expectations.
Image courtesy of Shutterstock.