Jump to content

Assets - the lost potential

I remember when I first saw Insight in the Riada office and I was blown away by the potential. When Insight was split off into Mindville later I thought that Insight would take off like a rocket. And it did so well that Atlassian eventually acquired Mindville. I had no reason to think that Insight would not become a new product with Atlassian that would rock the world, but I was wrong. Very wrong.
In July 2020 Atlassian announced that they acquired Mindville and thereby took ownership of Insight as a product. Since then things have moved on for the Data Center version where things like improved UI and Auditing have been focus points, making it an even better administration tool for Jira Administrators.
For cloud... well, it has been pretty dead in the water.
Sure it has the base functions, but there are so many things missing!
Differences between Data Center and Cloud.
Import data types
Cloud: CSV, JSON, Assets Discovery
Data Center: CSV, JSON, Assets Discovery, DB, LDAP, Jira Users and Groups
Integrations
Cloud: Jira Service Management Services, Marketplace Integrations for Cloud
Data Center: Cloud providers (AWS, Azure, Google Cloud), Mobile device and software management (JAMF, SCCM, Snow), Other CMDBs (ServiceNow, Device42), Atlassian ecosystem (Jira & Bitbucket, Confluence, Tempo), Others (NVD)
REST APIs
Cloud: Public REST API, External Imports API
Data Center: Public REST API
Object schema templates
Cloud: Coming soon!
Data Center: ITSM, HR, FM
 
There is more...
While this just show the high level differences I think you can see that there is a substantial gap in high level functionalities. In addition to these changes we also miss features like the ability to upload scheme specific icons and automation. There is also no file management for CSV imports and so on.
 
