Best software development workflow advice by a DNAMIC expert
Table of Contents
As a software company, we have the luck to know and work with many talented developers that create amazing things, shaping the future of technology and pushing the boundaries of innovation. But what’s behind it all? We have sat with one of our outstanding developers, Keylin Wu, to discuss the essential things when working, her routine, and the importance of software design principles.
When you love what you do, you can excel at it
She wakes up and starts the day with a cup of coffee, a stretch, and a list of things to do that keep her mind sharp and focused. By setting goals for the day in a notebook, she helps herself create a path that ends with checks and small victories that are very important for personal satisfaction and growth.
What you need to know about Keylin
Is our Senior Mobile Developer
Speaks Mandarin, English, and Spanish
Love traveling and meeting new people
iOS and Flutter(Dart) passionate developer
Is our first guest in the DNAMIC Insights video series (coming really soon)
The way she manages work and life is all about balance. She keeps her mind sharp for clean code and her body strong for yoga when she needs her zen enhanced after a long workday.
“I have my yoga mat next to my desk in case I need to stretch after too many hours sitting behind a computer. One of the things I love about working from home is creating a space that suits your needs and preferences so effectivity and motivation can flow better.”
Keylin’s keys for good software development
“I make sure to say hi to the teams before I begin my tasks because this way, we start on a good note.”
She declared Slack as one of her main tools because it helps communication stay to date, quick, and clear, which is necessary to have when you are in multiple teams and need to be on the same page as Keylin!
“I keep transparency a priority when I work because I’ve learned that you need to speak up with time! As a woman, it took me a while because we are often accustomed to being silent or mansplained in this industry, but now I say what I need to say, and I ask for help when I need to. It has served me well in my life.”
This transparency has helped her grow but has also helped the way she is in teams and how she sees it as an excellent characteristic to have as a group because it makes work quicker and more efficient.
Learning from time, mistakes, and others
“Ego can be a very common feature in this industry, but you have to go past that to evolve as a team and really reach a good outcome.”
For example, with SOLID principles, she learned them as a tool to make code just as she likes it, well done and well structured. But she wasn’t given them as a topic in her education; instead, she put them into practice when encountering what she calls a spaghetti code in a project.
“What makes a spaghetti code is that it has a fragile foundation and the efficiency lacks and it’s difficult to escalate. As the name says, it looks like spaghetti.”
The experience brought her a new appreciation for design software principles like SOLID and their work. How they make good patterns, clean code possible, order, well-done interfaces- you don’t know what you have until it’s gone!
“It is worth mentioning that these principles are not an absolute truth, but rather a proven guide that will lead us down a more enjoyable path when programming, not only for me but any programmer who will use your code.”
A mobile Developer's best bits of advice
Design software principles are essential to help a developer; they help transform rigid code into a flexible one, maintainable to scalable, consistent, and testable.
“To add these to the way you create code can be the difference between a headache code or a power source.”
Its key for developers to be open to keep learning, adapting, and adopting elements like these principles in their day-to-day. It’s assured that it will help quality and efficiency and minimize repetitive or reusable code. And it will be helpful in the long run when other developers understand without problem if they need to work on it.
KISS, SOLID and DRY
Like SOLID, many principles can help developers in cases where they need a type of guide while making a “solid” foundation, structure, and overall excellent and organic code.
KISS is an acronym for the phrase “Keep it simple, Stupid!”
It seems a little aggressive, but this reminds us that any system will work better if kept simple, even in complex situations. KISS stands for simplicity as a goal in development and shoves out the unnecessary complexity in any process.
DRY stands for “Don’t Repeat Yourself”
This refers to making changes in any part of a program’s functionality, excluding changes in features that lack a logical relationship to the changed functionality. Essentially it reminds developers to avoid duplicating code to simplify maintenance ahead.
SOLID’s five principles of object-oriented development that, when applied together, make development easier to maintain and extend over time.
Fixing one bug can create additional bugs!
If code is rigid and inextensible or if code is not testable!
Features work most of the time, but sometimes they don’t, and you don’t know why.
There is a lack of uniform structures.
You are afraid to make changes, but it might cause a code crash.
New features require a lot of refactoring of unrelated code.
Be able to notice the difference between lousy code from good code
Good code is like a garden; it’s beautiful and well-organized. Bad code can be compared to weeds – they’re everywhere! The difference between bad and good codes might not seem significant at first glance, but over time, you’ll notice how much more efficient the former are when working with your application or website because of their lack of flexibility and resilience.
The differences between Good Code & Bad Code, according to Keylin's developer's eye
Rigidity -> Flexible
Rigid code is when we want to change a part of the code, and when we do, that breaks another part of the code we weren’t expecting.
Fragility -> Maintainable code
When something breaks, we crash the code in places that have no relation to the change or fix a bug, but suddenly we have two new ones. That would be a highly fragile code.
Immobility -> Scalability
It has happened to you that you are programming some components; suddenly, you remember that you had made a similar one some time ago, then you go to implement it. Still, you realize that it does not work to move it so easily because it already has burned values that only work for that use, and to reuse it, you have to refactor a lot of code; well, that is an immovable code! These codes can also break with the DRY (Don’t Repeat Yourself) pattern.
Inconsistency -> Consistent
When the code is not uniform throughout the application, several ways and patterns exist to implement it. This could often happen, so we as developers must be careful and conscious to ensure that our code is as consistent and uniform as possible. That it’s going to help our future development as well as other teammates or developers that might go into this code later on.
Keylin's Final Advice
Keep your goals clear and your code clean!
As a developer, it’s crucial to focus on your goals throughout the day. This can be difficult when faced with distractions, as we usually are when working from home, but you can stay on track if you keep your goals clear and concise. As Keylin mentioned, working from home is the solution to motivation and excellence if you create a space and routine you love waking up to!
Keeping your goals in mind and breaking down large projects, you can stay focused on what’s important and get more done. Don’t forget about breaks too! Developers spend a significant amount of time on desks and looking at screens, so be conscious of how rest can impulse your work afterward. Recharge and come back to your work with fresh energy!
What objectives does Keylin, as a developer, strive for?
Reduce dependencies between classes.
Build more efficient and maintainable code by eliminating bad design.
Avoid or minimize the need to refactor code.
Eliminate rigidity, fragility, immobility, and strong cohesion.
Create code easier to understand, maintain, and test.
Do work that matters!
And stay passionate!
There are many keys to happiness in development. But when you can focus on your goals and keep your code clean and consistent, you can work better and become better. Keylin’s goals and way of work are a great example of working on what you love and where you are happy can be a significant motivation to become the best.