Custom Feature DevelopmentJuly 12, 2017
So this is my inaugural post for the new blog. Personally, I’ve never really blogged before so you’ll have to excuse any faux pas or overall embarrassing improper use of grammar. You’ll also notice that I enjoy over utilizing parenthetical expressions — also most likely incorrectly (here this is just to prove my point).
Getting to blogging specifically about development — I really only wanted to write development haikus (which I’m still pursuing), but I was also asked to write a post about “Custom Feature Development the LLT Way.” I spent a few days thinking about it, and then another few days trying to boil my thoughts down to a haiku, but couldn’t quite fit it into 17 syllables. (Did you know that haikus are not measured by syllables but rather “moras,” which is a “sound unit” but not identical to a syllable? I’m going to stick with the syllable count because I’m definitely not a poet.)
(You thought I was kidding about my abuse of parenthetical expressions.)
So here it is — Custom Feature Development!
The development community is one of the most unique and incredible one’s I have ever encountered (speaking of which, if you are a developer hoping that I’m going to get to a tidbit you can use, I’m sorry to have wasted this much of your time already as there will be no code in this post). There are so many resources available and intelligent people willing to share their insights there is never a shortage of learning opportunities. As someone that enjoys learning that is one of my favorite parts of my job.
For feature development specifically it’s kind of a weird bag. Most plugins, polyfills, extensions, etc were created as a result of a specific problem or need. Not often do I run into an issue that is completely unique, nor do I run into one that is completely “normal.” So I’m either stuck utilizing something else and trying to retrofit it to my needs or create my own. (I realize that I am speaking in hypotheticals.)
I have a need now.
This problem I can address
through diligent work.
The following might be more geared towards developers (specifically newer developers), but will provide some insights more generally about custom feature development.
The jumping off point is to trust yourself as a developer. Trust that you understand the issue and that you can come up with a solution. I’ve found that pursuing a custom solution often does not cost me much time because I know where everything is and what it does. I don’t have to hack and slash through someone else’s code. I don’t have to pare anything down for performance. It is exactly what I need it to be.
There are several benefits to this approach:
1. It feels good
Have you ever created something? That trust I mentioned earlier as a developer is not always easy to come by. It can be extremely cathartic to see something that I developed custom for a client helping achieve their online marketing needs.
2. Build your code base
Create it, use it, and save it for a rainy day. You never know if and/or when you might need something similar. Most likely you will encounter a somewhat comparable problem again in the future. Maybe your code needs to be extended or slightly modified, but it is often much easier to modify your own code than someone else’s (provided you leave detailed comments and structure your code well, otherwise, good luck).
Again, one of my favorite parts about the development community is how collaborative it is. Assuming your feature is not proprietary in nature, share it with the community! You might end up helping someone that is less comfortable with creating a custom solution. Or if you are potentially looking for a career in development, you can provide these snippets as examples of your work.
I have a hard time
thinking of myself
as an expert dev.
Do not wait until you consider yourself an expert developer to become more involved. Depending on your disposition it may never happen. (The actual act of consideration, I’m not making any suppositions as to what type of developer you are or will become.) I know I am definitely guilty of under-sharing within the community. I hope through the process of contributing to this blog I will create more opportunities for myself to update my github, as well as provide tangible examples of work here and elsewhere.