Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, and an instructional professor at the University of Houston.
He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects.
Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at venkats@agiledeveloper.com or on twitter at @venkat_s.
The ability to test a system is not accidental, it is a deliberate action that we have to bake into a system. The benefits of rapid feedback we gain from tests is significant, whereas the consequences for the inability to test is huge.
Not every application needs high performance and not in every single part. However, where performance is critical, taking bruteforce approach to bring in speed often does not help.
Plan for failures is a well known fact, but the question is how? Use circuit breakers, build timeouts, sure we know those concepts, but those are easily said than done.
As an architect you rely on your knowledge and the skills of your team to create an appropriate architecture to meet the needs of your applications. However, in spite of our creativity, it is hard for us as humans to think through various scenarios that could potentially lead to issues down the lane. This is where prudent use of AI tools can help us in proactively identifying problems and incorporating solutions into our architectures.
How do we go from requirements to architecture? When the requirements change, when and what do we change in the architecture? A good architecture has to be relevant to the application it serves, but how can we accomplish that.
Not every application needs high performance and not in every single part. However, where performance is critical, taking bruteforce approach to bring in speed often does not help.
If your team is tasked with transitioning from Monoliths to either Modular Monoliths or Microservices, splitting the application code, as tiring as it could be, is relatively easy when compared to dealing with data.
Have you ever created a single blob of an application where there were no parts to communicate between? Not in the past 50 years. So, then what does it mean to create a monolith vs. a distributed application? When should we choose one over the other. What are the consequences of choosing one over the other.