A software developer in any project plays a very critical role in realizing architecture and design. The current modern architecture world needs modern or smart developers, where they should possess pragmatic skills. Being aware, being social, and being smart is what the world is looking for.
So, how do we define a smart developer? There are 5 key areas:
- Ability to be focused and goal oriented: It starts with introspection and planning for your career. You can think of an approach as you take for your code:
Keep it modular - Personal, professional - both aspects need to be well-thought of and your TODOs (like in code), needs to be taken care of on regular basis.
Keep it clean & comply with rules - As we follow coding compliance rules, some rules for yourself and keep your objectives very clean and measurable
Keep it loosely coupled - Like your code, don't couple many objectives together - keep it simple and flexible so that they can vary independently.
Keep it measurable - Like your code performance SLA, keep your objectives SLA based and measure it every fortnightly/monthly/quarterly/yearly as frequent as possible.
- Ability to market and sell your idea
This is the most ignored aspect and the most difficult part. As you grow, your ideas need to be told and to be executed and in order to that, first thing is you need to sell your ideas to people.
Storytelling is a well-known technique to convey your thoughts in a way anybody can understand.
SapientNitro has redefined Storytelling to Storyscaping, which is a new way to tell powerful stories with connected experiences (used in marketing). This can be applied in usual storytelling as well.
- Ability to increase your productivity
A constant effort & thought process to come up with new & improved ways to do things. A simple example — a Jmeter script to do unit-level performance test and reduce cost of quality by detecting any issues earlier.
Share your knowledge with your team (in the form of a blog or webinars). It helps to improve productivity of the entire team and also an opportunity to get feedback from others.
- Ability to keep up with learning
By reading blogs from leading tech companies (Netflix Tech Blog,Oracle OTN, AWS Blogs, IBM Emerging Tech Blog, DZone, TechGig, TechCrunch),
Through developer websites of tech companies (such as Facebook for Developers, Twitter Developers, Amazon AWS)
Asking questions on question-answer websites (such as Quora, Stackoverflow)
Learning through MOOC sites (Coursera, Udemy etc.) or Youtube channels
Finally, by following key technology people/companies on social media channels (Twitter, LinkedIn, etc.).
- Ability to keep a healthy mind, body, and soul
- The most important one as it keeps up the spirit and make sure we have fresh & healthy mind to counter any challenge and come up with innovative ways to do things.
In conclusion, these 5 skill sets can help being more successful in today's demanding culture with dynamic & fast changing technology world.