In an earlier post, I outlined why I think that there is value in enterprise developer specialization. I concluded that there are four emerging classes of developers: User Facing, Mobile, Business Logic and Data, and Operations.
Business Logic and Data developers concern themselves with server-side applications containing business rules and the database. In the enterprise, they create microservices or monolithic API services; REST is their UI. Java and other JVM languages like Scala, Clojure and Groovy are commonly used, as well as C# and occasionally C++. Strong understanding of the business domain, automated testing (including Test Driven Development), databases both SQL and noSQL data stores, and building scalable applications are required skills.
For the most part, Business Logic and Data developers carry the burden for business logic and cross-functional requirements (XFRs) like scalability, testability, stability and security. They need to provide secure and stable endpoints for the User Facing developers and independently scalable units for the Operations developers to deploy and scale. Good API design and documentation (automated as much as possible) will make working with the other developers easier. The pace of technology change in this space is much slower than the others. Since this is where the “heavy lifting” happens, enterprise organizations tend to be more conservative about the technology choices. Enterprises are spending heavily in this space in the current business cycle. Maintenance of legacy applications are forcing heavy cost burdens on stretched budgets, so replacements are considered a good investment.
In order to succeed as a Business Logic and Data developer, one must dig in on the relevant technologies and understand how they all work together. Sitting between the User Facing and Operations developers, strong teamwork and negotiation skills are needed to keep the work flowing forward. Since these developers model business processes in software, they need to have the ability to ramp-up quickly on new domains and translate business language into software. Finally, constant vigilance in the security space is essential to avoid costly and embarrassing breaches. This is the most traditional role so more senior developers should feel comfortable in this class.
=Kevin