Avoid these top 5 mistakes as a new software and system designer.

Marc Dragon
3 min readFeb 8, 2022

Starting as a systems designer can be exciting and inspiring. You get to see the side of IT that allows you to build systems one brick at a time. And in the beginning, you’ll be making some errors. It’s expected, and it’s all part of the learning process. Your first challenge will likely be the design of a small component that is destined to become part of a bigger system. A small piece of a bigger whole, as it were. A good place to start would be to draw out everything because it allows you to view the complete picture before starting iterations over each piece of the whole. We make fewer mistakes if we see the big picture before zooming in on the detail; however, no matter what approach we use, we still make mistakes.

One of the most common mistakes is to design a system that makes your management team happy but is super-complex to maintain and build on. Being simple and making management happy aren’t mutually exclusive. So, as much as you possibly can, adhere to this golden principle: KISS. Not literally kiss but more “keep it simple, stupid” by avoiding these five potential pitfalls:

1. Don’t overly complicate your design: a system should be designed to solve a problem, not to meet one individual’s idea of what the solution should look like. Make sure your design is simple enough so that it works and can be easily maintained.

2. Avoid scope creep: designers and architects tend to increase project scope when clients are unsure of what they want. To avoid scope creep, you should define functional and non-functional requirements with your client. Ensure that the client or manager is satisfied with the scope, then start designing the system. Adding new things to your scope will only delay your design and project further down the line.

3. Resist the temptation to “wing it”: sooner or later you’ll enter the realm of designing with new technology. This can happen when you don’t specialize in the underlying technology, or you’re designing for a more DevOps-centric team. Start by brushing up on the underlying technology. Find best practices on various forums. Designing with new tech should only be done after you do your research. Resist the urge to “wing it.” Brush up and learn from others who have worked with the new technology. Otherwise, be prepared to expect the unexpected.

4. Design with operational requirements in mind: monitoring with metrics and logging are essential when building an application. If you don’t keep them in mind, it makes it immensely more difficult when trying to troubleshoot system problems. Operational requirements aren’t optional and shouldn’t be de-scoped to meet deadlines. Operations are something that a designer/architect must always take into consideration when designing a new system. Logging and non-happy path functionality are an important part of simplified maintenance, for example, “what happens if half the cloud crashes?”

5. Document, document, document: I can’t say this often enough. One of the most painful mistakes a designer/architect can make is to leave behind incomprehensible or little to no supporting documentation. This mistake can be costly in the long run because it not only makes people unable to understand your design but also how it operates. If others are unable to operate it, then the system becomes a giant paperweight. People will be unable to add improvements or will attempt to make modifications to them. Those modifications might have a bigger impact if the person doesn’t understand the whole. Produce documentation to make sure someone else can understand what the system does, how it works and what its components are.

The life of a new designer can be filled with different projects, adventures, and challenges. When designing, if you keep these top five mistakes in mind and avoid them where you can, you’ll overcome many issues you’re likely to face on a project. You’ll feel a high when you complete a system and get it fully operational. You’ll feel a low when a project is cut, or when a design doesn’t work out. Don’t get discouraged, we’ve all been there. Keep designing the new world, what’s next is up to your imagination.

--

--