Thursday, March 24, 2016

5 Skills A Software Developer Should Have To Be A Smart Developer


A software developer in any project plays a very critical role in realizing architecture & design. Current modern architecture world needs modern or smart developers, where they should possess pragmatic skills. Being Aware, Being Social & Being Smart is what world is looking forward to.
Smart Developer is the need of the hour
So, how do we define a smart developer? 5 key areas, which can make a developer a smart developer:

  • Ability to be focused & 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 & sell your idea
o                 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. 
o                 Storytelling is a well-known technique to convey your thoughts in a way anybody can understand.
o                  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
o                 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.
o                 Share your knowledge with team (in the form of blog or webinars). It helps to improve productivity of entire team and also an opportunity to get feedback from others.

  • Ability to keep up with learning
o                 By reading blogs from leading tech companies (Netflix Tech Blog,Oracle OTNAWS Blogs, IBM Emerging Tech BlogDZoneTechGig,TechCrunch),
o                 Through developer wsebsite of tech companies (such as Facebook for DevelopersTwitter DevelopersAmazon AWSFacebook for developers)
o                 Asking questions on question-answer websites (such as QuoraStackoverflow)
o                 Learning through MOOC sites (CourseraUdemy etc.) or Youtube channels
o                 Finally, by following key technology people/companies on social media channels (Twitter, LinkedIn, etc.).

  • Ability to keep a healthy mind, body & 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.

References:
http://www.amazon.com/Soft-Skills-software-developers-manual/dp/1617292397/
http://storyscaping.com/
http://www.techrepublic.com/blog/10-things/10-highly-valued-soft-skills-for-it-pros/


Disclaimer:

All data and information provided on this site is for informational purposes only. This site makes no representations as to accuracy, completeness, correctness, suitability, or validity of any information on this site and will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use. All information is provided on an as-is basis.This is a personal weblog. The opinions expressed here represent my own and not those of my employer or any other organization.