Efficiency means different things to different people. An incomplete list of them (note that these are not mutually exclusive):
a) finishing tasks quickly ("velocity")
b) pushing more code
c) maximizing the work not done
d) reducing rework
e) creating maintainable, reusable code
f) being more productive than other team members
g) authoring new projects / components
Are each one of them the ultimate goal? Let's see:
a) Customers do not buy kanban boards, they buy quality products. A board with finished tasks looks nice, but is your new code production ready? does the result actually make sense?
b) Customers do not buy kSLOCs, they buy featured products. Who will be paying for the maintenance of the new lines of code?
c) Neglecting tasks that increase your productivity leads to "maximizing the work done".
d) Trying to anticipate future requirements can make the code base unnecessarily complex. Implementation is not a substitute for proper requirement analysis.
e) Reusability should not come at the expense of maintainability.
f) Individual productivity should not come at the cost of collective productivity.
g) Before you start a project: can you solve that problem using an existing, robust solution within your budget?
And by budget, remember that that internal projects are not free. They are paid with development time. Paying 10k for a license is cheaper than paying a full time developer.
And actually, you may need more than one developer, for redundancy (bus factor), making your internal project even more expensive.
a) finishing tasks quickly ("velocity")
b) pushing more code
c) maximizing the work not done
d) reducing rework
e) creating maintainable, reusable code
f) being more productive than other team members
g) authoring new projects / components
Are each one of them the ultimate goal? Let's see:
a) Customers do not buy kanban boards, they buy quality products. A board with finished tasks looks nice, but is your new code production ready? does the result actually make sense?
b) Customers do not buy kSLOCs, they buy featured products. Who will be paying for the maintenance of the new lines of code?
c) Neglecting tasks that increase your productivity leads to "maximizing the work done".
d) Trying to anticipate future requirements can make the code base unnecessarily complex. Implementation is not a substitute for proper requirement analysis.
e) Reusability should not come at the expense of maintainability.
f) Individual productivity should not come at the cost of collective productivity.
g) Before you start a project: can you solve that problem using an existing, robust solution within your budget?
And by budget, remember that that internal projects are not free. They are paid with development time. Paying 10k for a license is cheaper than paying a full time developer.
And actually, you may need more than one developer, for redundancy (bus factor), making your internal project even more expensive.