Posts

Showing posts with the label leadership

Quality and Performance

Image
If you ask any engineer or manager, they will tell you they want quality. No one would say they do not wish to have higher quality. The reality as human beings is that we always want the best. Now, what does quality means? How do we determine if something is of quality or not? How can we learn how to see problems and how can we make things better? Hopefully I will be able to address all these questions in this blog post. In the 1980s there was big quality movement driven by Lean and other methods. Today quality is often misunderstood and took into the the wrong lenses. If you don't understand what quality is, and how good looks like vs how bad looks like, you don't know what's going on, and you certainly cannot make it better. Perspective and vision are everything. This post is not about QA. Having QA also does not guarantee quality. Like security quality is everybody's job. 

No Delay: Leaders Delay Cost a lot

Image
Let me remove the obvious issues before I make my point. Ignoring problems is bad; ignoring problems at scale is even worse. If we have a network effect of ignoring things at scale, that's the worst thing we can do. Ignoring problems leads to Ignoring culture . Being aggressive with problems is not being reckless; it's not about moving so fast that we break things by doing it so. When applying for software, we ask some apparent questions but sometimes forget to apply for people. In software, we don't want to discover all the bugs in production; we want to shift left and find as many problems as possible before going to production. We must apply the shift left to people and address the issues immediately. The sooner we find problems, the sooner we fix them, and the sooner things improve. 

The Dark Side of LLMs: part 2

Image
July 2024: I wrote the first blog post about The Dark Side of LLMs . During these 7 months, many things have changed; the usage of AI and LLMs in engineering has kept growing. LLMs and AI are cool. However, they are not a free lunch and have consequences. If you have not read the first blog post of this series, go there and read it because it will be relevant to this one. One significant open-source development in LLM was  DeepSeek .DeepSeek is interesting for two factors: one that is considerably cheaper and second that is open source. Deepseek introduced a series of optimizations like parallelism, chain of thought (COT), which step by step so we can fix the model where is wrong and usage of Reinforcement Learning (RL) along side with Destilation. RL is how robots roll and self-driving cars also move in a city.  Deepseek's being open source is great for the community; however, we also see interesting moves from big tech companies like  Meta ,  Microsoft ,  Goog...

Quality Needs to be Managed

Image
Quality often means something different to each person. My definition of quality revolves around technical excellence. To achieve this, we need good architecture, sound design based on strong principles, good code, tests in a wide variety and diversity, and proper observability. To get there, we need refactoring(a lot), and I would also include good troubleshooting and review sessions.  Quality involves not only delivering automated product deployments but also ensuring the software is maintainable. Delivering software on time is not enough, and delivering value to the customer is not enough either because people and software are expensive. We need to do better.  Quality needs to be built-in, a strong, solid lean principle. However, we don't have as many incentives to built-in quality as we do for finishing projects on time. Projects are always associated with direct value to the company, and quality is often optional and mismanaged. Quality does not mean QA, and it's way beyo...

My third book is out: Continuous Modernization

Image
After 7+ months of hard work, my third book is out. Introducing:  Continuous Modernization : The never-ending discipline of improving microservices, monoliths, distributed monoliths, individuals, and teams at scale. Modernization is something I have done over and over in my life. Modernization is something that all companies need and will always need. The need for modernization will never go away, even with LLMs and AI. Technical debt, Anti-patterns, and bad decisions do not take days off. Complexity never shirks and continually grows. Companies do not stop getting bigger and doing more and more software critical to growth, delivering value to customers, and staying competitive and relevant in the market. We need a better way of doing software to drive the best outcomes out of us. Continuous modernization is the counterforce to technical debt and anti-patterns. Continuous modernization is how to continually improve, even when you think it's impossible and nothing can be done. We ca...

Management: The non-obvious

Image
Traditional management often sucks. Main because the focus is on control, time management, and micro-management. Plus, traditional management does not learn and just repeats the same process repeatedly and expects different results. I prefer modern incarnations like Coaches or even Engineering Managers.  I'm aware that Agile Coaching is a bad word in brazil because of Scams, but it does not mean it is a bad thing - It really depends on the people. People are more attached to managers than you can think. People do not know quite companies, they quite they managers. That's why management is a super important element of companies culture. Companies are complex. Complexity is everywhere; at the same often people just game the system rather than have complex and systemical thinking. So if you want to change the culture, you need to change management., Today, I would like to cover some non-obvious aspects that can deliver a better culture and, therefore, better solutions and better m...

Why Digital Transformations Fail?

Image
Around 2015 there was a huge fuss about Digital Transformation. 70% of all Digital transformations fail(According to Tony Saldanha ).  For sure, you are thinking, this is because of the lack of proper Talent Pool, or wrong technology choices. Fore sure that things matter a lot, but surprisingly the number #1 problem is lack of discipline. Lack of discipline in Defining and executing the right steps. IMHO lack if discipline is also the issue of why hard things dont get done or executed. To define and execute the right steps, you need to have VISION and know what you are doing and what problems you are fixing. If you dont understand the problems you are fixing, how do you know you are fixing the right ones? How do you know you are doing the right things? Well, often, companies don't know, or they think they know.  99.999999% of aircraft takeoffs and landings  are successful  compared with only 30% success in digital transformation initiatives. 

Is Scaling Agile Just About Process?

Image
There are many agile frameworks that try to handle the task of scaling agile to many teams or multiple products. This week I was reading this article on CIO about this matter. What a realize is that most of agile frameworks at scale are based on old principles like: process, communication and tools. How is that different from RUP? New practices but old principles all goes down to standard management principles.  What's missing? INHO 3 things: Culture, Leadership and Software Architecture. Scaling agile looks like a management problem is part is true but is more than that.