Edge of Software Development Engineers
Rana Pratap Singh
Technical Lead @ Yubi | Technical Leadership, Microservice Architecture
Development is an action by having the team, that develops a system also be responsible for operating and supporting that system. Distributing this responsibility to each team, rather than externalizing it, creates direct feedback loops. Each development team owns deployment issues, performance bugs, capacity planning, end-user support, and so on.
Scale team through the tools
Empower them with the tools that they need, development teams can focus on solving problems within their specific product domain. By combining all of these together, team arrives at a stage where a development team, comes with amazing developer productivity tools, and responsible for the software life cycle: design, development, test, deploy, operate, and support.
An SDE must be equipped with these
Developers are expected to be knowledgeable and effective in all areas of the software life cycle. For many new developers, ramping up on areas they haven’t focused on before. Try to attend & run dev bootcamps and other forms of ongoing training to impart knowledge and build up skills. Knowledge is necessary but not sufficient; easy-to-use tools for deployment pipelines and monitoring are also needed for effective ownership.
A developer apply engineering discipline to all areas of the life cycle. They evaluate problems from a developer perspective and ask questions like “how can I automate what is needed to operate this system?” and “what self-service tool will enable my end-user to answer their questions without needing me to be involved?” This helps the team to scale by favouring systems-focused rather than humans-focused thinking.
The “real job” of SDE is to use their software development expertise to solve problems across the full life cycle. A developer thinks and acts like a Software Development Engineer in Test(SDET), and Site Reliability Engineering(SRE). At times they create software that solves business problems, at other times they write test cases for that, and still other times they automate operational aspects of that system.
At last, tooling and automation help the developers to scale expertise, but no tool will solve every problem like productivity and operations space.
Thanks for reading.
Reach me on GitHub at : https://github.com/vickymax or
StackOverFlow at : https://stackoverflow.com/users/3987786/rana-pratap-singh