Application software is typically “front and center” when it comes to the user’s experience with any computerized system. As such, when building out the requirements of a system, many people tend to have a strong opinion as to how the application software will operate.
What isn’t always obvious is there’s a much larger, multifaceted portion of software working in the background, enabling various systems to connect and communicate with each other in order to deliver the functionality the user is wanting. The UI portion of the application that the average person sees and feels is just the tip of the iceberg!
Take Zoom, for instance, which we’re all familiar with in today’s remote workplace. I’ve heard many times, “Man, we should build an app like Zoom, have you seen their stock price?” This sentiment is typically focused on the UI, which probably makes up 10% of Zoom’s software system. It doesn’t take into account all the backend software – on the user’s device, in the cloud, and on other people’s computers – that’s required for enabling the app to connect, encode, decode, and transmit the huge amount of synchronized data that is required to support a typical Video Conference Call.
The IPS Software team is proficient across all areas of the software stack, which includes user interface development, mobile and desktop platforms, communication layers, database technologies, and scalable server solutions. In a given year, our team typically handles 30+ different software languages and frameworks. Our diversity makes us competent within any environment. Our iterative approach allows us to provide the best possible digital product in the shortest amount of time.
Day to day, we build out scalable backend interfaces – in the cloud, on a local network, or even an in-room hub device – that integrate with a front-end application running natively on an iPhone or Android device or within a web browser.
A few years ago, we were approached by a client in a new industry (to us) that needed a major digital transformation, along with a large, complex, multi-user scalable web application that could both stand the test of time and be ready to use within 4 months. We met that challenge head-on, stood up a sizable team of our best and brightest, and successfully delivered a beautiful product in time for their initial launch. I’m so proud of my team!
We work the closest with the ID/UX Design team, who design the user interfaces that the Software team is implementing, and the Embedded Software team, who are typically writing firmware on the embedded microcontroller that is integrating with the backend and front-end software that we write.
Conflicts that may commonly arise between all Design and Development teams, including ours, typically come down to form vs function. Software developers are typically focused on making it work, and Designers want it to work a certain way with a particular aesthetic. Finding the compromise where those two equally important goals intersect is the key to success.
Collaborating with the Embedded Software team involves deciding where you want your core business logic to exist. Does it need to be down on the microprocessor, closer to hardware for tighter control, but where memory and horsepower may be limited? Or is it better to bring the core logic up to the user’s device or even a cloud server, which may be much more removed from the hardware you’re interacting with, but you have near-infinite resources at your disposal. Understanding these tradeoffs and coming up with a solid architecture up front is paramount.
At the close of one of our projects, I took the team out for a celebratory lunch. I happened to have a rental car at the time, a white Chevy Malibu with out of state plates, as my black Honda Accord was being worked on. After our well-deserved meal, the team walked back to our white Malibu with out of state plates and got in. A split second later, we realized….this was not my car! Without saying a word, and without a look in any direction, pretending as if nothing happened, and maintaining all composure, we all got out, walked two lanes over, and got into the correct car, then we finally lost it. I don’t think I ever laughed so hard in my life.