Showing posts with label software engineering. Show all posts
Showing posts with label software engineering. Show all posts

8 June 2025

Downhill Spiral of Atlassian Tools

Once hailed as essential pillars in software development and project management, Atlassian's suite of tools—Jira, Confluence, Bitbucket, and others—appears, for many, to be on a perceived downhill spiral. What were once celebrated as robust solutions have, over time, increasingly transformed into sources of profound frustration, hindering productivity rather than enhancing it. The ubiquity of these platforms now seems less a testament to their inherent excellence and more a reflection of their entrenched market position, as users and administrators alike wrestle with a growing list of grievances that paint a picture of steady deterioration.

At the heart of this perceived decline is the issue of unrelenting complexity and feature bloat. What began as a flexible framework has metastasized into an unwieldy behemoth. Jira, in particular, has become infamous for its labyrinthine configuration options, intricate workflow schemes, and convoluted permission settings. While this extensive customizability is theoretically powerful for large, complex enterprises, it imposes an exorbitant administrative burden that often far outweighs its benefits. Smaller and medium-sized teams find themselves drowning in a sea of unnecessary features and arcane settings, requiring disproportionate time and dedicated personnel simply to maintain baseline functionality. This overhead not only saps resources but also creates a significant barrier to entry and adoption, pushing away potential users overwhelmed by the initial learning curve.

Compounding this complexity, performance bottlenecks have become a chronic and escalating problem. As Atlassian instances mature and accumulate more data, users, and projects, their responsiveness often plummets. Slow page loads, agonizingly long search times, and general sluggishness when navigating dense information are common complaints. This isn't merely an inconvenience; it directly translates into lost productivity and heightened user frustration. The constant need for costly hardware upgrades, intricate database optimizations, or a forced migration to their cloud services (which come with their own set of costs and data management concerns) highlights a fundamental scalability challenge that often feels inadequately addressed, turning daily operations into a test of endurance.

Furthermore, the user interface (UI) and user experience (UX) often feel like a relic, especially when compared to more modern, streamlined alternatives. Despite sporadic redesigns, the Atlassian ecosystem frequently presents a disjointed and unintuitive experience. Navigating between applications—from a Jira ticket to a related Confluence page or a Bitbucket repository—can feel like jumping between different software generations. Essential functionalities are often obscured or inconsistently placed, requiring users to memorize non-obvious pathways rather than instinctively engaging with the tools. This lack of a cohesive, intuitive design language significantly contributes to the perception that these tools are fighting against the user, rather than seamlessly supporting their work, demanding exhaustive training rather than fostering organic adoption.

Finally, the escalating cost factor represents a growing deterrent. What might initially appear as a manageable investment quickly balloons with the necessity of add-ons, integrations, and the tiered pricing models for growing user bases. Organizations often find themselves ensnared in a vendor lock-in, where the extensive data and deeply embedded workflows make migrating away from Atlassian an economically and operationally prohibitive endeavor. This creates a captive audience, forced to absorb rising costs for tools that, for many, are increasingly failing to deliver on their promise of efficient collaboration.

The journey of Atlassian tools, from industry darlings to objects of widespread exasperation, reflects a failure to balance comprehensive functionality with user-centric design and consistent performance. The very strengths that once defined them—extensibility and feature richness—have, for many, become liabilities, manifesting as overwhelming complexity, crippling performance issues, inconsistent user experiences, and unsustainable costs. For a significant segment of its user base, the dream of streamlined collaboration has devolved into a daily battle against cumbersome and frustrating systems, casting a long shadow over their continued dominance in the market.

26 June 2021

Kubernetes Ecosystem

Backup

  • Velero

CI/CD

  • Argo
  • Flagger
  • Flux
  • Keda
  • Skaffold
  • Spinnaker

CLI

  • helm
  • k9s
  • ktunnel
  • Kubealias
  • Kubebox
  • Kubectx
  • Kubens
  • Kubeprompt
  • Kubeshell
  • Kubetail
  • Kubetree
  • Stern

Clustering

  • Eksctl
  • k3s
  • kind
  • kops
  • Kube-AWS
  • Kube-adm
  • Kubespray
  • miniKube
  • Gravity
  • Kaniko
  • Ingress
  • KubeDB

Data Processing

  • Kubeflow

Development

  • Garden
  • Makisu
  • Telepresence
  • Tilt
  • Tye
  • Teresa

Mesh

  • Istio
  • Linkerd
  • Ngix Mesh

Monitoring

  • Dashboard
  • Grafana
  • Kiali
  • Prometheus
  • Statemetrics
  • Kubecost

Networking

  • Coredns
  • Externaldns
  • Kubedns

Security

  • Falco
  • Gatekeeper
  • SealedSecrets

Storage

  • Rook

Testing

  • Popeye
  • k6s
  • Kube-Monkey

Native

  • KNative
  • Tekton
  • Kubeless

7 June 2021

