It’s hard to believe that I have been developing web sites for about a decade now. I still remember my introduction to the web back in high school when the model was “the more the better”, and “if it flashes or moves, it’s cool.” Back then, hover effects were a pro-grade effect, tables were still the best way to lay out a site, and viewing a website on a phone was something that would have quickly been labeled as absurd.
I hope this article can be a help for any web developer out there but particularly those with a kingdom advancing mentality. For the most part, I have been developing sites for Christian missions organizations and churches. That being said, most of the tips are more practical, however some have a little bit more of a spiritual development aspect. Since starting I haven’t been able to get enough of it, and love creating alongside the Creator. Contrary to popular belief, God is actually a pretty incredible programmer, and has spoon fed me a few ingenious solutions to decent sized problems over the past few years. I owe Him everything. So, without further adieu here are “10 Lessons I Have Learned From a Decade of Web Development”.
1. Learn, and continue to learn, all the time
This one is near and dear to my heart, and there’s a reason it’s at the top of the list. As a young student at Purdue University I really didn’t have a grasp on exactly why many of the classes were structured the way they were. As I look back now, I realize exactly why we were given labs without much explanation, problems without foreseeable solutions, and were for the most part expected to teach ourselves the material.
My favorite example of this phenomenon was in a Computer Science “weed-out” class. On the first day of class we were placed at a computer with a black screen and a blinking green cursor. There was an explicit set of to-dos but we weren’t given any tips on how to accomplish the tasks. Nearly half the students didn’t show up for class the next day. It became painfully clear that our professors and teaching assistants were merely there as coaches, continually reminding us to “keep trying, until it works.”
Sitting where I am today, I am grateful for that rigorous, seemingly “life-draining” system that didn’t teach me how to do one or two specific things, and furthermore wasn’t there to feed me the answers. Rather, I was taught how to approach any problem with resolve, knowing that the solution is just a little research, a few late nights, and a couple innovations away.
2. Sharpen your ax, before you try to chop down the tree
“If I had six hours to chop down a tree, I’d spend four hours sharpening my ax.” – Abraham Lincoln
each hour spent preparing is worth several hours of troubleshooting
Something that has definitely proven true is that each hour spent preparing is worth several hours of troubleshooting a system that wasn’t thought through very well. When building new systems, or altering existing ones the preparation time is critical, and should never be rushed. The conceptualization and planning for each project will look different depending on what the project is trying to accomplish. But typically, I try to think about as many problems, difficulties, and pieces of system functionality as I possibly can and work them out before I even type a single line of code.
3. Think Long Term
I have always despised working on projects where it is apparent that the last person did not have long term vision. If, while you are working on something, you have the thought, “This is going to be a nightmare for the next person,” stop what you are doing immediately and take on the nightmare yourself. Don’t be that person!
When it comes to websites, I have realized if you aim for major releases having 4-5 years of solid use, you’ll probably get 2-3 good years before you start to notice the functionality, graphics, and the utility of the site as they begin to break down and show their age. Being able to view sites on mobile devices has been, without doubt, the biggest wrench in any website’s longevity. The last site I made that wasn’t “mobile first” is now nearing 4 years of age.
When creating new systems, it’s always important to try to anticipate future needs and adaptations, and create an environment that allows those to happen organically and without too much disruption.
4. If you can renovate well, you’ll be able to build exceptionally
I once had a master carpenter tell me that if you can renovate something well, building anything from scratch will seem like a cake walk. That phrase has held true in a lot of other aspects of my life far past carpentry, and certainly web development.
What he meant was that often times the hardest task can be taking existing infrastructure and adapting it to fit the current day’s needs. History has shown that this, more often than not, is how the world works anyway. We live in a post-post modern world, where companies are often times built on the backs of other companies that have existing infrastructure. Rarely do web developers get requests for entirely “new” sites, but rather a third, fourth, or fifth generation face lift on an existing site using an existing database of information.
I have learned to take “renovation” jobs with a different type of attitude and grit, fully knowing that they require a far greater amount of expertise and creative innovation.
5. Don’t reinvent the wheel when you don’t have to
This is a big one. Every once in awhile I run into people who just love the idea of a completely custom system. Custom back-end, custom database structure, custom front-end, custom everything. No real good reason, they just like the idea of having a custom solution.
I haven’t ever gone as far as the above example, but I definitely feel like I have broken this rule enough to be an expert on it. I am a compulsive “envelope pusher,” if there is such a term. If it’s been done before, it’s not good enough. To say I have learned my lesson would be an understatement.
There are definitely times to be innovative to try and figure out new and (potentially) better ways to do things, but it almost always comes at a high price of time and complexity. There are a lot of tools already out there. Many of them have been sharpened over years and years of use and abuse, and to be frank, they are probably better than what you’ll come up in the handful of hours you have to dedicate to it. My advice is to make room for some of these tools in your bag of tricks, because they’ll help you do your job better, and give you more time to focus on your clients needs. I have found that fixing, or backtracking where I have pushed too far, was often costly and not very fun. So push wisely when you have to, and know when to utilize the resources that are already out there.
6. Functionality; because if it doesn’t have it, nothing else matters
This one is pretty obvious, but I have to include it. If it doesn’t work, it doesn’t matter how pretty it is.
7. When it comes to God, never settle for Good Enough
We, the church, have the anointing of the Creator; the One who invented creativity. We should be leading the world in creative efforts to make lasting change
Something I noticed growing up in the church was that when it comes to tech, web or anything of the sort, there seems to be a victim mentality. This mentality says that it should settle for “good enough” and the “best” is out of reach and a waste of time. This has never made sense to me. God has a passion for building His church, so why would He not equip us to be leaders in every industry. I am not saying that He is going to bless us with riches to buy the most expensive equipment and the most ostentatious of buildings. But what I am saying is that we, the church, have the anointing of the Creator; the One who invented creativity. We should be leading the world in creative efforts to make lasting change.
So whatever it is you specialize in, especially for the sake of the Kingdom, be bold and know that you have been anointed by the Creator and inventor of everything; He has chosen you. Alongside Him, there is nothing that can’t be done. Keep pressing into your work, and keep asking God for more wisdom, knowledge, and creativity. He will give it to you, and one day you’ll look back and wonder how the rest of the world does anything without Him.
8. Learn to listen to God, and take action when you hear Him
It wasn’t until I was well outside of college that I realized the importance of inviting God the everyday matters of life. Contrary to popular belief, God loves to talk shop.
I have begun to rely on God as “Option A” when it comes to troubleshooting and creative thinking. The funny thing about hearing the voice of God, especially when it comes to things like web development, is that it is often a journey, not an experience. What I mean by that is that it takes time, energy, and a certain amount of focus; it doesn’t just happen… most of the time. In my experience, some of the most incredible solutions God has led me to have been fraught with multiple failed attempts before it. Sometimes God wants us to exhaust all of our options, before plopping the answer in our laps in such an unmistakable way that it’s impossible to deny Him the credit. Some of the most incredible innovations I have ever been a part of have followed this methodology to a tee. In other words, only after completely eliminating myself, my ideas, abilities, and pride from the equation has God presented His solution.
Why does God work this way? God wants us to be the best in our field. He wants us to go through the trials that continually shape and sharpen us into the industry leaders He knows we can be. He knows that the better at something you are, the louder your microphone gets into the people’s lives around you.
9. Live faithfully in the small challenges
I have often heard it said that God won’t trust you with the big stuff, until He knows you can be faithful in the little things. This is absolutely true in everything! As I look back, I can draw lines from one challenge to another and pinpoint some of the bigger obstacles in my life that those small challenges prepared me for.
Sometimes we get so focused on our idea of reaching the top that we forget about the many steps we will need to take just to reach base camp. Keeping your eyes on the summit will always inspire you, but the only thing that will get you there are slow, careful, and faithful steps towards the top.
What I have begun to realize is that God is always preparing me for something one step at a time, and measuring my preparedness by my willingness to accept the challenges He presents to me. The key is being faithful in each step, and trusting that God has a plan for what often doesn’t seem to make sense. It hasn’t always involved my profession, interests, or even my passions. In the past, it was simple things like showing up for class on time at 7:00 AM, not just walking past an overflowing garbage can without taking it out, and other times it was serving my housemates by doing their dishes for them when I knew they had a busy week. In web development, it can be things like taking time to comment your code, cleaning up sloppy code, following coding standards and not creating nightmares for other people.
So often we like to live in the “Big” picture: How many people will I bring to the Lord in my life? Can we really change an entire nation in one generation? What school will I go to? What company will I work for? What will my retirement will look like? Who will I marry? Will my children end up accepting Jesus? By no means are any of these things bad, but unless we are faithful in the small things, many of them may never come to pass. Walking with God is a lot like climbing a mountain. Sometimes we get so focused on our idea of reaching the top that we forget about the many steps we will need to take just to reach base camp. Keeping your eyes on the summit will always inspire you, but the only thing that will get you there are slow, careful, and faithful steps towards the top.
10. Know when to stop
It only seems fitting to shut this thing down with my last point; knowing when to stop. Fortunately and unfortunately, the world of web development changes with each day that goes by. New interface designs, better mobile frameworks, new plugins, slicker CMS functionality etc. The list will forever go on and on, and it will only change with more speed as more people become authors of the web.
It’s important to know when to wrap a project up. Of course there will always be minor adjustments and bug fixes along the way, but major changes and upgrades need to be strongly considered for future major releases.
What I began to realize when I first started web development was that the more I was able to let go of past projects, the more I was able to launch myself into current and future techniques and practices. Letting your projects be done, allows your future projects to thrive all the more.