Dreaming is good and can take us far, but they need to be somehow realistic.
I would love to work in a role where Security and Best Coding Practices are first class citizens.
My dream job will be developing API’s using the API Design First Approach, where the project requirements would be written in the Gherkin Language to remove the ambiguity that traditionally occurs between developers and business.
Security as a First Class Citizen
The number of data breaches in the recent years has increased significantly, therefore no Software should be developed without having Security baked-in from day one.
Security must be always in the heart of everything we discuss or do during the entire life of the project.
Security must be opt-out, not opt-in.
Best Coding Practices as a First Class Citizen
If software development projects adopt from day one the best coding practices, without taking short-cuts one after the other to quickly deliver the new features, then technical-debt doesn’t kick-in on proportions that will later drastically affect the speed on how new features can be added or how quickly bugs can be found and fixed.
Requirements without Ambiguity
Business and Software Developers have been struggling for decades to properly communicate in a language that both can understand.
The Gherkin Language is the one that will remove ambiguity between Developers and Business, ensuring that both express what they want in a common language, thus removing the ambiguity. The Gherkin language is used by BDD frameworks like Behat or Cucumber.
So, before we write it down in Gherkin, the project must be sketched and discussed. This means that everyone must seat down together to discuss the requirements and use a whiteboard to design flows that must represent an overview of what is expected to be delivered to the client.
As the final result we will have the project written down in the Gherkin language, that both developers and the business understand.
Building API’s using the API Design First Approach.
When using an API Design First Approach the developers will first design and write the specification of the API.
The API specification is then used to write in advance the tests and dummy backends for the frontend teams to work independently of the backend team.
The API Design First Approach allows for developers to detect design flaws earlier in the life-cycle of the project, that is, when they are cheaper to fix, because no lines of code have been written yet.
This is not by far the representation of how I think that everyone should work, neither I went into the detail of an entire project life-cycle, like the trade-off’s involved, the several disciplines and existing methodologies to execute and deliver them, and many other details.
This is just what I have dreamed so far, on this Sunday morning, thus I beg you to not wake me up :)
Disclaimer: What I expressed here is only in my behalf and doesn't represent the company I work for, or any previous one, neither my family, friends, colleagues or anyone else unless I explicitly say so.