Truly understanding Dynamic Controls & ViewState
Must read if you are an ASP.NET developer. Read them letter by letter every month, memorize them.
This is the third time I am linking to these articles. Every time I (re)read them I understand something new.
I read Aaron Lerch’s post From Developer to Technical Manager(via Arjan’s World) today. It prompted me to write one myself about what are my thoughts on the topic. Also this post will serve as a Container post for a lot of blogmarks on the topic, which I can refer back in the future.
Most of us are in the growth path because
- Organization pushed us. We see more of this in a market where Demand is significantly more than the supply.
- We wanted to move up the pay scale
- We were passionate about the move and equipped ourselves to make the move
Some of us do not want to grow, It could be because
- We are spiritually enlightened and are happy with what we are now or
- We are afraid of the growth ravine (see figure). This could sometimes be because of bitter experiences in the past.
Image borrowed from (Becoming a Technical Leader, Gerald M Weinberg)
A typical jump to the next level is preceded by a ravine and we are afraid of it.
The brighter we are the more convincing will be excuses we come up with (as to why we do not want to move to the next level).
I highly recommend Who Moved My Cheese? An Amazing Way to Deal with Change in Your Work and in Your Life if this is the case.
If you are on the growth path because "We wanted to move up the pay scale" or "Organization pushed us", It is still not late.
- Become passionate about what you are doing
- Become proactive enough to prepare yourselves for the next Jump (Ravine)
I highly recommend The Alchemist: A Fable About Following Your Dream & Jonathan Livingston Seagull to find & pursue your dream.
Establish a personal vision.
Prakash shared this story with me (from Beyond Code: Learn to Distinguish Yourself in 9 Simple Steps!)
A disciple asked a Master about what books he should read.
The Master asked him ‘What do you want to become?’
Disciple said ‘I don’t know’.
Master replied back "Then it doesn’t matter which books you read"
If you do not have a personal vision you cannot lead others effectively.
We’ll talk about the Technology and Management paths now.
A typical (IT) organization’s Career Path (it is not till CxO, since I don’t really know what it takes to become one) might be like:
Some organizations do not force you to make the decision till Tech Lead / Project Lead level.
While some might allow crossing over between technical and managerial path till some level.
If not very early in our career at some point in time we need to choose one path.
We make this choice based on where our passion lies Working with Technology or People.
Sometimes we fail to see that (may be because Software is all about bits 0 or 1) regardless of which path we choose we need to be aware of the other.
If you are a Technical Lead you still need to convince you development team to follow development practices like TDD, Refactoring. If you are Architect you still need to influence your stakeholders in technology decisions. If you are an Architect you still need to know how to resolve conflicts when your colleagues are involved in a conflict regarding a Design Decision. If you look at Microsoft’s Architect Certification Program competencies, only two of them are related to technology.
"A manager has to maintain the respect of their team, and software developers tend to be an elitist group – if you can’t keep up, good luck." – From Developer to Technical Manager. The key is it is not binary. It is not technology vs people. You need to know both to be a better Leader (Be it technology or be it management). Gerald M Weinberg states in Becoming a Technical Leader: An Organic Problem-Solving Approach, A Leader’s effectiveness score has to be calculated in a multiplicative way. If you score 90% in technology and 10% in people, Your effectiveness as a Leader is 0.9*0.1=0.09 or 9%.
If you are confused about which path to choose later into your career and you have a team to develop, Your indecisiveness is not only having impact on you, it is impacting your team as well. Be a responsible citizen and have a Personal Vision first.
I have heard from a more than a handful of people that it is too difficult to keep up with Technology, so I want to choose a Managerial Path. Please do not assume that Management is easy. If that’s the case I feel sorry for your team members. Prakash shared this article on "Why managers get paid more than programmers??". If you want free money its possible in both the paths. You can be a Technical Lead with little knowledge about Technology and delegate everything to others or you can be a Manager with little interest in People and still survive. A PMP or MCSD can be earned the hard & right way or easy & wrong way. You choose one based on your value system. Please do not choose a Managerial Path because you don’t want to spend time on technology. I hate to work for such managers.
Whatever career path you choose, "Work with Passion". Happy working!
As a technical leader, I value:
- Talented People
- Rapid Feedback
- Individual Relationships
- Facilitation over command and control
- Continuous Improvement
- Frequent Delivery
As a programmer, I value:
- Working Software
- Clean Code
- Rich Communication
- Flexibility over efficiency
- Sustainable Pace
- Failing Fast over hiding errors
As a human being, I value:
- Courage, not cowardice
- Humility, not hubris
- Compassion, not callousness
- Curiosity, not apathy
- Discipline, not carelessness
- Honesty, not deceit
- Patience, not intolerance
Shamelessly stolen from http://blog.objectmentor.com/articles/2007/10/10/statement-of-values