It is very important to identify everyone’s priorities in a software engineering organization. In a sense, priorities are about people and what facts are about things. Because of this, it can be easy to overlook priorities, since they are more difficult to ascertain than simply reading documentation or playing around with the code.
Even if you are making a decision on your own, identifying priorities is a good gut check.
Team lead/Engineering Manager's responsibility
- Business must be successful
- Hire as many competent developers as possible to help the company grow.
- Move engineers easily between projects. Developers can be reassigned to different projects without an excessive ramp up time.
- Projects should succeed at delivering business value.
- Engineers should be happy doing the work they are given.
Software Engineer’s priority
- Business must be successful.
- The team should use a technology that's the best fit for the job.
- Features should be delivered as quickly as possible.
- Features are delivered without bugs fulfilling all requirements.
Production engineer
- Business must be successful.
- It should be simple as well to manage the production environment.
- All applications should be monitored and their logs aggregated easily.
- Ops engineers need to be generalists and be able to support any part of the production environment.
- This ensures that production systems are not significantly affected by vacations, sickness or attritions.
- All rollouts/releases are safe and don't affect customers.
- Customer's spiky traffic is handled with no effect on the customer.
Product manager
- Business must be successful.
- Features should be delivered as quickly as possible.
- Features are delivered without bugs fulfilling all requirements.
QA Engineer
- Business must be successful.
- Features are delivered without bugs fulfilling all requirements.
- Try your best to mimic the workflows customers would do while using the product.
A common theme around all of these is to understand It is everyone’s priority that the business grows.
You might also see there are some common priorities across different roles. Further, there are organizations where software engineers would have to wear multiple hats including each and every one of them listed above. I have certainly done that in my career. In that case, your responsibility can be a set of combinations of the two lists.
I will continue to modify/edit this post as I gain more experience.
0 Comments