Complexity

April 24th, 2020
complex

Brain Bender

Working on a team can be difficult. When you work by yourself, only your opinion really matters, and you can do whatever you want. This is great, but only to a certain extent. We all have our weaknesses, and I still have more than most. Not many developers are fantastic across the whole stack, including design principles, so you need other people on your team to cover all bases. At work, if I were responsible for hooking up the backend, working with the database, and working on the SEO, I would be in big trouble. My area of limited expertise lies almost solely on the frontend in the world of React. I also don't have a refined eye for designing websites. I can throw something together, but I just haven't been at it long enough to really be able to differentiate the minute differences in a greatly designed website and a mediocre website. With team members come personalities and opinions, though, so you have to play a balancing act. Some days are better than others, but I've certainly had my challenges with my team.

complex

One of my biggest qualms with the way we are set up right now is that we really don't have a designer to work with for the frontend. We do have designers, but they really don't work with us at all. So, we are left to our own devices and decisions as to how the applications will appear. I've spent a lot of time creating features in the application that I later have to completely destroy and start all over, going in a different direction. My cohort has a better eye for design than I do, so I typically run everything through him to get his opinion. Today, I started building the next version of the payments application that I've been working on practically the whole time I've been here. Basically, what they want is to be able to add other products to the process, so when the representative is selling a plan, they are able to add other documents to upsell the customer right in the process. To this point, if they wanted to add these other products, they would have to go through another application process and it's really cumbersome. So, I started off building a couple extra steps to the process. Once they pick their plan, they would be taken to another step asking if they wanted to add any other products onto the sale. Then, they would be taken to another form that would have selectable cards that would drop down the appropriate inputs. I thought it was a good flow, but I wanted to run it past my cohort before I got any further.

complex

When I asked him about it, he had a completely different idea of how he wanted to do it. He wanted the different plans to show up as clickable cards and then the other products to be clickable cards all on the same screen. While I was a little perturbed that I had just wasted my time writing these steps up, I thought he had some good points, so I scrapped my work and started over. I was able to get the UI looking like I wanted to after much consternation, so I showed him what I had so far. When he looked at it, he had some criticisms of it. I didn't want to scrap all of the work I had done, and I didn't think that was necessary, but I did make some changes to improve it more to his liking. In the end, the UI will be the easiest part to change if it comes down to that, but for now I'm pretty happy with it. This is probably the most complex thing I've ever built, being a layered form. If I was just using the pattern of set the context whenever there was a change to an input, it would actually be pretty easy, but that would cause a re-render every time a key was entered into an input. That's why we're using React-Hook-Forms, but in this case, it's making this much more complicated. Since I componentized the entire form, getting the correct values for each input meant I had to make it really dynamic. I'm only about halfway done, but I'm pretty proud of what I was able to accomplish so far on this thing. When it's finished, it should be very performant and very flexible, and given the complexity of this form, that's a pretty strong feat.

Until tomorrow!

Created by Sam Thoyre, © 2019