Engineering Management like a Pro — 101😮
In this era of technology everything from ordering foods to transferring money, everything is available in just single tap, of course thanks to tech.
But building technology solution is not a piece of cake it requires tons of efforts to bring that food ordering or banking app in your smartphone.
Now, Straight to the point in this article talks about good practices and hacks that can help you in building a great software product with maximum productivity and efficiency in less time and cost.
Let’s start from the step zero of product development:-
- It is very important for any product team to understand the idea behind the product and its impact and goal.
- Analyse all the consumer needs and discuss it with the engineering and development team about the feasibility and cost of development, this will make your engineering team aware of what they have to develop, the user segment and other constrains.
Now, Focus on engineering and development segment:-
- Higher level application architecture:- Decide a highly scalable and easy to maintain application architecture for whole application which includes Backend, Frontend, DevOps and other segments if any.
- Technology selection:- Decide the technology and tools we are going to use to develop our application, and make sure that the technology we selected must satisfy the needs and goals of our application.
- Analyse resources:- Have a look at your human resource weather they are enough skilled on your selected technology stack, if not first get your workforce skilled on those technology, so that each team member can decide between good practice and bad practices, don’t start development just by relying on stackoveflow🚀
- Segment level architecture:- Now define micro level architecture of every segment of your application i.e Frontend, Backend, DevOps etc. make sure to discuss with engineering team and give opportunity to all your members to find pros and cons of the decided architecture.
- Application performance from day 1:- No body want to use slow or buggy application, that’s why performance consideration really matters and each and every developer should implement the best optimized feature(where ever possible), because rework can be more costly.
- Define a code standard:- Defining a code standard and design pattern and ask every developer to follow that code standards, doing this can decrease the development time and maintenance effort to a larger extent.
- Decide a success matrix:- Analyzing the result is most important, similarly define a minimum threshold for every feature of your application, it will help you in delivering more perfect features and less bugs.
- Setup a proper test environment:- Analyse all the edge cases and provide a proper testing environments to developers so that they can test each and every feature while developing, this will help in decreasing the number of iterations.
- Test everything from min scale to max scale:- Let’s understand this with help of a example, suppose we are having a table in our application then test it when when zero records and then thousands of records, if the table lags then you need to change the strategy, this will not only help in performance and stability, but also help in improving the UX of application.
- Decide and test deployment architecture:- Deployment is really crucial part of any software product, don’t try to be conservative here because if your deployment infrastructure is not good, then well developed application cannot give good performance and may leave your user frustrated.
This it all about Engineering Management in this article in my upcoming article i will talk about each one of the above points in depth.
Loved it, then show some love by clapping and sharing, In case of any query feel free to reach out to me at : https://surajkumar.info/