While I was still in my first web position over a decade ago, I was referred by a colleague for a freelance website project. The client wanted a website to sell all-inclusive vacation packages on his personal investment properties.
I met with him and he told me what he wanted. I went home and mocked up a cool design that was unique. He approved it, trusting my, and handed over the basic content structure. I went to work hand coding a CSS-powered layout a little ahead of its time. I knew that this was a jump in the water, and I was not afraid to learn from the experience. Learn, I did.
After a few days, I was stumped. I could not seem to find a browser compatible way to accomplish what I designed, but I didn't look for another option. I was pretty sure that as a developer I should be able to figure out anything and that it was purely lack of knowledge which had me stuck. I was tired of seeing the same old layouts designed only to be able to build them faster, and was determined to make this work and become a better developer in the meantime. After all, my designs shouldn’t be held back simply due to my lack of knowledge; I would figure it out.
At this time, I was reading about web standards and I honestly thought that it was unacceptable to peers and future employers for me to release a piece into the world without it being 100% browser compatible, semantic and perfectly unique.
After a few weeks with little progress, I worked on other parts but never got the site done. I was eventually intimidated by the hole I dug for myself and dreaded working on it, dreading hearing from the client and stopped billing for my time. Eventually, I told them that I simply didn’t have the time to finish. That wasn’t a lie, but it wasn’t the whole truth. Only, it didn’t quite see it like that until some time passed. I wasn’t really sure yet what I should have done differently, except feeling like I needed to learn a lot more than I thought to make it in this field. I felt like a failure. I felt like my education had not prepared me.
Looking back now, my coding skills were actually pretty good. My context skills lacked. Resources to learn from were slim compared to today. But ultimately, the soft skills of learning what the client really needed to accomplish was missing from the equation. It’s not that I didn’t know that was important, but the skill of reading through the lines wasn’t yet developed.
I have written before about the importance of knowing what a client or user needs in a deeper way than what they say they need or want.
What I didn’t realize at the time was how and when to properly apply principles. Deciding when it made sense to use certain tools would only come to me with more experience. As time went on, I also looked back to realize how naive I was with managing projects like this. I have since become fully transparent in communication, with more flexibility. Since then I have really upped my game. Many can attest to this, but it took some practice. This practice helped me professionally and has benefitted many businesses of which I’ve had the privilege to work with over the years.
I was fortunate that the skills I needed to develop were easy to correct once I recognized them. It wasn’t like I didn’t know how to code or to design. I knew a lot already, just needed to apply it smartly. Anyone who manages tech or design projects will tell you that process-building is an infinite learning exercise. Now, focusing on user/client first always results in success.
Back then, I had thought of becoming a better developer in the wrong sense. Part of becoming a good developer is solving problems. It’s not about forcing something to work because it was a committed idea too early in the process. It’s also not about forcing a theory down a client’s throat because you want that in your portfolio. And it’s especially not about having them pay for you to learn on their dime (especially if you charge per hour which I no longer do). If something is not technically feasible as once thought, or no longer makes sense within timeframe or budget, you have to keep your eye on priorities to keep moving. This requires problem solving again. In this case, I should have figured a way around the problem to keep the project moving toward the goal of making the site easy to find, navigate and book. I had lost sight of both the client and user’s goals in the midst of self-doubt and an inconceivably shortsighted concept about how a developer should apply web standards and creativity.
It’s not easy for me to share this story because I pride myself on quality of work, relationships and project management. Since I have come such a long way from these days, I’m not only comfortable with sharing, I hope that perhaps it can help others to focus on discovering ways to truly serve their stakeholders and think outside of the traditional design and developer mindset. You are hired for your problem solving skills and you have a toolbox. Learn when to use what tools and you’ll be miles ahead.