Functional Design: Where Business Meets Software
An Introduction to Functional Design
The purpose of functional design is to define the requirements to be implemented by a software solution. Regardless of the form they take, functional specifications are meant to capture what the software needs to do in order to support a business user. Often, functional designs are reviewed and approved by both business and technical stakeholders. The business users confirm that, yes, this is what they really want the system to do. The technical users confirm that, yes, these requirements are feasible, implementable and testable. In order to learn more about the nuances of functional design and our unique approach at Engineering Industries eXcellence, our marketing team sat down with one of our top technical gurus and functional design experts for a good, old-fashioned, face-to-face Q & A session.
Meet Our Expert: Guillermo Padron
ZB: HI GUILLERMO! THANKS FOR SITTING DOWN WITH US TODAY TO TELL US A LITTLE MORE ABOUT YOURSELF AND WHAT YOU DO.
GP: My pleasure, let’s do it!
ZB: FIRST, TELL ME A LITTLE ABOUT YOURSELF AND YOUR BACKGROUND. ANYTHING MOST PEOPLE DON’T KNOW ABOUT YOU?
GP: My parents immigrated to the U.S. from Cuba in 1979 during the reign of Fidel Castro. Cuba had an agreement with the U.S. government to allow emigration to the states, and Castro used this as an opportunity to get rid of undesirables - prisoners of state, political dissidents of the communist regime - you get the idea. At that time, my dad was a political prisoner. He and my mom were told they were getting on a raft to Florida, so they did. They eventually made their way up to New York and settled in New Jersey. I was born there in 1991.
ZB: THAT’S AN INCREDIBLE STORY, G! NOT SURE WHERE TO GO FROM THERE, BUT GIVEN THAT YOU ARE ONE OF THE MOST TALENTED TECHNICAL SPECIALISTS ON OUR USA TEAM, I WONDER WHAT YOU WERE LIKE AS A KID. WERE YOU BORN TO BE IN THIS FIELD?
GP: Maybe not born, but definitely nurtured for it. In primary school, I was all about math and science. I liked them and was pretty good at them. They were concrete, and it was a lot easier for me to grasp in an instance what an answer to a problem was. That’s how my mind worked. I was also at a school where those subjects were emphasized, because I lived in an area where educational opportunities were not always the best, so teachers encouraged students to take on practical and trade schools. Then in high school, I looked to Omar, my older brother, for inspiration. He was entering college for computer science, and I wanted to follow in his footsteps.
ZB: WHAT’S YOUR EARLIEST MEMORY OF TECHNOLOGY?
When I was younger, my brother and I would go visit my dad at his office. At the end of the day, if we were being good and everyone had left the office, he would let us play a few games on the computer. I loved it. By the time I entered high school, personal computers were starting to become much more common in the household, and we were able to have one at home. So, when it became much more available to me, it really captivated me. I jumped into the world of computer games and haven’t looked back since!
ZB: ALRIGHT, GIVE US THOSE EDUCATION CREDENTIALS FOR THE RECORD.
GP: I went to Rutgers University and graduated with a double major in Computer Science and Math. I had not actually touched a programming language before college, yet I wanted to go into it. So, I dabbled in a lot while there...various programming courses, operating systems, languages. It didn’t come easy to me. I can still remember specific moments of frustration or clarity, trying to understand why code I was writing wasn’t running or why my design was not producing the results I expected. But you can’t learn to be a good problem-solver without having a lot of problems to solve.
ZB: WELL SAID. DO YOU HAVE A CREATIVE SIDE?
GP: Yes! I have always loved writing, games, music - creativity is at the heart of all of these. Initially, I went into programming because I wanted to create a video game. While I didn’t have a purely creative mind, video game design requires a very good mix of technical mathematical knowledge to ensure that the system works correctly as well as ingenuity to be able to create a unique, immersive and engaging world in which someone would want to play.
ZB: VIDEO GAME DESIGN, YOU SAY? SO HOW DID YOU END UP AT ENGINEERING USA?
GP: As it turns out, the video game world is an incredibly competitive and challenging industry to break into, and not really one that takes new college grads with zero experience. One day, I still hope to live my video game dream, but I knew it was not for me starting out. I wanted to learn, grow as a professional and expand my technical skillset, and Engineering Industries eXcellence gave me the opportunity to do all 3.
ZB: YES! WHAT DO YOU DO AT ENGINEERING USA?
GP: I have been at Engineering Industries eXcellence a little over 5 years. Starting off, I got exposure to a lot of different areas of expertise within our company. PLM, MES, SPC technologies. Projects for manufacturing software training, solution validation, system integration. Customers in Food & Beverage, Medical Devices, Oil & Gas, Energy, Chemical Manufacturing. I am very grateful for this diversity of experiences, because it helped me develop an in-depth understanding of both the manufacturing and solution implementation processes. This has been critical to my success as a Functional Designer.
Functional Design @ Engineering Industries eXcellence
ZB: AH YES, GOOD OLE FUNCTIONAL DESIGN. WHAT IS THAT AGAIN?
GP: Functional design is taking a business requirement, which is what the customer ultimately wants the software to do, and translating it into technical specifications that developers can understand based on the system with which they are working. Functional design is the moment of true alignment between business and IT, and as a Functional Designer, I am responsible for making sure that nothing gets lost in translation.
ZB: I THINK I UNDERSTAND…
GP: For example, let’s say the customer wants a program where they can enter 2 numbers and the computer will provide a sum. The Functional Designer will take that business requirement and turn it into a series of use cases, or functional specifications, which developers can follow to achieve the end target. So:
- This is the interface you should have;
- You should have two fields;
- You need this button to click submit;
- When the end user clicks, this should happen.
Of course, when delivering an advanced manufacturing IT solution, these specifications are much more extensive and complex.
ZB: HOW DOES THE FUNCTIONAL DESIGN PROCESS WORK? DO WE HAVE A SPECIFIC APPROACH AT ENGINEERING USA?
GP: Every project’s timeline and scope is different, but generally speaking, we follow an agile methodology at Engineering Industries eXcellence. This is a sprint-based approach, and it applies to both the functional design and software development aspects of our process. A sprint covers a chunk of business requirements out of a big list. Basically, we say, “For this sprint, which will last x, we will focus on x requirements and make these work.” The benefit of the agile method is that it enables rapid prototyping. The shorter your sprints, the less work you deliver per sprint, but the more often the customer can see your progress and give feedback. In contrast, the waterfall approach will make making changes difficult and time-consuming. It’s much easier to change a design after a smaller sprint than to change something after 8 months of development, especially if the customer has had a chance to observe or use the product. Every product changes in one way or another once the customer gets a better vision of the end goal.
ZB: BUT IF AGILE DEVELOPMENT HAD NO DISADVANTAGES, IT WOULD BE THE ONLY METHODOLOGY OUT THERE. WHAT’S THE DOWNSIDE?
GP: Complex projects with a high number of requirements are not always easily separated into sprints. The downside of agile is that it often requires you to decouple certain phases of projects that should not be decoupled, all in order to keep a sprint at a reasonable size. As an example, you might have one group of functionalities that are all related to order scheduling or inventory management or what be it, but that group is too big to be handled in a single sprint, so you have to split them. As a result, there is a risk that what happens in the second sprint may adversely affect what was done in the first sprint, requiring more time spent fixing and re-testing. There’s also a lot of pressure in early agile sprints to provide something that can run really early in development. Sometimes, this means spending less time on frameworks and organizational tools, which can end up slowing down development down the line. That’s where our relationships with existing tools and partnerships with other companies are invaluable. They provide a lot of the pre-existing framework, so we can jump right into directly fulfilling customer requirements. But more often than not, the benefits of agile and getting customer feedback as often as possible during a program outweigh the negatives and lead to the delivery of a better and more effective final solution. So, we stick with it.
ZB: WHAT MAKES FOR A GOOD FUNCTIONAL DESIGNER?
GP: As a functional designer, you are a critical liaison between the customer purchasing the technology and the development team that is building the software. As the main mediator between business and software, you have a lot of control over how a solution’s structure is ultimately going to pan out. Given this power, you need to consider both sides at every step of your work. You need to consider not only how a design is going to look visually for the end user, but also how (and if) it can be developed, tested and supported. Sometimes, what’s good for one side is not good for the other. Also, you must always try to understand what is going to get the best long-term results for the design. You can design something easily if you have no restraint and simply load an endless number of requirements on the development team. But you want to make sure that your developers have enough time in their sprint to program what you design. At the same time, you need to consider how that design will be tested. If you over-design every aspect of a requirement, you will create a scenario that is very challenging for validation to support. You are trying to understand how much of the design is explicit and mandatory, how much of the design needs to be added for good programming practices, and how much leniency you want to give to design to make sure that all the business requirements are met. It is one big balancing act.
ZB: WHAT SETS YOU APART AS A FUNCTIONAL DESIGNER, GUILLERMO?
GP: In my 5 years at Engineering Industries eXcellence, I’ve been a part of all the different aspects of an IT project. I’ve spent a lot of time on the IT consulting side, a lot of time with the software, and a lot of time with operators on the manufacturing floor. I have seen firsthand how my designs ripple down into what is happening at the ground level. That has allowed me to have a unique perspective beyond just the big picture of a program. I know that users will be using this in their daily job, and I don’t want to make their job harder. I understand this impact and take it as a serious responsibility.
ZB: ONE FINAL QUESTION FOR YOU, THEN I WILL LET YOU GET BACK TO DOING ALL THE IMPORTANT THINGS YOU DO. WHAT DO YOU ENJOY MOST ABOUT WHAT YOU DO?
GP: Functional design has given me the opportunity to learn so much about the needs of the industry and the nature of software development projects simultaneously. I enjoy my role because it allows me to communicate with and get feedback from all the players who are impacted by my designs - the guys at the top, the end users and my own development and validation teams. My designs affect what they do and how easy or difficult their jobs are. This interaction helps me understand where my designs are good and where they are failing. This has been a key factor behind my growth as a specialist and the continuous improvement of the work I produce.