The Gap is not the worst part...
While having a big gap between Data Center and Cloud is bad, there are other things that in my opinion are even worse and that is accessibility. I don't mean the UI, but the fact that on Data Center Assets is available for free, while on Cloud you have to double your annual cost and go premium to get your hands on it.
The fact that a single agent license cost a whooping $47 (compared to Jira Software's $15 per license) is cause for many mid-sized to large companies to immediately regret trying out Assets in Data Center.
This cost and the fact that you can not even try it out in a limited capacity make Assets something that only those willing to buy on a leap of faith, or people that already have experience with the product, to actually experience it. This is the same problem that Atlassian have with Jira Align and I think it is also why both Jira Align and Assets are growing a lot slower than they should.
Assets as a Jira System Administration tool is amazing
If you have used Assets on Data Center or Server, then you probably already know what an amazing tool it is to keep track of your Jira system. The Jira environment import not only spider though your system and keep you updated on changes, it is also a very nice one stop database for all your administration needs.
It will allow you to keep track of all integrations, service accounts and anything else that you have that is not directly included in the import. If you have a messy system with a lot of technical debt from migrations and things like that, then it is an amazing tool to keep track of what you need to clean up and what you should consolidate.
It also provides a very useful tool for your support desk where you can connect all tickets to existing configurations. For example, you can connect all configuration requests and automatically assign an approval to the project lead. This speed things up and you can simply ignore tickets that are not approved, seriously reducing time you spend on tickets.
If used correctly you can also connect all tickets to the configurations involved. This type of historical documentation really help to maintain your system well-kept and organized.
I hope to see much more development on Assets Cloud
I really, really like Assets. It is one of my favorite features for Jira Service Management and as such I really, really hope we will see a lot of improvements when it comes to the Cloud version. The Jira environment import is a must I would say, but also AWS and Azure import is really, really important. I think many will also miss both Tenant and Yamf imports.
When it comes to the Jira environment import it has some areas where it should absolutely be adjusted. For example, you should be able to follow the full chain of configurations regardless of starting point and there is no Permission schema, which is odd on Data Center.
The road forward if I was in charge
I am no fan of the forced Premium features that Atlassian have. I think it goes against their core values and I think you should be able to explore all products regardless of subscription level. So what I would do is either break out Assets as its own product or add it for free with limitations in the free subscription tier.
If you can make 3 schemes and only have 1000 items in each for free, then more people will want to try it out. More people trying it out means that more people will see how useful it is, and more people will want to get the full version. More people means that more companies will build more apps for it... and so on.
--
Well, for now I will continue to enjoy the amazing features that Jira environment import provides on Data Center. I hope that one day I will not only consider moving to Cloud, but actually yearn for it!
Let's get Assets on Cloud Amazing!!
Jimi Wikman
By 💫 Jimi Wikman in Jira Service Management ·

Let's build a two site support setup with Atlassian Products - part 1

I currently own two websites, atlasstic.com and jimiwikman.se. and I want to set up support for both of them. I don't want to spend a lot of money doing so, as I have other things to sink my money in, like hosting for example. So I want to set up a dual support using just one license. To make this a bit trickier I want to make it so that the two setups will feel and look completely different.
So let us plan this shall we?
So I have one Jira Cloud instance and one Confluence instance. The Jira instance is a premium license, because I want to play around with Advanced Roadmaps. I have a standard Jira Service Management on top of that and my Confluence setup is also a standard setup. I want to take advantage of all the Atlassian products I can, so I also have Jira Work Management, Jira Product Discovery, Compass, Bitbucket, Status page, Trello and Beacon. So I have a pretty extensive toolbox to play around with.
My Key add-ons at the moment are Refined that I will use to split the support portals, Scriptrunner for all kind of magic and Microsoft 365 for Jira for all email/teams/Jira combinations. I am also running BigPicture Enterprise and StoryMap for planning and for making some videos.
One Support project for both sites.
The core of the support setup will be one Jira Service Management project where all tickets from both sites will aggregate. This makes sense since there are not a lot of tickets flowing in. If I want to split this later on that will not be a big problem as Refined allow us to make these changes quickly and with ease.
I want to show open incidents and tie in Status Page to show on the portal. I also want to display Confluence pages to answer common questions, but as a content block and to show when a user writes a ticket. Since I have two sites I want to have this with two sets of projects and spaces.
For support, I want to have different types of requests depending on what the person submitting a ticket for wants. I also want SLAs to measure my response and resolve times as well as timers to help count down and remind customers automatically in different time intervals. I want to automate the status transitions during conversations so I don't have to change the status manually every time.
Let us plan the project setup
The first thing we need to do is to plan the issue types so we know what kind of requests we want to handle. While you technically can use any issue types as you will define the actual ticket types, there are some nice features built into Jira Service Management that we can use.
ITSM is a pretty good standard for must use cases and in Jira Service Management we can add those under Features in the project settings. So in the Work categories section we will activate Service requests, Incidents, Problems and Changes. We will also activate post-incident reviews but mostly to try that out rather than it being anything we probably will need. As I don't have Premium I can't activate Customer Service Management, so we leave that one for now.
 

Now that we have these activated we will get extra sections in our project that act as Queue categories, which is very nice. Since we have these defined now as sections, or categories really, it makes sense to also have these as our issue types.
The next step will be to map the different request types towards these sections.
Planning Request Types
The first thing we need is something for when people email in. This will allow us to separate these from other requests as the quality of these are usually very poor compared to portal created tickets that we can control the content from. We also need an incident type, so people can report problems of course. I do get some collaboration tickets also of various types, so we need something for that. Suggestions sometimes come in as well and we want those to go to Jira Product Discovery for processing. Legal is always good to have in case we get requests or demands from legal sources.
So, let us break that down into actual request types:
Incoming Email Incident Collaboration Suggestion Legal General questions I think that will be a good start and then we can build upon that later when we see the need for it.
Asset Management
I love Jira Assets and I work extensively with it in my role as Atlassian Platform Owner at Sinch, but in order to use Assets I need the premium version of Jira Service Management. At $47 monthly for just one Agent that is a bit much, so we will settle for the very limited Services feature for now. It is not a very good feature compared to the actual Assets product, but it will work for connecting tickets to the different parts of the two websites.
Create the project
Based on this we can go ahead and create the project. We could go for the ITSM template, but it adds a lot of things that we don't need that we just have to clean up later, so we go for the blank project for IT teams instead. In the screenshot below I had to add another Key since I already have this setup. I choose company managed because I like structure and order and I do not like team based projects.
Now t
Now that we have the project it is time to tweak some things and I started with the issue types. I decided that I would change them up a bit and this is the list I can up with.

As you can see I have created a new Issue Type Scheme since I like to name things so they look good rather than having generated names. On top of the four standard issue types that comes with ITSM (Incident, Problem, Service request, change request) I also added one for Post Incident Reviews since we have the feature activated. I also added Ask a question for more open type and then Consultation for collaborative things. Finally, I added one issue type for Email request as well.
From there we can now begin creating the request types and the forms we want to go with each request type. I just add them one by one and map them to the request categories and issue types.

Most request types end up in Service Request, but we get a few in each except for Problems. This is fine as problems are internal tickets.
Building the Request Forms
I like my tickets clean without too much clutter, so when designing the request forms I go super simplistic and then I can add later if I need to. I also like to use Forms since that allow me to ask for any type of information without adding a ton of custom fields.

For the request form itself I always make sure I have the Summary field, even when I work with Forms. This is because the summary is what trigger the suggestions from Confluence and it also ensures that I get variations in the summary instead of having them all the same if you choose to hide it.
At the bottom you can see that I have added a form to this request type as well, which we will cover in a different post.
 

For the Issue View I just have the Description and Summary in the top section for this and then I add the fields I feel I want for this request type. I did add tabs for this project and I will show how I did that in another post so you can see how that looks and what you can do with it. Adding the tabs require you to go to the Screens and this article is already a bit long.
Since we do not have that many request types I will just add two Portal categories, one for General requests and one for Incidents for now. We will experiment a bit with this in Refined later so we might come back and adjust this then. As we can place individual request types in Refined rather than just display the project setup, this is not as important as if we had not used Refined.

Now that we have our issue types and request types setup we need to create the workflows and set up the automations we will use. This is the topic of the next article, so if you like this so far make sure you keep an eye out for the next chapter.
This is a rather high level article, so let me know if you want me to dive deeper into a topic in another article.
Jimi Wikman
By 💫 Jimi Wikman in Atlassian General ·

There is a problem with Jira Service Management escalations...

If you have worked in a larger company you probably have noticed that escalation between the different support tiers cause a lot of problems. Perhaps you even notice this in medium or even small companies as well. The reason for this is that Jira Service Management is missing functionality that is needed for escalation to work properly. For a tool that claim to be an ITSM tool, this is quite strange, but well in line with the way Atlassian thinks about their products.
If you are unfamiliar with ITSM and support tiers, then I suggest this nice article as a starting point: https://www.bmc.com/blogs/support-levels-level-1-level-2-level-3/. If you don't want to read all that, then the short summary is that in ITSM support is set in multiple levels of technical expertise.
It starts with a basic support, which is to answer the most obvious questions and to make sure the tickets have enough information. Then the tickets Tier1 can not solve goes to Tier 2 which have more technical knowledge and so on. You can have as many tiers as you want, but most models have 3 or 4 where the last tier is outside help towards vendors for example.
Jira Service Management does not support collaboration
This might be a strong statement, but in this case I feel it is actually true. Maybe we should say handovers, which is what we are actually talking about, but since communication has to remain constant towards the customer I feel that this is still true.
So what am I talking about?
In Jira Service Management today there are hard boundaries around the projects that can not be bridged without harming customer experience. What I mean by that is that in order for me to hand over a ticket to another team I am restricted to 4 options:
Have everyone working in one giant monolith project. Move the ticket to another project. Clone the ticket to another project. Create a linked ticket to another project. Before we dive into what these 4 options mean, let us first define what our customers expect from the interaction with support. From a customer perspective they have a problem, or a request of some sort and they have done their job by submitting a ticket to support. They now expect support to handle their request and solve their problem in that ticket. This is a fair expectation and if we break this expectation they will experience frustration.
1. One Monolith to ruin it for all
This is by far the most common way to work in small companies and it is how Atlassian envision us using Jira Service Management. One box where everyone that needs to be involved have a role. The problem with this setup however becomes very apparent when you start to grow as an organization, or when you start to have multiple products and services with shared resources.
Not only will there be a lot of people in the project, perhaps several hundred people or thousands even if the organization is large, internationally distributed or need to handle multiple companies setup because of company structure or acquisitions. To be able to make sense of a large instance with many teams you need to make a lot of queues and this is where the first problem is with Jira Service Management today: There is no nesting of queues. You have to get an add-on to handle that, which add cost to your already quite expensive platform.
The second problem is that when you mix many teams in one project, you will start to add complexity as the various teams want to customize their experience. You will start to build automations with multiple exceptions, you need to start adding local groups with all the problems that come from that and you will have subsets of screens connected to customized issue types and... well you get the idea. It quickly becomes messy and soon you will have manuals for how to work based on what type of request for which team you are working for to navigate all those custom fields that confuse everyone.
This is a horrible way of working.
If we instead work with Jira Service Management where we have an IT Support desk for first line support (Tier1) and dedicated projects for Tier 2 and Tier 3 teams, then we are in a much better place. But there are still issues...
2. Move ticket to another project
Our first option when not working in a monolith when we want to hand over a ticket to second or third tier teams is to move the ticket to their project. It makes sense technically because the tier 1 team will have no more involvement with this ticket and it should not be handled by another team.
From a customer service perspective it is a terrible option, however. Not only do you break all old communication because by moving you are now changing the URL and the ticket ID. This will make all old communication useless because links will not work and the poor customer no longer can reference the ticked ID as they now have a new one.
Technically you also have permissions to consider and if you do not have the same setup the customer can lose access to their ticket all together. The information in the ticket can also vanish if you do not use Forms and the custom fields are not the same in the projects.
Any SLA you have will also be ruined since each project have their own SLA and when you move a ticket the SLAs will be reset as they are counted again with the new SLA in the project they are being moved to.
In short: Never move support tickets if you can avoid it.
3. Clone the ticket to another project
This is an even worse solution than moving the ticket. Not only do you get all the negatives from moving the ticket, you also duplicate the information. This means that the customer now have two identical requests, but you also have different statuses and different communication. If you for example clone the ticket and then close the initial ticket, the customer will get a notification that their request has been closed, which will confuse the heck out of them when they then get a reply in a ticket that look identical, but with a different ID and different URL.
In short: Never clone a support ticket unless you REALLY want to frustrate your customers.
4. Create a linked ticket to another project
This is very similar to cloning the ticket if you are doing it wrong. That would be that you create a linked ticket and assign it to the customer. Then it would just be a cloned ticket you have linked.
Used correctly however that creates a separate conversation between the two teams. This is how it should be used in Incident Management for example where we need activities to be performed in development or Infra teams for example.
This will not help us in our scenario where we want to make a handover, however as the customer conversation still will be in the original ticket. We could build an automation that sync the conversation between the original ticket and the linked ticket, but since that will be posted as the actor in the automation communication will look very bad on both sides.
We will also still have to keep the original ticket open in the project for the Tier 1 team, even though they no longer have any involvement. The customer experience might be ok, but the setup will clutter up the queues for the Tier 1 team. The Tier 1 team will also be responsible for the SLA, which means that they might unfairly get bad SLA results because of the Tier 2 team activities.
In short:  this is probably the best option, but it is not very good.
 
How do we solve this then?
Without knowing the architecture of Jira Service Management the suggestions here might be more or less difficult to accomplish, but I will make the suggestions based on the customer experience and UX rather than architecture.
1. Change Queues to allow tickets from any project
I can not for the life of me understand the architectural decision to restrict this when boards have had this functionality forever. Just this small change alone will make Queues so much more useful and it will allow teams to work with multiple requests from one area. Queues for Jira Service Management have the right idea, but they focus on local groups, which any sane Jira Administrator avoid like the plague, especially if they already sync users with the AD.
Make Queues like boards so they can be attached to projects or a user. Not only will that allow teams to work cross projects, but it will also open up for different views that can lead to add-ons or native improvements to how support in general can be designed.
2. Add account sync to automation
It would be very nice, not just for thise scenario, to be able to synch comments WITH the account that made the comment rather than using the automation agent as the author. This will allow for a better customer experience and it will make many types of setups feel more seamless than it does today.
3. Build a native handover function
While we can work with custom fields to handover ticket between queues if we get the change to queues to allow data from any project, I would much rather see a native function in Jira Service Management. The reason for that is that it would allow extending that function with more innovation and standard functionality.
The way I envision it a customer agent would just click on a handover link or button and then get a screen like the move screen. There they can select what project they want to hand over to and possibly what team. A comment field can be there by default if they want to add an internal comment as well.
When the support agent submits the ticket is flagged as handover and in their project it will no longer be visible by default in the original project (as it has been handed over). There should be a way to set up a queue to see all handover tickets however if that is wanted. This action will also trigger a new ticket in the project the support agent handed over the ticket to.
What makes this different from just a linked ticket then?
The first change is that the handover ticket work like a cloned ticket with the same information as the original ticket. This means that reporter for example is the customer and not the support agent as when you create a linked ticket.
The second change is that all comments are synced between both ticket with the account information on who made the comment. This way the communication is seamless from the customer perspective and the support agents. It also means that everything is synced toward the original ticket, making that the master regardless if the ticket has been handedover due to escalation.
If the handover ticket is handed over, then the same steps should happen, but the sync should now be done twice, once for each of the tickets in the chain.
What about the workflows?
This is a problem as many teams what to have their own workflows. As we can not, or want to, force people to have the same workflows, we need to figure out what status we will show to the customer. Each ticket will of course show whatever status the team put it in so they can follow their workflow in Jira Service Management, we just need to consider what to show to the customer in the portal.
I can think of several ways to solve this.
The first solution is to just add a label instead of using the workflow. This label can just say Escalated for example and the label stays until the ticket is closed. It is simple, but perhaps not the best from a customer experience perspective since the status actually is communication.
The second solution is to choose either the original ticket workflow or the handover ticket workflow. This can cause some strange scenarios if there are many different statuses between the original ticket and the handover ticket. Having status change from in progress to Open or New for example might be a little weird. While that can be fixed with not changing status from the original ticket to the handover ticket until it has moved at least one transition, it is not fool proof and can be confusing.
The third option is to treat this as some form of integration so we setup a mapping between different projects. This would be a massive thing to build and a pain to manage, but if done well it could probably be used for other things as well. This require you to do a lot of work also every time a new project is added that you might want to handover to.
The fourth option would be to present a choice when you transition a hand over ticket with the combined list of statuses from the original ticket or the handover ticket. It is messy and pretty much the same as #2, but less useful.
There are of course more solution to this, so if you have a good suggestion, please add it in the comments.
Communication must be taken seriously
Regardless how we look at support and what solution we prefer for escalating to other teams, we must remember that communication is key. No matter how good we are at solving problems it means nothing if we agitate the customers by not communicating while we solve their problems.
By breaking communication in any solution we have today, or forcing teams to be suboptimal by working in monolith projects we are limiting the potential of providing exceptional support to our customers.
I think we should take this seriously.
What do you think?
Jimi Wikman
By 💫 Jimi Wikman in Jira Service Management ·

Benefits of Using ReactJS for Your Web Development Project

Introduction
ReactJS Development Company is a software development firm specializing in the development of web applications using the ReactJS library. ReactJS is a popular JavaScript library for building user interfaces, and it is known for its improved performance, reusable components, ease of use, and strong community support. At ReactJS Development Company, our team of skilled developers has extensive experience in building complex and scalable web applications using ReactJS.
Our developers have a deep understanding of ReactJS and its capabilities, and they use this knowledge to build high-quality, user-friendly web applications that meet the needs of our clients. We work closely with our clients to understand their requirements and to create customized solutions that meet their unique needs. Our goal is to deliver web applications that are fast, responsive, and user-friendly, and that provide a positive experience for users.
At ReactJS Development Company, we are committed to using the latest technologies and best practices to deliver high-quality software solutions. Our development process is guided by Agile methodology, which allows us to rapidly iterate and make changes based on feedback from our clients. This ensures that our clients receive software that meets their needs and exceeds their expectations.
Whether you need a new web application or are looking to upgrade an existing one, ReactJS Development Company is here to help. Our team of experienced developers is ready to work with you to build a custom solution that meets your needs. Contact us today to learn more about how we can help you with your web development project.
Advantages of Utilizing ReactJS
ReactJS is one of the most popular JavaScript libraries for building user interfaces. It was developed by Facebook and has been widely adopted by the web development community since its release in 2013. ReactJS has a number of benefits that make it an excellent choice for web development projects, ranging from improved performance to ease of use.
Improved Performance
ReactJS uses a virtual DOM (Document Object Model) to update the user interface, which results in faster and smoother updates to the user interface. The virtual DOM is a lightweight in-memory representation of the actual DOM, and React uses this representation to make changes to the user interface without having to directly update the DOM, which can be slow and resource-intensive. By using the virtual DOM, ReactJS is able to update the user interface much more quickly, resulting in a better user experience.
Reusable Components
ReactJS allows developers to create reusable components that can be easily shared across multiple projects. This makes it easy to build complex user interfaces, as developers can break down the interface into smaller, reusable components that can be managed and maintained separately. This also leads to better code organization, as components can be organized into a structured hierarchy, making it easier to understand and maintain the codebase over time.
Ease of Use
ReactJS is a very easy-to-learn and use JavaScript library. It uses a syntax that is familiar to most web developers, and its component-based architecture makes it easy to build and manage complex user interfaces. Additionally, ReactJS has a large and active community, which means that there is a wealth of resources available to help developers learn the library and solve any problems they may encounter.
Server-Side Rendering
ReactJS supports server-side rendering, which can help improve the performance of web applications. Server-side rendering is a technique where the user interface is rendered on the server and sent to the client as a complete HTML document, rather than being generated on the client. This can result in faster initial load times, as the client does not have to wait for JavaScript to execute and render the user interface. Additionally, server-side rendering can improve the SEO of a web application, as search engines can crawl and index the HTML document more easily.
React Native
ReactJS has a sister library called React Native, which allows developers to build native mobile applications using the same components and concepts used in ReactJS. This means that developers can build cross-platform mobile applications using the same codebase, which can save time and resources compared to building separate native applications for each platform. Additionally, React Native uses native components, which provides a more native feel to the user interface compared to hybrid mobile applications.
Strong Community Support
ReactJS has a large and active community, which means that there are a wealth of resources available to help developers learn the library and solve any problems they may encounter. Additionally, ReactJS is maintained by Facebook, which ensures that the library is well-supported and updated on a regular basis. This provides a level of stability and reliability that is not always present in other JavaScript libraries.
Improved Productivity
Finally, ReactJS can help improve developer productivity, as it allows developers to build complex user interfaces quickly and efficiently. Additionally, its component-based architecture makes it easy to manage and maintain code, which can help reduce the time and resources required to build and maintain web applications over time.
Conclusion 
ReactJS is an excellent choice for web development projects due to its improved performance, reusable components, ease of use, server-side rendering, React Native compatibility, strong community support, and improved productivity.
 
selena emani
By °selena emani in Development ·

Related Pages for Confluence - discovering content just got easier

Related information has been used on written content since it's inception, and now Confluence is adding functionality for this as well. It is a feature that not always is welcome, however, but don't worry, you get plenty of control to decide if it should be used or not. Not just per space, but even down to page level.
While we don't have specifics on the algorithms that make this new Related information work, but we can probably assume that labels and keywords in title and headers in the content is used somehow. We do know that the related pages will honor permissions, so you can only see pages you have access to. The official information have this to say:
When this rolls out, it will be turned on by default, which may be a bit annoying. Fortunately, you can turn this off for whole spaces in the Space settings under Space settings > Related pages. You can also turn this on or off on individual pages under More actions (•••), then Advanced details > and either Show related pages or Hide related pages.
In the first iteration of related pages, it will not support Blogs or Jira Service Management customer portals. While this might seem strange as these two areas are where you normally would use this feature, but I think it is a good thing as they can tweak the algorithms a bit before taking that step. This should help make that feature better when it is released. This should help a lot with support if the algorithm is good enough, which I think it will be once they get some data from Confluence usage and tweak a bit first.

 
Jimi Wikman
By 💫 Jimi Wikman in Confluence ·

Internet Explorer is dead - Internet Explorer is officially retired and out of support

Internet Explorer is DEAD. Finally. After decades of making lives miserably for thousands upon thousands of front end developers across the globe, we can finally celebrate the end of Internet Explorer. For me, this is a great relief and yet another remnant of the Steve Ballmer area that I am happy to see put to rest. Microsoft will not put their efforts into Microsoft Edge, which like most things that has been introduced under Satya Nadella seems to be pretty good.
Microsoft has finally announced the death of Internet Explorer as they officially retire and end support for Internet Explorer 11. It has been a long time coming, and many of us old people have grown up with Internet Explorer. Some of us even remember the battle with Netscape, back in the days before Netscape became Mozilla and then re-invented itself as Firefox. We have seen Internet Explorer almost gain monopoly status, only to slowly die as Firefox and Chrome ate away the market share.
As frontend developers, many have cursed over the course that Microsoft steered Internet Explorer under Steve Ballmer's reign, always insisting on having its own quirks that forced countless hours to "fix". For many years, front end developers had to support the hated Internet Explorer 6 because it had been built in into many company solutions at the time. It was hell. Pure and simple.
Ever since, Internet Explorer has been despised for its reluctance to conform with standards the other browsers agreed upon and for the need to polyfill and CSS hack just to make websites cope with the madness.
I, for one, are glad that Internet Explorer is dead.
Now, rest in peace and long live Edge.
 
Jimi Wikman
By 💫 Jimi Wikman in Interesting ·

Upcoming changes to Epics - finally getting some flexibility for Epics

Back in December 2021 Atlassian announced that there would be some changes coming to Epics and in April we learned that Epics would see an update to how Jira manage Epic Name and Epic Summary. What does all this mean, and when can you expect to see the changes in your Jira instance? Let us dive into the information we have and see if we can answer those questions.
Why is Epic changing?
Having the ability to change, or rename rather, Epics have been requested for well over a decade and up until recently it has been ignored. It was only when SAFe started to become popular that Atlassian started to consider this, however:
This is not the only change that SAFe have initiated and for everyone working in an enterprise company where small agile teams may not be the norm, this is a positive thing. I will talk more abut that in the future.
So what is happening to Epics?
The changes are pretty big from a technical point of view, but even from a consumer perspective, there are pretty big changes as well. The reason for this big change is that Atlassian is merging features from Advanced Roadmaps into the core Jira experience. In doing so, they change the old architecture quite a bit and things will certainly move round a bit as a result.
Here is what will change:
Move issue hierarchy in Advanced Roadmaps to your admin setting Rename Epics will reflect everywhere (no more language hacks) Change what Epic fields are shown in different areas New colors based on team based projects Epic link will become Add Parent and move to breadcrumbs  
Move issue hierarchy in Advanced Roadmaps to your admin setting
The issue hierarchy that currently reside inside the settings for Advanced Roadmaps will move to the global Jira admin settings. You will find them under Issues by heading to: ⚙️ Settings > Issues > Issue hierarchy. This means that even if you do not have a Premium license, you will still be able to see these settings and when the Epic changes roll out you can edit the name of Epic from this area.

 
Rename Epics will reflect everywhere (no more language hacks)
This is a big one and the one that has been causing frustrations for many, many years. Once you rename the Epic in the Issue hierarchy, you need to rename the Epic issue type as well, and then all areas where Epic is referenced you will see the new name instead. So if you rename Epic to Feature, you will see Feature everywhere you see Epic today, including the Epic side panel in your backlog!

 
Change what Epic fields are shown in different areas
This is more of a technical change, but what it means is that what currently is shown in the backlog will see some changes. This could cause some issues that you might need to adjust when the change happen in your Jira instance.
Epic name → Issue summary
Currently, the board and your backlog show Epic Name and after the update it will instead show the Issue Summary. This make more sense, and I suspect that we will see the Epic Name removed in the future as Atlassian adjust Epics to be presented the same way as other issue types. If you have been putting different information in these two fields, then you need to update them to be the same before the changes happen. There are several solutions for this, but I think the solution Bogdan Gorka suggested in the Atlassian community using automation seems like a good way to do it.

 
Epic status → Issue Status Category
In the current solution you have Epic status, which is only available in the Epic panel, that define what Epics should be shown in the Epic Panel. In the new solution, the Epic panel will instead look at the Issue Status for each Epic to determine if it should be shown or not. If the Epic issue is in a green status (done), then it will not be shown, unless there are still open issues inside the Epic.
Again, this makes sense as it shift Epics to behave the same way as other issue types, which align behavior in Jira.
 
New colors based on team based projects
This is something that comes from team managed boards, and I am guessing this is an architectural decision to have a uniform design that can be expanded later using the Parent Link feature from Advanced Roadmaps. In Theory, it would allow you to treat any parent link the same way, and you could set any story color to the issue. To make that useful, there would need to be a change to the Epic panel to show the levels above epic as well somehow.
For now however this will just be a slight color shift when the upgrade comes as the upgrade will match the nearest color.

 
Epic link will become Add Parent and move to breadcrumbs
Perhaps the change that will confuse users the most is that the Epic link will become Add Parent and that this functionality will move from the standard locations to the breadcrumbs. This makes sense from several perspectives, but it will have a learning curve for many users. Changing the Epic Link to the Parent link from Advanced Roadmaps will once again align Epics with other issue types and allow for a uniform handling of the issues hierarchy.
 

 
 
My Opinion
This is a great change, not just because it will allow us to change Epics to Features (or whatever we want), but also from a technical perspective. It breaks down Epics unique behavior and replaces it with something that can scale, which is exactly what I have wanted for more than a decade.
In the screenshot over the new issue view you also see that there is a pretty significant change to naming for subtasks as well where we now instead see "Child Issues". This is again a way to make way for a more flexible structure that is uniform regardless of level.
This is absolutely a great step in the right direction from Atlassian and it makes me very happy to see.
Jimi Wikman
By 💫 Jimi Wikman in Jira ·

Jira harder to control - Jira projects slowly becoming less collaborative.

In the last few years, Jira have moved more and more towards JIRA project isolation. This is causing problems for companies that are working collaborative across multiple JIRA projects, and it is becoming increasingly difficult to use because of that. In a short period of time boards have become almost unusable where cross-linking projects cause things like roadmaps and scrum boards to stop working. This is a mindset issue, as well as an architectural one.
It is clear that Atlassian's tools are focusing on an Agile mindset, focusing on Scrum and Kanban. This has always been the case, but it has never really prevented anyone for using their tools in a more traditional way as well. In recent years however this has changed and with the introduction of team managed projects this has taking a turn for the worse.
With the introduction of team managed products, we have seen product development becomes increasingly fragmented and teams within Atlassian seem more and more isolated. This is typical for organizations working with Agile teams, and we also see this in the new products that are more MVPs than full-fledged applications. This fragmented way of working seem to cause not just alignment issues between the different Atlassian products, but it also seems to affect the architecture as well.
 
The architecture is all over the place...
If we look at the very basic architecture, we have "projects", which is the highest level of grouping data. This is what we have configuration for, like what issue types, workflows and custom fields we have for that set of data. Projects are divided between Team Managed and Company Managed types, where team managed are unique and isolated projects where anything goes and company managed are controlled and globally defined projects.
On top of this, we add a board, which is a visual representation of a filter in either a Kanban or Scrum view. This is not something that I would consider "optional" because a project without a board is pretty useless. The boards are divided into four areas:
Roadmap - Featureless Gantt using Epics that only work with data from one project. Backlog - Basic list with priority and iterations/status for selecting items to work on. Scrum features stop working if you add generic fields to bring in with a specific project attached to it. There is a hard limit of 5000 issues that will actually shut the backlog down if you hit it. Active sprints - Basic column based structure that you map statuses in the workflow to. Hard limit of 500 subtasks that will shut down this feature if you hit it. Reports - Basic reports for different purposes. As boards are defined based on a filter and filters can include any data from any project and since it is placed on top of a project you would assume that the data would be presented within the configuration of the project. Strangely, it does not because boards actually override project configurations and allow for customizations, even on Company Managed projects.
This makes little sense, since the purpose of having a company managed setup in the first place is to ensure that the setups are the same. If each project can define their own views and configuration of estimates, for example, then what exactly is company managed?
Things like that data from multiple projects can cause problems, like the roadmap being able to change from multiple projects is easily managed by adding permissions for who can and can not change things. A simple check to determine origin project and then who have permissions to make different changes in that project already exist, but it is not used in the roadmap.
Disabling whole boards because of generic queries like "Related System[Dropdown]" = Jira" for the simple reason that it is not specific in terms of what project the issue belong to is a decision I do not understand. Sure, it can add overhead to the query if there are a lot of issues and a ton of customization, but that is solved by having a cache for every board that you check delta for on load instead of dynamically load all items. You also only load data for the listing and then fetch additional data on request.
The limit of 5000 issues in a backlog is not just stupid, it is borderline illegal as it is an unknown limitation that cause denial of service. What makes this worse is that this limit does not just count the issues, but subtasks as well. This makes no sense in a Scrum board where subtasks never show up, and for a Kanban you should be able to turn this off in the settings.
The Atlassian Agile Attitude
This attitude towards technical architecture is not really surprising considering Atlassian is very open about their culture and how they approach things. Atlassian is very dedicated to Agile and especially Scrum, and that bleeds into everything they do. When asked about these problems, the response has been that Agile teams don't need to collaborate as they are empowered and self-organizing. Having a 5000 issues cap is not a problem for Atlassian because an Agile team never have that many issues, so if you do then you are not Agile.
Don't get me wrong, these are all valid responses, IF everyone that used Jira was doing Scrum the way Atlassian defines it. They are not. The vast majority of companies, especially the larger companies, are NOT doing scrum. Or any other Agile ritual for that matter. There are product discovery teams for sure, but in general companies do product delivery, not product discovery. Just check to see how many UX or CRO experiments are currently running in any given company, and you probably will find there are few, if any.
This mentality is also what is consistently blocking requests that go outside the Scrum sphere, like having estimates on subtasks show up on the story in an aggregated form or any form of resource and finance management in any of their products.
It will only get worse
I hate to say this as I like the products, but I have a feeling that this is only going to get worse, at least for another 5 years or so when we will either see Atlassian change directions or another product has emerged that better fit the way companies work. Atlassian is doubling down on the Agile mindset and you can see it in the products where they regularly remove functions and new products seem to be half done with little to no connectivity to other products. This would be ok if the new products would see rapid development once released, but that is not the case.
So I am afraid that if you are looking for a tool to manage projects and tasks where you can set a standard for your company to follow, then Jira may not be the tool you are looking for. Not because it is very bad today, but because it continues to degrade as a uniform tool.
If you on the other hand are looking for a flexible tool that your teams can adjust as they see fit in a snow globe type of setup that is great for design and explorative situations, then you are probably better off with Trello or Asana to be honest.
If you are in need of a predictive tool for financial planning, then none of the Atlassian tools are what you are looking for. Atlassian doesn't support traditional financial structures, as Agile is an exploratory ritual. This could change however as Atlassian is focusing a lot on SAFe it seems and as you probably figured out by now SAFe is a traditional steering renamed and repackaged. So we could see more support for predictive planning tools because of this.
Is there no hope?
Of course, there is hope. Atlassian just must start to focus more on what companies actually need and less what they think they need. To do that, they have to look at the bigger picture and they have to focus on what matters most to all companies: finance. While they have a tool that is supposedly targeting this area it is way too expensive and since you can not test it, it still remains a tool you have to buy on faith alone.
The first thing should be to implement proper team's setup with resource management. Make teams assignable and take a look at BigPicture that have most of what you need: workload plans, holiday plans, absence management, skills, roles and of course time allocation. Connect other applications like Confluence to allow for team spaces only visible in the teams section as well as basic information like contact information, team lead and connected systems from Insight.
The second thing is to stop the Premium nonsense and just have one product. Locking key products like Advanced Roadmaps and the old Insight asset management in a price tier is plain stupid. Not only will you prevent your own products adaptation, you also annoy the customers that are forced to pay for things they don't want. At twice the regular cost, no less.
The third things that should happen is to add seamless integration of the products. If you have ever seen a user trying out OpsGenie from Jira Service Management, then you know what I mean. New products like Atlas should be clearly be marketed as separate products, just like Trello, if they do not connect to the basic Atlassian ecosystem.
Make issue hierarchy open to everyone to define. Have predefined sets for Agile or SAFe setups, but make it open for everyone to define their setup instead of locking down every user in a structure Atlassian want. We are already getting new features for the Epic, which is a great addition, now take it to the next step.
Finally, make boards useful again and remove the caps and the breaking of features if you cross Jira Project boundaries. Add the color background feature from Business projects and allow for any colors instead of a defined set.
My Opinion
In my opinion, Atlassian is moving in the wrong direction in some cases. In other cases, they are doing great things. If you are working in an organization with a project based financial structure that is based around a set of portfolios and budgets, then you are probably hurting right now using Atlassian products, with add-ons.
I also feel that Cloud is way too much of a playground right now, with little to no way to mitigate negative changes when Atlassian destructively removes features from their products. If you are on DC and are considering a move to Cloud I would strongly suggest you reconsider that unless you really know what the result will be and how your workforce will be affected with the limitations and constant updates that you can not control.'
If you are already on Cloud, then keep careful watch on what is going on as information on changes that destructively remove features is rarely very well announced and you have to follow the community forums like a hawk to spot them. Also make sure you frequently check the well hidden suggestion and bug section of Atlassian and submit requests and bugs when things dont work or when you have features removed from the systems.
Working with Atlassian's systems is a bit bumpy at the moment, but it is never boring!
Jimi Wikman
By 💫 Jimi Wikman in Jira ·

The Problematic Epic - the undefined term that cause confusion

Epic. It sounds so cool and people love to use it. It is that bucket of undefined things that is just...large, that we love to throw things into and proclaim that it is an Epic. But what is an epic? There lies the problem, because the term Epic is defined in many ways in different methodologies and in different levels of the organization. This makes the Epic arbitrary and confusing, because the value of the epic depends on the context, which is rarely known.
Most people are familiar with the Epic through a tool like Jira or ServiceNow. These systems have adapted the Agile, or rather the Scrum, which defines an Epic as "a big chunk of work, which can be divided down to smaller bits". Atlassian, the makers of Jira, takes that a bit further:
So in both examples it is something big that can be broken down. In other words, it is something that has not yet been broken down fully and remain a bit vague because of that. This vague definition of something big, cause all kinds of problems, especially if what the Epics are broken down to are poorly defined.
In Jira for example you have a Story (Not User Story as defined on their website. A User Story is related to Requirements, not tasks), which in the best case will be defined as some form of work that can be done within an iteration (sprint most commonly). This means that you can have pretty much any size of task in a story, and it can be anywhere from full features to a small configuration.
Since much work starts on the business side even in Jira, then it is very common to have the Jira Epic turning into a Portfolio Epic...
 
Portfolio Epics in SAFe.
If we go up a bit within the Agile sphere, then let us see what SAFe says about their epics:
SAFe even have a specific definition to define that an Epic is not a project, which should tell you how vague the Portfolio Epic is in SAFe. It becomes even muddier when Portfolio Epics in SAFe leads to Business Cases with high level estimations, which projects also need. The difference seem to be that the Portfolio Epic is a funding without scope or time frame, which to me is the same as an extra budget for research and development or some form of business operation scenario.

Epics everywhere...
Epics can be found pretty much in all tools you look at, and in companies you will find that the term "Epic" is just as abused as the term "project" or "Initiative" as it is applied to everything. Are you working with strategic themes? I bet you have some strategic Epics as well, right? How about focus areas? Do you have epics there as well, maybe? How about your requirement process, I am sure you have heard your product owner talking about Epics on multiple levels as just things that are undefined in their mind?
Just to make things worse, you even have methodologies named EPIC.
 
Epics in traditional development.
In traditional development, we don't have Epics, but we can translate it based on the definitions used in Agile. I found this definition I thought fit pretty well:
I think Epics are more similar to top-level requirements, but I think the fact that they can also be similar to mission threads illuminate the problem with Epics. As a top level requirement it fit both the team or system based focus as in Agile methodologies like Scrum, but it also fit the SAFe Epic definition, which I think is interesting.
That would suggest that an Epic is defined on the level where it is placed and depending on how you divide between need and requirement the term Epic would be a top-level requirement in both situations, or they would be a top-level need when defined as a SAFe Epic.
 
So how should we think about Epics?
Regardless if you work in an organization that claim to be Agile or not, you will most certainly come across the term Epic. If not in your systems, then people will use the term based on how they have used it in the past. So you need to deal with them and you need to define them in a way that makes sense for every scenario.
My suggestion is that you define the term Epic as a level top-level requirement. This way you know that whatever is in that epic, it is not useful until it has been broken down into smaller pieces. As such, an Epic is a container that is meant to hold actual requirements once defined properly.
If you have Portfolio management, then define a Portfolio Epic as a top-level need. A need is a loose description that will lead to one or more requirements should the need be funded.
If you want an even more clear definition, then you can define the Epic as an operational Epic and a portfolio Epic as a strategic Epic. This should help define the level of the Epics and place them more clearly in the strategic and the operational areas.
 
Do not use Epics as Themes or focus areas.
If you start using Epics, of any level, as a way to categorize things based on strategic themes or focus areas, then you will start muddling the waters and the definition of an Epic as a top-level requirement or top-level need will be pointless.
Themes and focus areas are directional based, while requirements and need are action based. Having them become interchangeable means that you will either only work with directional goals with no actions defined, or you will only have action items and no direction. None of those scenarios are very good or healthy.
An epic should never be a direction or a goal, it should always be a defined activity that lead to a certain goal. So an Epic should always be connected to a theme or focus area, but it should not replace it or live in limbo without the connection.
 
Epic should be defined, or it is nothing.
I have spent more time discussing what an Epic is and is not when working with work processes than any other term. Without a definition, an Epic will cause confusion and frustration as it will become a change shifting monster that represent everything from a strategic theme to project to idea to design task. And beyond. It will be this go-to phrase for anything undefined that we don't want or have the experience to actually name correctly, or work with properly.
It will be everything and also nothing.
 
Epic in Jira could be a feature.
In Jira, I always define operational Epics as Features. It is a top-level requirement of something that once released add value as a separate feature. That means that when released, the Epic will be closed in Jira.
This is because I never have requirements in Jira, as Jira is a temporary work tool that should never, ever hold any documentation. In Jira, you should only have instructions on how to complete the task. That means that Epics in Jira should only be connected to top-level requirements in Confluence, not be the actual top-level requirement.
Unless your company have decided that you do not document requirements, then you don't need to define where to put them and can do whatever your team desire.
 
How do you use Epics?
I have seen many ways to use the Epics and even more ways to describe all kind of things as Epics, but I am always eager to learn more on how others use it.
So how do you use it, and why have you set it up that way?
Jimi Wikman
By 💫 Jimi Wikman in Ways of working ·

Atlassian acquire Percept.ai - strengthening their ITSM products even further

Atlassian announced yesterday that they have acquired the small California based company Percept.ai, a company that focuses on AI technology to automize support flows, in quite impressive ways. This will strengthen the tool set of Jira Service Management with a new automation technology in the form of a no-code virtual agent that I think will add a lot to the Jira Service Management experience.
While Edwin Wong, the Head of Product Management at Atlassian, did not go into any details in the announcement, it is clear that this will be an important part of the future of Jira Service Management. I also think the acquisition of Percept.ai and their virtual agent technology will find its way into other areas of the Atlassian suite, and I would not be surprised to see an AI driven onboarding agent in the future!
I think this is a strong acquisition and an important one for the Jira Service Management product specifically and for Atlassian in general.
 
Jimi Wikman
By 💫 Jimi Wikman in Atlassian General ·

Jira Product Discovery - The missing link between business and IT?

Atlassian has just released their new product called Jira Product Discovery in Beta. It is a new project type in Jira Software, just like Jira Work Management, and sadly it is equally a bit lackluster when it comes to functionality. It is however a very nice addition and it has the potential to bridge the gap between business and IT, which is currently being done with creative setups in Jira Software.
So what is Jira Product Discovery?
In short, it is a tool for adding good ideas where you can define value and cost in order to make educated decisions on what to focus on first for your different products. Or just to start new products and value streams. Right out of the box in the Beta, we find many good features such as visual fields for effort and goal impact, the ability to score ideas and the most powerful aspect is the connection to create epics in other Jira projects to truly connect ideation with delivery.
Jira Product Discovery is a very nice new product that can compete with other tools like Aha!, but it is also a typical Atlassian product with limited functionality that may or may not expand down the road. This has been a problem for Atlassian in the last 5 years or so and it can affect the sales of this new product, unless it becomes part of the core like Jira Work Management is now.
 
Functionality looks great!
Even with the risk of having a less advanced feature set than some of the competitors, Jira Product Discovery have a good feature set already.  Things like goals, what can target strategic values, or even smaller product goals is something I work with a lot. Things like effort ranking, key customers and connections to time periods and something they call buckets are all great features.
The ability to add automatic calculation of value is great, but I would like to see the ability to add negative values as well for things like risk and effort. Overall the score system is quite simple and it needs a more granular setup for it to be useful in large scale organizations.
Overall, I think this first iteration of Jira Product Discovery looks impressive and it will most likely fit many companies need as is.
 
It is a Beta
It is easy to point to things that are not awesome right now, but it is important to know that this is a Beta. As such it will be features that are either not yet there, not finished or that will change during the Beta. While I see several things that I think are essential for the future success of Jira Product Discovery as a product, I would not discourage any organization from trying this out even in its Beta format.
That is because this fit a very critical gap in the current product flora for Atlassian and I think this hit the spot pretty close to what a lot of people have been asking for, for a long time.
Don't take my word for it, though, head on over and try it out yourself.
 
Introduction Video
 
Jimi Wikman
By 💫 Jimi Wikman in Jira Product Discovery ·

Kotlin Vs. Java: Which is Best for Developing Android Apps?

For more than two decades, Java was one of the more sought-after programming languages used on a variety of devices. Since the beginning, mobile apps developers have relied on Java to create hundreds of applications. In May 2019, Google announced that Kotlin was the preferred programming language for the Google Play Store for Android applications.
To develop a successful mobile app, it is crucial to choose the best among Kotlin vs Java languages. Let’s learn what these languages are, their pros and cons, and which one will fit your app project. Let’s look at. Kotlin Programming Language
Kotlin Programming Language
Kotlin is mostly the integrated environment used for developing apps. It is also able to create statically JavaScript as well as Java Virtual Machine language (JVM).
Kotlin is a blend of functional and functional programming. It is more simple, less messy and more efficient to build than Java. Kotlin can convert the code into binary code and run it under JVM. Therefore, it’s suitable for almost every platform & device.
Java Programming Language
Java programming language can be described as an object-oriented language. The language is easy to learn, strong, robust, and durable. Java is ideal for Android apps, web applications, server applications, embedded systems, large data and more. Open source is a mix of many elements. Java is the basis of a lot of Android apps and also significant portions of Android.
Kotlin Vs. Java: What We Need to Know
Kotlin Vs. Java can’t be used simultaneously for any mobile application development, so it is important to discover which is the most suitable. We’re now going to take a look at the pros and cons of both languages, as well as what makes each one better for certain types of Android applications.
Data Classes: Kotlin Vs Java
Java-based Android application development requires you to create variables or fields that can be used to store information. Additionally, you must create constructor, getter and setter methods, as well as toString() and the equals() and hashCode().
Kotlin automatizes these tasks. You only need to include the word “data” in the definition of the class. The compiler is able to automatically create fields and variables like the setter, getter, constructor, among others.
Volume & Coding: Kotlin Vs Java
Kotlin code load is less than Java’s similar programs. Kotlin reduces the chance of errors in code and eases the work of Android app developers. Because of its ease of use, Kotlin is preferred over Java for massive mobile and web application development projects. Kotlin code is easier than Java.
It doesn’t require constructors to create objects, classes that hold information and get value from declared fields or classes that store the data. Kotlin code is compiled in less than the time required for writing Java code. This accelerates development and deployment.
Null Safety: Kotlin Vs Java
Java has many drawbacks, one of which is Null Pointer Exception. The occurrence of a Null Pointer Exception is only triggered when the user is explicit in throwing it. Inconsistencies in data can occur due to Java code problems with initialization, as well as other issues. Kotlin is unable to run when a Null Pointer Exception is generated.
For the best Kotlin Vs. Java choice and usage, look to hire Android app developers with professional expertise and excellent knowledge.
Wildcards: Kotlin Vs Java
Kotlin is not able to use wildcard types. Declaration variance & the type projections are Kotlin’s wildcard choices. Java allows wildcards. Wildcard codes are typically an unidentified kind. It governs the type security of Java-based codes within a software.
Operator Overloading: Kotlin Vs Java
You can make use of a range of mathematical operators within Kotlin such as subtraction, addition & division. It is possible to compare objects and conduct quality checks with symbols. The Java programming language relies on particular Java data types with mathematical operators. The Kotlin Vs. Java debate is won by Kotlin in terms of Operator Overloading.
Performance: Kotlin Vs Java
JVM runs ByteCode which is written using Java as well as Kotlin. It is however hard to assess their memory consumption. It’s difficult to evaluate and monitor their performance. Kotlin has more features than Java which makes it more practical.
Multithreading applications are made simpler with Kotlin Coroutines tool. Because of its plethora of features, it compiles & runs a bit slower than Java. Java is however much less complicated than Kotlin which means that it is faster to compile.
For top assistance, you must seek assistance from a Best Android app development company and hire Android app developers with great expertise.
Stability: Kotlin Vs Java
It’s the stability that lets us detect distinctions. Let’s begin with Java. Java is one of the languages with an extensive history. Java Version 8 & Java Version 11 both provide extensive support. If anything goes wrong, the Java versions can be upgraded via patches.
Despite Kotlin’s long history, it is still a relatively young language. There is no official version yet. Java and Kotlin can be considered to be stable languages. If you are looking for stability, Java is the best option.
Final Words
We’ve got the complete list to offer on our analysis of the Kotlin vs. Java Debate. Hopefully, you will be satisfied with our analysis and choose the best option based on your preferences. Be it Java or be it Kotlin, everyone has their era and today’s era is inclining towards Kotlin programming Language.
Erma Winter
By °Erma Winter in Development ·