Why Microsoft Products Are Terrible

  • Tight coupling approach to products and services
  • Documentation bias towards own products and services
  • This only works on windows
  • Plagiarism and stolen code from other vendors
  • Security risks and software glitches
  • Business model built on stolen products, services, ideas, and code
  • Market hijacking
  • Consolidation rather than any significant innovation
  • Windows copied from Mac
  • DOS copied from DEC
  • Bing copied from Google
  • Explorer copied from Netscape
  • All windows versions come with design flaws
  • Lack of separation between OS and application
  • Unrepairable codebase
  • Waste of resources
  • The dreadful blue screen of death
  • Unreliable as cloud servers
  • Trying to do everything but master of none
  • Terrible network management
  • Terrible at internet related services and products
  • Enjoys copying other competitors
  • Lots of security vulnerabilities
  • Forced sales targets for substandard products and services
  • Marketing gimmicks that breed lies and failed promises
  • Buying open source solutions to kill off the competition
  • Doesn't support open source community
  • Works on the vulnerabilities of ignorant customers
  • Ease of use can be subjectivity and at the detriment to lack of quality
  • Ignorant users are happy users
  • Forcing updates and patch releases for security failures in quality
  • Bad practices and foul play
  • Forcing users to use windows instead of linux or mac
  • Vendor lock-in and further use of the cloud to apply the same methodologies
  • Business as usual with anti-trust
  • Rigged tests and distorted reality
  • Bogus accusations
  • Censorship
  • Limited memory protection and memory management
  • Insufficient process management
  • No code sharing
  • No real separation between user-level and kernel-level
  • No real separation between kernel-level code types
  • No maintenance mode
  • No version control on DLL
  • A weak security model
  • Very basic multi-user support
  • Lacks separation of management between OS, user, and application data  
  • Does not properly follow protocol standards
  • Code follows bad programming practices
  • Anti-competitive practices to block open source innovation and technological progress

26 January 2020

Azure Sucks

Office politics, blame games, misrepresented costing, and misguidance are the result of why organizations still continue to use Azure. Microsoft has never been great with networking or anything that relates to internet services. The below highlights the many reasons why one should stay well clear of Azure.
  • Cluttered, unclear and inconsistent documentation
  • Active Directory use is everywhere so a nightmare to manage with resource groups
  • Tight coupling is literally in every aspect from implementation demos to service integration
  • Riddled with bugs across the service stack
  • Sometimes even Azure Consultants get the horrible blue screen while doing their demo on their shiny Windows machine
  • Nothing ever works properly, lots of unnecessary time wastage interfacing with their UI
  • Even the UI for their services violates basic human factors of interaction design
  • Metrics are totally useless, unresponsive, and meaningless
  • Support is useless, one could be spending time being re-routed and re-routed
  • Lack of consistency across services so the entire platform has bad integration and lacks coherence
  • Constant pestering from sales reps to convert to their enterprise plan without applying any said discounts
  • Platform uses ancient desktop methods which don't quite work in the Cloud
  • For every hosted service they provide, one can find an even better open source solution
  • All their implementation demos have a bias towards Windows, C# and Powershell use cases
  • Their AI and Bing services are utterly horrendous, even Azure Consultants think Bing sucks 
  • In fact, one has a slower time to market while being less productive and efficient
  • All their services have a Microsoft bias over Linux use cases
  • Usage costs on services and breakdowns is rarely very clear and transparent
  • Microsoft has a way of overly complicating simple things by creating UI experiences that don't work towards usability and responsiveness
  • Often people find moving away from Azure to AWS a pleasant experience
  • Azure is like an evil maze controlled by a circus clown
  • Too many services with little quality assurance that rarely work properly
  • Almost every service experience seems like a half-hearted effort
  • Increase in support costs as a result of an unstable and unreliable platform
  • For many cases 'this only works on Windows' continues to apply on Azure
  • Most of Azure's Quick Start Guides take longer to understand, will be easier to Google for even better guides outside of Microsoft realm, which not only will be quick but also clear
  • Almost every implementation demo seems to focus on Visual Studio, what about other IDEs like Intellij, and others.
  • Sometimes services may not shutdown when Azure says it has done it
  • Deployments and Builds are not simple but deceptively cryptic
  • Lots and lots of hidden fees and the costs pile up
  • Missing documentations that will make one pull out their hairs in frustration
  • Things break, aimlessly, and constantly like the entire platform is running in beta mode
  • Many of the Azure Services are box standard Microsoft desktop software that has been re-purposed and re-mapped for the Cloud

1 November 2019

Java Demise

The speed with which new versions are being released every year spells the end of Java in the practical business world in the foreseeable future. There are two release schedules each year (every 6 months) which is significant. The biggest hurdle for businesses is maintenance and resources. There are many products that are still dependent on Java 8 and while there is a requirement for commercial licenses for upgrades since 2019. The other being technical debt and backwards compatibility constraints especially when the product is implemented in Java and then sold to customers. In a very short span of time there have been quite a few changes to the language and an ample set of versions. One can say that the Java release cycle has exploded in speed that the majority of the community for all practical intents and purposes will not be able to keep up. What this also means is that the ecosystem of tools and libraries take a while to upgrade making it a frustration in management for the engineering and the support teams. The Java ecosystem is huge, the fall back mechanism with lots of boilerplate code, formal testing processes from lack of design patterns baked into the language, and dependency hell is a massive hurdle with the language. It seems like gradually more and more organizations will distance themselves away from Java in order to keep maintenance costs down, meet customer expectations and demand for new product features as well as to reduce complexity especially in mobile and cloud environments. Another susceptible reason is the Oracle ownership of the language and the expectations provided in terms of license for the end user. Unfortunately, there is a love hate relationship for the language in the community. Even if the language were to reduce in interest in the community, it would still appear as the underdog from under the covers and rear its ugly head as a dependency for other languages like Groovy, Kotlin, and several open source Microservices and Big Data platforms.