It seems some people have a knack for always making the right decision. For developers, critical-decision making...
is an essential skill for doing a job well. Understanding the process behind honing decision-making skills and cognitive development are two topics software engineer Sarah Mei will discuss during her O'Reilly Fluent 2014 session, Unpacking Technical Decisions.
Have an appetite for learning
It's a fact that some people pick up on certain concepts faster than others, but that doesn't mean developers are doomed if their genetic makeup doesn't automatically give them an edge. Contrary to popular belief, you can move up the learning curve faster without putting in extensive hours. "Some people talk about this idea that you need 10 thousand hours of a particular activity to get good at it," Mei said, "[But,] it's more related to the types of things you do."
Make sure that your concept is about what your process is.
Children who are constantly asking questions may be honing skills that could make them a prized programmer in the future. Developers who are curious seem to have a leg up, Mei said. Instead of just fixing a bug, for example, he or she may also examine the code base.
Possessing a desire to know more tends to go beyond day-to-day tasks and is supplemented by a hunger for formal guidance, too. Attending optional sessions at conferences and learning a new language merely out of desire are a couple of other characteristics that Mei noted development wizards seem to share.
Spicing things up a bit in terms of what a developer is working on and other interests creates a recipe for success. "If you learn things that are similar to what you are actually trying to learn, you end up learning the main concepts faster," she said.
Know the components of decision-making
Where does technical decision making happen? Mei said the process occurs on several levels. On a lower level, it's the idea of where a certain function should go or what a class should be called. On a medium level, it's more about whether a library should be used or built, for example. Decisions regarding language and frameworks are more high-level decisions.
To put things in better perspective, Mei noted how it's not uncommon for developers to have to choose between two very similar libraries for a specific project. To get an idea of how people are making critical decisions, Mei spoke to colleagues and realized there were four different categories of information they look at when determining which library to use.
More on education
Computing program to boost 'meta skills'
School program aims to fill cyber security skills gap
New computer curriculum enters schools
- Activity -- What is the documentation quality, release date, number of core requests?
- Popularity -- How many other people are using the project; how much support is there?
- Interface -- Can a library do everything needed for the project?
- Familiarity -- Is the code written in an expected way?
Mei said she often sees people make decisions based purely on whether a library can do what they want, rather than taking into account social factors. "The key thing I think is to make sure that your concept is about what your process is," she said. "It's important to realize that most technical decisions are social in nature and depend more heavily on social data than they do on actual technical data."
While there isn't a guaranteed method to make someone the best developer around, following the aforementioned tips can help someone get on track to be a leader on his or her organization's team.
About the author:
Maxine Giza is the associate site editor for SearchSOA.com and can be reached at firstname.lastname@example.org.
Dig Deeper on Service-oriented architecture (SOA)