This article does a nice job in explaining what makes a technical leader effective. First, it highlights the attributes of a technical lead:
- Knowledge: At all level of details of the system one is working on. Doing code reviews, reading design documents, and writing code is how one can keep their knowledge levels up to date.
- Speed: To respond quickly, to make decisions swiftly etc. Keep things connected to achieve the same.
- Awareness: Know what is happening in the project.
Then comes a set of activities which will be enabled by the attributes mentioned above:
- Block: block things that you think are wrong (preferably with another right solution)
- Unblock: If somebody is blocked for something, do whatever it takes (including asking other members etc.) to unblock
- Redirect: Be a human 302, an effective one.
- Decide: Make decisions
- Show: Lead by example
There are some important actions mentioned as well:
- Host effective engineering team meetings
- Make sure meetings are brief and to the point as necessary
- Help create project priorities
- Say no to unnecessary features
- Define and follow best practices
- Maintain cross functional relationships
- Stay updated on useful tools
- Coach other engineers
- Review code in detail and provide feedback
- Always be coding
- Shield engineers from management
- Define, identify and explain technical debt
- Explain why decisions are made
- Fight for right decisions
- Load balance work among members
- Have some understanding about project or product’s value and its importance to the company and customer
- Evaluate architectural decisions and their implications
- Ensure test cases are being written
- Improve debuggability of problems
- Generate new ideas and solutions
- Escalate blocking issues
From here(emphasis mine):
I do most of that work with a tool called Ruby on Rails. Ruby on Rails does for web developers what a toilet-installing robot would do for plumbers. (Web development is more like plumbing than any of us, perched in front of two slick monitors, would care to admit.) It makes tasks that used to take months take hours. And the important thing to understand is that I am merely a user of this thing. I didn’t make it. I just read the instruction manual. In fact, I’m especially coveted in the job market because I read the instruction manual particularly carefully. Because I’m assiduous and patient with instruction manuals in general. But that’s all there is to it.
Been studying “Introduction to Computer Science and Programming with Python” on edX. Reached through midterm. Learned/Realized the following:
- Been very bad at testing, in writing extensive unit test cases
- is very lazy in writing tests, thinking about tests