Here at Yieldmo, the Applications Team is responsible for building all internal and external facing tools and applications in support of our formats, ad network, and more.
The scope of our challenge requires us to spend our time extremely carefully. We’ve seen firsthand just how much technology choices can impact development speed and upkeep costs. So how do we make sure we’re making the right technology choices as we build out our various applications?
As the engineering manager of the Applications team, this led me down a path of articulating projects as some combination of necessary, impactful, and challenging. I’ve found this to be an effective way to give the proper context to everyone involved in both the tech and product side of the team as we plan and begin execution on new applications.
Necessary projects are tools and applications which are needed by the business to operate. These aren’t always glamorous, but they are needed to unblock revenue and business operations.
Impactful projects go beyond the necessary and proactively move the business forward. These are the innovative projects which help extend our reach and tell our story as a company.
Challenging projects are ones where the nature of the problem requires expert technical planning and execution. It’s these projects which really got me thinking about this framework.
Projects which are challenging, necessary, and/or impactful are the best use of our engineering time and effort. Here at Yieldmo we take great pride and care in hiring exceptional engineers. If we’re going to ask our engineers to spend their time on a project, we should make sure it’s also a high reward one.
An excellent example of an application which falls into the perfect combination of all three categories is our Ad Builder application. From here, brands and ad agencies can interact with our ad formats and build and customize ads at will.
Sales and marketing needed a way to showcase our proprietary ad formats. Operations needed an easy and self-service way of building and customizing formats for trafficking. The challenge comes from the custom nature and focus on the user experience. The formats themselves are non-trivial as well, increasing the complexity for some of our more involved formats, like the Wrapper.
When the Applications team took a look at our portfolio of inherited legacy applications from the early days of Yieldmo, we found a few which seemed to be in the challenging category unnecessarily and/or by accident.
These were applications or tools which didn’t have a large impact, so their worth was fairly low. And the tasks they were performing weren’t part of our core domain, so didn’t require a lot of custom logic.
The problem with these tools was generally the wrong choice of tools for the job. Ironically, those choices were usually made in the name of speed. But as both the tools and the business evolved, the cost of maintaining these tools has come to outweigh their value. By moving them to a simpler tech stack, some have shifted to the next category in this framework.
Because most of our tools are internal only, they have high necessity and impact, but don’t need to scale or dazzle users with visuals. Note that quality UX is still a key tennant as it drives operational efficiency.
For this category of applications we’re aggressively looking to buy and leverage off-the-shelf tools to help our developers spend less of their time building simple CRUD and reporting applications, and more time building the high impact and highly challenging projects which actually require their skill sets.
One of the tools we’ve had extremely good luck with is a framework called the CUBA Platform. CUBA is a self-described “high level open source Java web framework for enterprise applications.” CUBA allows us to put together tools to unblock the operations and sales teams with very little development effort and very low resulting support costs.
The previous collection of hand-rolled, hard-to-maintain CRUD apps are now as simple as point and click, and the wide array of simple internal legacy tools are being gradually migrated to fall under a single reliable umbrella application framework.
By looking at proposed projects for our team through this framework of necessary, impactful, and challenging, the team has been able to more easily spot opportunities for offloading work to higher level frameworks and tools. Combined with gradually moving the upkeep-heavy legacy applications to these new platforms, the team has cut new feature development time dramatically, while delivering higher quality projects than ever before.
Additionally, by empowering the team with easier tooling, existing infrequent but time consuming manual tasks (necessary tasks) have been extremely easy to automate. This further offloads work from the engineers (becoming necessary and impactful tasks).