Technical debt, complicated and unstable codebase, low team morale, increased cost in extending the software, high costs of maintenance. All sort of unpleasant situations threatening your projects.
I don't know if any of these threats leaves you anxious. If it does, it might have something to do with pilots not knowing about the principles of aerodynamics.
I understand software development is hard to get right. I've seen teams getting it right, but more often, not quite right.
In over 18 years of working for multiple projects and teams in different industries, I hypothesise that there's some correlation between the complexity of the code and high team turnover.
Developers start with good intentions, but soon something happens. We can read from their code that something was not right anymore. That may have been a moment when one of the plane's engine breaks.
Maybe a nasty bug in production? A performance issue? Lack of flexibility to extend and modify the system to cope with business needs? Whatever it is, there's always an engine breaking while you're flying.
Your dev team will put the parachute and fly.
Can you guess what the principles of aerodynamics have to do with the idea of improving your software?
A report from "Data and Analysis Center for Software" (DACS), found at Semantic Scholar website, demonstrates that when software managers apply sound software engineering methods, it generally:
- Reduces Development and Maintenance Costs.
- Improves Customer Satisfaction.
- Reduces Cycle Time.
- Increases Profitability.
- Improves Professional Staff.
On a study - were insights were publish on FlighGlobal's website - was found that many pilots don't understand aerodynamics. But better they do understand for passengers safety. The same goes for software developers, better they understand the principles of Object-Oriented design.
Sound software engineering methods requires mastering the basics, and Object-Oriented principles are the basics.
Is ok if one breaks any of these principles, but when one knows why they're breaking them, it shows maturity.
Helping your teams mastering these principles, might prevent engines from crashing and might take you to the desired destination.
I started a series of posts to share this content in Yule's blog. The first one was about the basics of Object-Oriented programming.
In this post, I want you to have the Object-Oriented Design principles slides that's helping developers to understand and apply the Object-Oriented principles in the code they produce.
Initially published in 2012, but still relevant. Like aerodynamics principles, object-oriented programing principles don't change
These slides are about the SOLID principles:
- Single Responsibility Principle (SRP)
- Open-Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Don't Repeat Yourself Principle (DRY)
If you think you can use these slides as a template for internal training programs for your teams, you can download them now.
- Please, click please click here to download in PDF format.
- Or click please click here to download in PPPX format.
You should receive an email from me shortly with all the links.
If you don't see my email in your inbox in the next 5 minutes, then check for the spam folder for my email from firstname.lastname@example.org
Thank you again for your interest in my material.
Can I send you all the training material to your email?
Good software developers keep their cognitive muscles sharp by life-long learning.
Why not use all my material and customise it to your software development teams training programs?
If you give me your best email, here's what I will send you to your email:
- A link to a shared Google Drive folder with all the material in editable format
- A link to a zip file with all the material in editable format
The editable training material has the following templates:
Why do I want your email?
You're probably involved somehow with software development, and you care about the skills and competences of your development teams.
That's why I think it might be a good idea to have an informal chat about what your pain points might be and see if I can help.
My name is Joao Pereira, director and principal engineer at Yule Technologies, LTD.
I build software commercially for more than 18 years, and while working in a myriad of roles in multiple projects across different industries, I learned a bit about this industry.
I'll build your ideas. I'm very hands-on and code a lot, mainly in Java and distributed systems. I'm formally certified and have experience in Agile Methodologies and more waterfall' ish ones, like PMP from the Project Management Institute and have led multiple development teams during my career.
Will you let me send you all training material and get in touch?
- This email is not valid.
- Name seems odd.