I wrote an article called The Baton Road. Baton is my way of conceptualizing human progress and how to have a significant impact.
What is Application Development?
You can be an application developer, which means you’ll solve problems related to a particular domain.
You’ll have to talk to domain experts. And your customers would likely be business users.
The skills needed here are:
- Understanding the domain.
- Designing solutions for the domain.
- Regular interaction with domain experts.
Application development is where code solves real-world problems.
Inventing the previous line: The main challenge is translating domain to code.
Domain Driven Design (DDD) and Domain Specific Languages are concepts that help bridge the gap between domain experts and developers.
Domain Developers need to be product-minded, i.e. they should be able to suggest improvements because they know what’s possible and what is not.
Also, they should be able to know the nuances of the domain.
What is Framework Development?
These are developers that make the tools used by domain developers. These can be - IDE, Libraries, Frameworks, Microservice Chassis, DevOps and platform development.
At a high level, this can be something like Spring Boot framework, Kubernetes platform, developers who build AWS, Java language, PyTorch and inventing Algorithms.
At a company level, there is always a standard code and microservice chassis that can be abstracted away to make everyone else’s code lighter.
Why Framework Development Is Biggest Software Development Baton?
Framework developers abstract away things so that domain/application developers have less to learn.
What framework developers do applies to every domain.
The impact that framework developers have is much bigger than any domain developer.
For example, Spring Native speeds up load time for spring boot applications from 2.8 seconds to .3 seconds. Every developer can adopt a huge performance difference just by adding a maven package.
Similarly: an algorithm like Dikshtra’s Shortest Path has had a much more significant impact than the work of most application developers.
Domain problems lead to the need for new algorithms, which eventually becomes part of a framework when it gets abstracted.
Frameworks like Spring Boot, Platforms like Kubernetes and Cloud Provides like AWS have had a much higher impact than any individual.
- Open Source Software (OSS) - Ankush Choubey
- Baton Road - Ankush Choubey
- Building a Framework on top of Spring Boot by Rubén Pahíno - Spring I/O 2022 Sessions - YouTube
- The Product-Minded Software Engineer - The Pragmatic Engineer
- How to build domain knowledge - YouTube
- Domain Knowledge for Software Engineers - YouTube
- kdeldycke/awesome-falsehood: 😱 Falsehoods Programmers Believe in