As developers, particularly if you are a specialist, we realize the need to have an open mind to change in development technologies. We are always getting older and more experienced in application development, design and processes, but we wonder "Am I on the right path?". We also know that nothing stays the same, with change being the only thing that is constant.
As developers we can be resistant to change, mostly because of the extra effort it will take us to learn something new. Also, as we do get older and hopefully wiser, we know that change needs to occur, but needs a helping hand to guide it through the rough spots.
What is Your Current Skill Set
Review your resume because it is the foundation you will be building on. If your resume doesn't portray your current skill set then I would update it now.
Development Process Knowledge
From this review define your current strengths and weaknesses in terms of development process:
- Planning
- Designing
- Building
- Testing
- Support
- Resource Management
- Communication
- Mentoring/Training
- Research
As an example, our primary focus may have been on design, testing and support. Maybe our issue is that don't plan very well and usually don't hit our deadlines.
Technologies, Processes and Tools
Also look at your specific strengths and weakness in terms of technologies, development process and tools.
- Languages and Integrated Development Environments
- Project and Task Management
- Build Tools
- Unit testing to functional testing
- Issue Management
- Development Process
- Architecture and Design Patterns
Management vs Technical vs Architect
Getting a Grip will also mean that you decide the Path for honing your skills. Is it for being or becoming a Development Manager, Senior Developer, Systems Architect.
Management of Developers
- People - You should have good people skills to help your developers achieve their goals and to be able to work with developers in need of discipline or a lot of help in achieving what you need them too. You will also need to ability to work with your own manager to help your people. By setting proper expectations and getting the tools and environments they need.
- Resources - Know your resources, people and tool abilities, so that you can best assign resources to projects. Having a broad understanding of all skill sets of resources at your disposal would be a good start. Also knowing which resources are better at new technologies and which resources are better in a support role. This knowledge of your resources should be communicated up as well. You may need to fill in some gaps.
- Research - be able to help your people with there Skill Path by doing research and understanding the current development industry trends. This will help in deciding on technology direction and resource training for the future.
- Planning - Be good at managing tasks and keeping your team on tasks.
Senior Developer and Technical Expert
- Specialization - based on your strengths and research of trends you can choose an area of specialization. In this day in age we need to specialize in our technical fields in order to become an expert. There is just so much to know about a particular technology and takes a lot of training to become the expert in that technology.
- Certifications - If you are choosing a new technology or trend as your path because it is exiting to you and it looks like an appropriate choice, then you should look into certifications. This will help you to know what your technology can do. Research what certifications are available for your particular path.
- Current Position - Also, when making a decision on your path, look at how your current position is in the path you have chosen. If it is way off you have two choices. One, you can speak to your manager about the possibility of focusing on that technology or trend in the future. Or two, you can do the training in hopes of it becoming a need down the road. Try to choose a path that will enhance your current position as much as possible. The grass is not always greener on the other side.
- Look for a Mentor - Try to find someone who is an expert already that would be willing to be a mentor to you. You can look where you work, in your community (find a users group), or an online community. Mentors are important, because they will have some of the real world experience and will be able to help in you in "Getting a Grip Your Development Skill Path".
Application Architect
- Technical Expertise - If you are an architect or plan to become one you will probably be coming from a Senior Developer Position. If not, you should have the abilities of one, see above.
- Generalist - Besides those, you should also be generalist in most of the n-tier technologies, so for the Front-: windows and web development, to web services (SOAP) and database back ends like SQL Server or MySQL.
- Architecture Training and Certifications
- Researcher
Research
As we pull together our strengths and weaknesses it will help us to know our research direction. You may want to do research on basic development trends or you may want to research more on the categories above so that it can be more specific to your needs.
Some Research Done on Technologies & Trends 2011:
Links from research:
7 Exiting Web Development Trends for 2011 - By Siddharth - 01/07/2011
Microsoft Embracing Open Source Drupal 7 CM System - By
Kurt Mackie -01/24/2011
http://wiki.python.org/moin/PythonVsPhp
http://code.google.com/appengine/docs/whatisgoogleappengine.html