Jump to content
View in the app

A better way to browse. Learn more.

JimiWikman.se

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

September - The month of Me

September is upon us and for the next 4 weeks I will focus on giving you a glimpse into who I am. That part of my site always are the least developed, so I want to make it a bit different this time around. So September will be the month of me here on the site.
Since I will be rebuild the Interview section where I met and interviewed different people I will present myself in a similar way. I will work on my projects and my education section to make sure those are up to day and the way I want them. The biggest focus will be on the About me section however and the new feature called my roles..
Since I want to give you a more in depth view of who I am it would be fun if you asked me questions about things you would like to know about me.
So don't be shy and ask me anything you want to know about me!
 
By 💫 Jimi Wikman in Personal ·

Setup Jira and Confluence - Part 2: Defining and setting up Jira Issue Types

In the previous article we discussed what tools we should use for what purpose. Now it's time to define the work we want to do in the different Areas of Responsibility. We do that by defining what different type of work we do in each so we can create a separate issue type for each type of work. This way we can separate work and can evolve the way we work in each through fields and workflows for example. Before we dig into that however we should first identify what issue types really are and how we should use them properly.
 
The three levels of issues in Jira
In Jira we have 3 levels of issue types. Each level is used for different purposes so it is important to understand what that purpose is so we can map our issue types to the right level.
Epic - This is the highest level in Jira and it's purpose is to group and categorize the lower levels. In itself an Epic has no value and you can see it as a box or a rubber band that simply is used to group other items. The term epic means a story that extends over a long period of time or that it is something grand and impressive. This is also how it is meant to be used in Jira as a way to mark stories that are connected and span over two or more time periods.
  Standard Issue Type - This is the middle level in Jira and it's purpose if to act as the transitional item to indicate what responsibility area currently own the responsibility to do something. This type is the one that we design workflows for that are flow chart based and not in the form of state diagrams. We will cover this when going over workflows in a later article.
  Sub-Tasks - Within each responsibility area we have a need to break down the work so we can mark them as complete. These are referred to as producing items and unlike the Standard Issue Type we do not always use a tranistional workflow, but more of a task management flow of open, in progress, done .We will cover this when going over workflows in a later article. The majority of our issue types will fall into this category.
  Identifying the work that need to be done
With the issue types identified we can now begin to define what issue types we need for our setup. We previously identified Requirement, Development, Test and Acceptance as our areas that use Confluence and Jira, so we will break down the work in those areas and see what we can come up with.
Requirement
Requirement: Standard Issue Type (optional) - If we want, we can use a separate issue type to act as the object which we work through the requirement process. This should be done in a separate project as it will contain a large number of unprocessed need. This would make managing the development projects less efficient, but we will discuss that in another article.
  Story: Standard Issue Type - This is the output from the Requirement process and while the name might make you think it comes from the fact that many requirements are written in the form or user stories. This is not accurate however as requirements can come in many forms and shapes. Story refer to the fact that we get the need explained to us as a story, which is because as humans we communicate in the form of stories.
  Design: Standard Issue Type & Sub-task - Design (UX/UI) can be done separate, which is why we have a Standard Issue Type for it. It can also be done as part of a requirement which is why we have a sub-task for it as well. In some cases we need to make adjustments in existing requirements and there we also use a sub-task connected to a Story for that purpose.
  Technical Design: Standard Issue Type & Sub-task - Just like with Design we have both a standard issue type and a sub-task.
  Technical Debt: Standard Issue Type - This is a rare issue type in many companies, but it is used when decisions are made that create technical debt or when clean up need to be done to optimize systems and data. These are IT driven stories in nature with the intent to make sure IT driven concerns are logged and prioritized alongside business need. It is also used to highlight decisions that will have a cost in the future. Development
Development: Sub-Task - It may seem strange that Development only exist as sub-task, but the reason for that is that development only happen when there is a need for it. This need is in the form of a Story or Technical debt. That is why development only exist as a sub-task and it is used for writing code.
  Build & Configure: Sub-task - Again this is only available as a sub-task for the same reason as for Development. This issue type is used when there is no code related to the task, just configuration. It is also used to build systems such as servers that are again configurations or physical assembly tasks. Common tasks are upgrades or adding new subset of a system through configuration.
  Defect: Standard Issue Type & Sub-task - The default way to create defects is as sub-tasks connected to a story. This block the story from deployment as it can never be closed with open sub-tasks. The standard issue type is used when defects are found without direct connection to a development or when you want to break out a defect as a known defect, but still close the story for deploy. Defect can only happen before code is put into production. I usually rename the standard Bug issue type to Defect if possible, otherwise I create a new issue type for it.
  Incident: Standard Issue Type - Incident is used for defects that are found after the code is put into production. It is separate from defect in order to properly identify where a defect has been discovered as that can affect legal aspects. It is also used to allow proper focus and prioritization as production defects usually need high attention. All incidents are standard issue types as the stories they comes from have already been closed.
  Feature Toggle: Sub-Task (optional) - This is a bit of an odd addition lately and it act as a way to determine what code is in what code based, even if it is not activated. We will not dig to much into this one as it's an article in itself. It is just added in case you work with feature toggle in your project. Test & Acceptance
Test / Acceptance: Standard Issue Type & Sub-task (optional) - This is again an optional issue type due to the fact that most test add-ons have the functionality needed to keep track of time and effort. In the event that you need a way to add time and effort outside the add-on, then you can create an issue type for this as placeholder for that information. Generic
Epic: Epic - This is standard in Jira and it is used, as described above, to group standard issue types.
  Task: Standard Issue Type & Sub-task - Tasks and Sub-tasks are standard in Jira and they can be used for any task not defined in other issue types. This can be things like scheduling meetings, organize workshop or buy cake for the team.  
Color coding for visual guidance
In order to make it even easier to identify what the different issue types will be used for I always create custom icons and color code them. This visualize the area of responsibility as well as the purpose of the issue types. My way to color code is based on color theories and my own preferences, so feel free to adjust if needed.
Requirements - This is an interpretation of the business need to Development. I tend to color Business in blue/teal as corporate colors and Development as red. The combination of those two is purple, so I make the Issue types related to Requirements as purple.
  Development - This is the heart of the work flow. We tend to want incidents and defects highly visible as well, so we pick the color that match those requirements. We tie this into the traffic sign colors used in test and acceptance as well. This is why everything related to development is red.
  Test - This is where code is either allowed to pass to acceptance, or pushed back to development for further adjustment. It is something we want to make sure it has good attention and we also follow the traffic sign color schemes used in development and acceptance. this is why test is yellow, sometimes with a orange tint to tie it closer to development.
  Acceptance - This is where a need is given the thumbs up or the big GO. We use the traffic sign color scheme to signal this and for that reason Acceptance is green. I use icons that I feel is matching the issue type itself to further clarify purpose. I also use en inverted design to distinguish between standard issue types and sub-tasks. You can see some of the icons in the download section. You are free to use the icons in your Jira instance as they are created by me using the free version of fontawesome.
 
Setting up Issue Types in Jira
Now that we have defined the issue types and designed the icons it's time to set this up in Jira. I will set this up in my Demo Jira which is cloud based. If you use Server or Data Center version the way you set this up will look a little different, but the functionality will be the same.
In order to get the new issue types into our project we will need to do three things:
Create the new Issue Types Create a new Issue Type Schema and add the Issue Types to that Schema Assign the Issue Type Schema to our project.  
Create Issue Types
In Jira Cloud we do this under Jira Settings -> Issues -> Issue Types. Please note that you need admin access for this step. Here you will see a list of the current Issue Types and in the top right corner you will have a button that say "Add issue type". Clicking on that will give you a popup where you can create a new issue type.
 
Once you add the name and description of the new issue type, then you select what type of issue type you want it to be. You can not add an image at the time I am writing this, so you will get a generic icon for it when you click add. Once created you simply find it in the list and click edit to change the icon by uploading a new one.
Next to the icon click "Select Image" and then "upload avatar" in the popup. Select a new image, close the poup and then click on update to save the new image.
 
 
Create a new Issue Type Schema
Under Jira Settings -> Issues -> Issue Type Schemes you find a list of the different issue type schemes you currently have in your Jira. In the top right corner you find a button with the text "Add Issue Type Scheme". Click that to create a new scheme. Please note that you need admin access for this step.
When you create the scheme you add a name for the scheme, a description and then you drag the issue types you want to add to the scheme from the list on the right to the list on the left. Once you have done that you can select "Story" as the default issue type. This will make Story the pre-selected issue type when we click on Create in a project using this Scheme. Once done, click save.
 
 
Add Issue Type Scheme to your project
Go to your project and then click on project setting in the left menu. It should be at the bottom of the list of areas for your project, but if you can not see it then you may not have admin rights for your project and you need to get some help with this step. If you have access then in the project settings go to Issue Types.
This view will show you the current issue type scheme and the issues included in that scheme. In the top right corner you will see a drop list with a cog wheel that say "Actions". Clicking this will allow you to edit the issues in the scheme, but we want the other function called "Use a different scheme".
 
 
Simply select the Issue Type Scheme created earlier by first making sure you select "Choose an existing issue type scheme" and then the correct issue type scheme in the list below. Click OK and your project will now be associated with the new issue type scheme we created and with that we now have our new issue types.
 
 
We now have the proper issue types we need to work, but in order for them to really useful we need to make sure we have workflows that match the work we do. This is what we will focus on in our next article: Setup Jira & Confluence for success - Part 3: Defining Jira Issue workflows.
By 💫 Jimi Wikman in Atlassian ·

Setup Jira and Confluence - Part 1: Defining the tools

The first thing we need to do before we can actually build the setup in Jira and Confluence is to define the tools. What should be done in what tool. We also need to define how we will use the tools based on what need we have. This may sound easy, but it is actually a bit trickier than it sounds and it's the source of many failures when using Jira especially.
 
Who are we building for?
In our example, we will build a setup based on a development team. It is a traditional team that tries to adopt some agile methodologies. The company is medium-sized with dozens of teams distributed in several countries where waterfall methodologies are still the norm. Most development happen in projects, which cause some overlap, but overall this get done even if it is not always easy. Requirements have decent quality, but varies greatly between teams, and most work process related changes are driven by management and test.
In short, it is a pretty common situation for many companies. There are some challenges, but the organization is moving towards a more agile and uniform way of working. There is a struggle over control and visibility because the teams want more freedom and the managers still want to feel that they have the control because they are still a bit too far away from the teams.
 
The Areas of Responsibility
In order to see what tool is best suited for what task, then we need to identify who do what. We start this by breaking down areas of responsibility so we know what areas we hand over responsibility to. In our setup, we identify the following areas:
Business - This is where the need originates from. This is actually a whole process in itself, but we just consider the output as a responsibility area. This is represented by the Product Owner. Requirement - This is where the need is defined and translated to actionable information for the development team. We include design (UI/UX), technical design and non-functional requirements such as legal as part of this area as well. This is because they are supporting the requirement process. Development - This is where the need is realized in the form of code. Test - This is where we ensure the development have good quality. Acceptance - This is where business ensure that the need has been fulfilled. Doing so also conclude the legal agreement between business and development. Deployment - This is where the need is made available to the end users. Support - This is where feedback related to the need is managed. Since we are building in Jira and Confluence, all of these areas are not going to be represented due to the limitations and capabilities in those tools. In order to identify the best tool for the job, we identify the need for each area.
Business - Jira Align
This is a big area that are actually made up of multiple processes. In this area we need to be able to organize people, money and resources into initiatives that span the whole company. We need to follow up and see when cross initiatives have issues in order to mitigate. This area do not just deal with IT, but include things like marketing, product development, human resources and so on. Jira and Confluence are not a good match for this area. Instead, portfolio tools such as Jira Align or Portfolio for Jira are better choices.
Requirement - Confluence
This area work with documentation to break down a need into actionable items. Design is delivered in multiple versions and file formats. Technical design include flow charts and tabled specification of data. Legal and non-functional requirements are usually global, so we need to be able to link in from other locations. We also want to prioritize work, add estimations on multiple levels and eventually create work orders that can be traced back to the original need. Since a requirement is both a translation of a need to an actionable task and a legal agreement on what need to be done, we need to be able to control the requirement. This means that we need both version control to identify changes and the possibility to restrict editing when agreed upon. We will use Confluence for this area for the final documentation. We will also use Jira as an optional tool to drive the requirement forward until it is ready to be locked down in Confluence.
Development - Jira Software
This area work with code where they need to have tasks on what to do. This task is actually the work order, and as such it must be connected all the way to the need. This area also need to connect the work with the code in order to trace work to code packages. We need the ability to assign work, so someone is responsible to fulfill the need. We want to see what is ready to be worked on and if the code package is ready to be deployed. This means that we need to be able to see other areas as well in a workflow. For this purpose we use Jira and connect to the requirements in Confluence. The Development team will also use Bitbucket to manage their code.
Test - Jira Add-On
This area work with making sure that the code we produce are in accordance with the requirement and that it has good quality. We need to be able to create test cases for what to test and then a way to connect to series of test. These must be reusable so we can use them to make the same tests multiple times. We need a good way to report when something is not working so we can bring that back to the development team to be fixed. We need a way to get reports on progress and result of the tests. Jira and Confluence does not support this fully, so we will add an Add-On for this to extend that capability and connect it to the development tasks.
Acceptance - Jira Add-On
This area work with making sure that the need is fulfilled. It is testing in the same manner that the test area, but on a different level and with a different responsible group. We will use the same setup as for Test with the same Jira Add-On, but connect to the requirements instead of the development tasks.
Deployment - Bitbucket Pipelines / Bamboo
This area work with making sure that the code packages created by Development are moved to the different environments. In order to do this they need a way to deliver code between the environments. This in not something that we can do in Jira or Confluence. Instead, a tool like Bamboo or Bitbucket Pipelines will be used. We will however use the Release feature in Jira to connect the code base with the deploys for traceability. We will also use Confluence to document deployments to production for traceability.
Support - Jira Service Management
This area work with supporting the code that is available in production. This requires the ability to manage incoming support requests, identifying resolutions and when needed to create work tasks for different teams. Continuous communication with the reporter is a must, and there should also be a way to resolve repeating requests to reduce duplicated requests. For this Jira and Confluence is not fully what we need. Jira Service Management is a better option for this.
 
As we can see from this our setup for Confluence and Jira will support Requirement, Development, Test and Acceptance. We will connect with Deployment as well, but the full capability will not be in our setup. Now that we know what we are going to support, then it is time to start looking at what work we actually do in each area so we can define the issue types.
This we will go over in our next article:  Setup Jira and Confluence for success - Part 2: Defining Jira Issue Types
 
By 💫 Jimi Wikman in Atlassian ·

Setup Jira and Confluence - Introduction to setting up Jira & Confluence for success

I often get questions on how I think the best setup for Jira and Confluence should look when I meet organizations. Because of that I will make a series of posts about this where I setup Jira and Confluence from scratch. This will include not just how I do things, but also the thought behind it. I hope you will find this useful for setting up your own setup in Jira and Confluence.
This series will be divided into several parts. This is because adding every step in a single post would make for a very long blog post. Dividing into a series also make it easier for you to look at specific parts that is most interesting for you at the moment. The parts that I have in mind could change as I write the series, but at the moment the plan is this:
Part 1: Defining the tools Part 2: Defining Jira Issue Types Part 3: Defining Jira Issue workflows Part 4: Defining Jira Screens & Custom fields Part 5: Defining Jira security & access Part 6: Defining Confluence Information Structure Part 7: Defining Confluence Requirement Templates Part 8: Defining Confluence Design Templates With the setup completed in Jira and Confluence, I will probably add a second series called "Work processes in Confluence & Jira - From Need to Deploy" where we go through how to use the setup from a practical point of view. It will be a more generic process, so it can be used in any methodology with some minor tweaks. If anyone wants, I could also add a post about how to use the power of Jira and Confluence for programmers without ever leaving your IDE.
 
Is there anything you miss from this series that you feel I should add?
 
By 💫 Jimi Wikman in Atlassian ·

My trip to Moscow

Last week I went on a trip to Moscow to lead some workshops for my current assignment. This was my first trip to Moscow and to Russia in general. Not only did I enjoy my time in Moscow, I find myself considering going back again as a tourist.
My trip began a few of weeks before traveling as you need a visa to travel to Moscow. This required some documents and a trip to the Russian visa central. Since we got all the documents in advance this was quick and easy. A waiting period for about 10 days and then we could pick up our visa and travel to Moscow.
At Arlanda Airport we traveled with Aeroflot from terminal 2, which is a pretty small terminal compared to the ones I usually travel from. Me and Christan must have been a bit tired, because we missed that we were at the wrong gate and that the restaurants where all upstairs. It all worked out well of course, but we laughed a bit at it afterwards.
I am not a frequent flyer by any means, but I have taken a few flights in my days and passing through customs in Moscow was a new experience. Not many speak English (or at all) at the airport and you have to go through several checkpoints which takes forever. It's not annoying or stressful, it just takes extra long due to the many checkpoints. Some checkpoints are even just a few feet apart, which feels a bit redundant.
Once cleared we had a taxi waiting for us. The trip took about 90 minutes and cost almost nothing compared to the cost here in Sweden. The hotel had a pretty small lobby and we arrived just as a bus was checking in. I know well how stressful this is from my time working in hotel, but the receptionist checked us in with grace and great attitude. Top score right there.
We had a burger king just outside the hotel so we just grabbed a burger and Pepsi cherry by mistake and then went to bed. It was a long day, but overall a smooth trip.
The next day we had workshop with the client and afterwards we had a dinner together. We went to a Nordic restaurant called Björn and had some good food. After the meal we got a nice tour of the red square and of course the subway by our hosts Mikhail and Roman. Me and Christian decided that even though we got a nice tour of the red square, we wanted to see it in daylight as well.
Day 2 was workshops again and after we wrapped that up we started a walk that would last for almost 5 hours. We aimed for Gorky park and headed out. Going a little bit west we continued to be amazed over how clean Moscow is and how amazing the architecture is. The buildings are impressive and everywhere we stood in awe over the structural pieces of art.
Passing through a busy Gorky park we moved towards the river and headed towards the red square. We passed the enormous statue of Peter the Great and then took the bridge over to the Kreml and the red square. Just on the right after the bridge there are some spectacular structures that give an amazing view over Moscow and the Moscow river.
After a long walk around the surrounding areas around Kreml to see Bolshoi Theater and Lubyanka prison we ended up watching a bunch of Scotsmen playing just outside the Kreml. This of course was because at the time of our visit there was a competition for military music groups from all over the world.
On our way home we decided to walk and we got to see a little about Moscow's nightlife. As expected it was pretty calm and cosy with some musicians playing in the parks and soft music playing in the pubs. I am sure this is a bit different in the weekends, but it was just the right amount of people out for my taste on the weekdays.
Going back home took a while. We started at 5 in the morning and took a cab to the airport before 6, just to be sure that we would not have any issues before our flight was leaving at 10.40. The cab drive took a little over an hour and at the airport we had to stand in line for 40 minutes just to check in. After that it was the long process of getting through to our flight through all the checkpoints.
It took another hour and I actually got stuck in a very strange situation where the woman before me was having a heated argument with the woman forcing her to step back and take off her shoes before passing the security checkpoint with the scanner. it was awkward because the woman working in the checkpoint waved me to pass through, but the woman without shoes would not let me pass.
Eventually we got through and had a smooth flight back to Sweden. I got stuck on the last row and I had company by a nervous guy from India going to Uppsala to study and a restaurant chef returning from a 3 month visit with family in Mongolia. We had an interesting chat on our way back to say the least.
Once back home in Sweden we had a very long queue to get past the visa check, but as a swede I could pass right trough. Thank you for that Arlanda! 
Once home I was super tired and fell aslep in the afternoon. My head desperately trying to process the workshops and of course the amazing city of Moscow.
It was an amazing trip.
 
 
By 💫 Jimi Wikman in Personal ·

Keeping track of life with Daylio

If you are anything like me, then you track all kind of things about your life. Whether it is your heart rate, physical exercises or the calories you digest, we track them on a daily basis in our smart devices. Mental health and your mood is not as common to track however. For me who also like to scribble down short reminders here and there I found Daylio to be quite interesting for track your mood and mental health.
Daylio is not a medical tool in any way. It is a micro diary. It is very customizable and you can edit the activities and your moods easily to fit the tracking you want to do. For me that are my state of mind, but also how often I get sick. This is so I can get a grasp on the extent I get affected by my SHR and what might trigger it. I also track things like how often I take medicine and nutrients and so on.
The written part is designed to be very short. I write down very basic things about my day just as a reminder on what I did during that day. It kind of remind me of the school calendars you had when you where young where you were limited to a few words at most.
Once you start adding daily entries you can see activities and mood in a calendar view as well as statistics view where you get a number of useful diagrams and statistics.

Now this can be used in any way you like, whether it is to track your training habits, quit smoking or your state of mind. I like this app a lot because it is extremely easy to use and it can be customized to be useful in many situations. The micro diary part is just icing on the cake and super fun to look back on.
Daylio - Mood Tracker and Micro Diary
DAYLIO.WEBFLOW.IO Daylio is Mood Tracker slash Micro Diary. Daylio enables you to keep a private diary without having to type a single line. Try this...  
By 💫 Jimi Wikman in Personal ·

What can you expect from this site?

This site is still very much in it's infancy and I have some plans for it that. Some are short term, some medium term and some are long term. What you can expect regardless, is a lot of content and resources. Hopefully also some interaction, even if that is not the immediate goal.
Short Term Goals
My short term goals in the next month or two are to continue to build up the layout and content areas. Right now this site have a good core for creating content where focus will of course be this blog. The design is still not 100% and I have some cleaning up to do for the Pages section especially. As I get the basics done for my Projects section and my Education sections I will start adding the content. You can expect that to happen quite soon. 
Also in the short term goals I will work on building content for the videos section and rebuild my Swedish Blog.
 
Medium Term Goals
The Medium goals in the next 6 months are to add new content areas such as Profiles and Hosting databases. Profiles will be a continuation of my interview series I started almost 2 years ago. The idea is to present and promote people that I think are interesting and amazing. In some ways it can tie into helping people to get new business and job opportunities, but the main goal is just to showcase amazing people.
The hosting database is a pet project since I have been involved in the hosting business for almost 20 years now. It will be a little experiment on making a review database as well as testing to see if it is possible to make some passive income from referrals. Hopefully it can also generate sales and new clients for the hosting companies as well as make things easier for new webmasters looking for a place to host their sites.
I might add additional databases as well such as Books and Movies & TV databases, but I don't want to rush or spread myself to thin.
Long Term Goals
My website has always been about experimentation and exploring the ways the web can be utilized for different things. As I now have a very powerful foundation for building all kind of content I will explore many, many exciting things here. This platform also have a very strong community foundation and my long term goal is to make this a natural place to become a member on. I want to use this platform as a way for me to express myself and showcase my own thoughts and creations, but also as a way to share my knowledge and experiences. If I can help someone to a more successful career by sharing my network of contacts or support someone who are in need of guidance or just to listen, then that would be amazing.
I have been building this site since 2002 and I am in no rush to finish it. The journey of creation is the most satisfying one and I plan to work on this one for a very long time...
By 💫 Jimi Wikman in Personal ·

iPad Pro and Apple pencil - first impressions

I have now had my iPad Pro for 2 days and it is starting to come together nicely. I have the basic programs up and of course I miss some features on Office 365 that is a bit annoying. I can get around most of them of course so it's not so bad. I have also tried some apps for notes and painting with varied results.
Using iPad Pro as my working tool is actually not bad at all. Mail and the entire Office 365 suite works fine, even if it is severely reduced in function. There are a few functions I miss more than others, like the arrange function, but I can make it work. File management works much better than expected even.
Notes was a big reason for getting the iPad pro and the Apple Pencil and at first I did not like it at all. Then I took a look at GoodNotes 5 and I was sold. It is so far everything I want in a notes app, but I am still trying it out. I tried OneNote as I am using it for other things, but I did not like it as much.
Drawing or painting was also a big reason for getting iPad Pro. So far I have started to play around with Procreate, but I feel it will take a while to get the hang of it. It is very different from Photoshop and Sketch that I have been using so far. Expect quite a few tutorials on Procreate and painting in general in the videos section in the future.
I also got Affinity Designer since I have it on my mac as well. I have not played around with it that much yet, but I will test it out as soon as I can. I also look forward to Photoshop later this year and I see many interesting apps like Comic Draw and Assembly I want to test out.
Typing on the iPad using the Smart Keyboard is surprisingly nice when seated. In bed when lying down I prefer the on screen keyboard however. Even though the Smart keyboard is quite small on my 11 inch iPad and I have big hands, it works very well. I don't feel that the keys are to close together, but the feeling is a bit different so it will take a bit of getting used to I think.
Using Apple Pencil feels great. I do tend to tap it a bit when working with it, which means that I switch to the eraser without wanting to from time to time. I can turn it off, but I keep it to train myself to use the pencil properly. I do feel that the glass surface is a bit slippery, so I have ordered PaperLike to test out. I could have bought something cheaper, but I figure I should test PaperLike since everyone seem to be talking about it right now.
Overall I am very happy with my iPad Pro and I look forward to take it for a testrun when I go to Moscow next week for work. I do not see any issues using the iPad Pro over my Macbook, so we'll see if that is the case once I get to really test it out for work.
 
This is my experience with the iPad Pro and the tools I have tested so far. What is your experience and what are the best apps for your setup?
By 💫 Jimi Wikman in Personal ·

iPad pro with Apple Pencil incoming

It's time to try working with an iPad again. It has been a long time since I used an iPad and my old ones are in a drawer somewhere not being used. I decided to try an iPad pro because of the latest changes and because I see more and more people using it for design purposes. I am also curious to see how well it can replace a laptop in my daily work.
Getting a small iPad pro will be a very interesting experiment and I look forward to see what creative tools I can use with it. Things like discovering which note taking app that works best for what purpose will be fun and trying out the design tools like Procreate with the Apple Pencil is exciting.
I use Office 365 pretty much every day so it will be fun to see how that works on an iPad. I already use it on my iPhone so I know it will be a pretty solid experience. From what I have seen many of the issues I used to feel was holding me back is going away with the new iPadOS. That even includes mouse support and font management.
The thing I look forward to most is using the Apple Pencil. I have had this itch the last few months to draw again and I very much look forward to take the Apple Pencil for a test drive. I scribble a lot when I plan or think. This is usually done on paper, but I want to try the iPad pro to see if it can act as a medium for that as well. I have not purchased any screen protector yet, but I probably will get something like PaperLike, just to see how it feels.
I should get this on Wednesday if all goes as planned so I'll probably write a review for it later this week.
By 💫 Jimi Wikman in Personal ·

It is hard to find successful managers according to science

In an article in the Swedish newspaper DN it is proclaimed that it is difficult to find successful managers, even if we spend a lot of money on leadership training. The research looked into middle management and could not find any scientific proof of increased success. This is not surprising since there are very few correlations between managers and leaders after all.
The article is critical towards the trend of managers taking classes to become better leaders. As leadership is not something you can learn I kind of agree with that, but at the same time anyone can improve the chances of becoming a leader if they know how to. By educating yourself on what a leader is and is not, then you can take steps to move towards leadership. This however is often wasted on managers as they are to far away from the employees to actually make much of difference.
There is also nothing wrong in not being a great leader. Managers that does not lead groups of people directly often do the "boring stuff". This includes budgets, resource planning, contract negotiations, stakeholder relations and a whole lot of sales discussions. This is not something that you need leadership skills for. You need authority and organization skills. This is an extremely important role to have.
I know several managers that are the absolute best in the world that I would never let lead a development team for example. They are exceptional managers, but no leaders. Then I know of a few managers that are not great managers, but great leaders. Lastly you have the saddest bunch of them all and that is the group that are amazing leaders that are terrible at management. These are completely wasted in a management position.
I know that saying that leaders and managers are not the same is not 100% true because they share certain traits. Regardless if you are a manager or a leader you need the ability to communicate and to have a clear message (even if it is wrong).  Where a leader should inspire and lead by example a manager need to communicate a vision and a direction. Managers direct the workforce towards a goal and the leader makes sure the road to get there are enjoyable and productive.
So the fact that this study did not find any proof of successful leaders among middle management is kind of normal. Increased knowledge of leadership does not make management leaders. It makes them more understanding of leadership and hopefully it means that they will work better with the leaders. That in turn would improve the working conditions for the workforce if all goes well. If a middle manager would become a great leader then by definition it get isolated as that person often have others between themselves and the workforce. Those leaders can be bad leaders so even if the middle manager inspire them to greatness, it will not reach the workforce.
We should also recognize that most managers are completely buried in work and often are forced to content switching that cause stress. That alone prevent room to actually lead as they are jumping from one area to the next with little to no pause for reflection or processing. It is very difficult to develop any form of leadership skills in such environments. This is also a cause for poor decision making that we will discuss in another article.
To become a better leader require a profound change of self. This is not something that can be done by anyone else as you do not develop compassion and respect in a classroom. That comes from within as part of growth of self. This can be triggered by education of course, but the actual transformation happen within. If you are a greedy, self centered, performance driven individual with low empathy then no matter what you do you will never be a great leader. It is as simple as that.
Does this mean that the many leadership training's that exist out there are worthless? I do not think so. Understanding what good leadership is will make more people strive towards that. The fact that we see so many articles, training classes and blog posts about leadership is forcing organizations to evolve. We no longer accept bad leadership and especially in the IT world people will leave companies with bad leadership for companies with good leadership.
This put pressure on many organizations, but it is important to understand the difference between a manager and a leader.  Today I think we mix them together and many managers feel that they are bad leaders. The thing is that this is ok, as long as they are great managers and they make sure all work forces have a great leader. This leader does not have to have a title, just the trust and respect of the work force they lead. If you have that and everyone understand the dynamic in the work force then things will be great for all involved.
In theory at least 🙂
 
By 💫 Jimi Wikman in Ways of working ·

7 years working with Ornamo Antar

Seven years ago I met this young developer named Ornamo. Pretty fresh out of school there was something about him that made me think that this guy will go places. Today I see that I was right and still his journey has just started.
The thing that struck me back when we first met was his passion for code. It was not just something he did for work, it was something he really loved doing. He did code on his free time and every moment he looked at ways to improve. He was hungry and eager to become the best version of himself.
Our first years we mostly worked side by side. I had the seniority, but Ornamo had the skills. Even with my 15+ years experience in front end development, Ornamo was way ahead of me from the first time we met. Later on as I was pushed a bit into project management Ornamo was always the one I looked to for the role of architect and leadership.
I nudged him a bit here and there and pushed him to take on more responsibility and he just excelled every time. This just confirmed my feelings that Ornamo is destined for greater things. Not only is his skill set amazing, he works extremely well with everyone around him as well.
As most front end developers he understand the design process and the UX principles. In fact I think he could easily move into that field professionally if his love for code was not so strong. He is a natural leader without trying. People simply follow him because they want to rather than some artificial role give to him. This is something that I think will eventually lead Ornamo to the same path as I have been given when sooner or later he will become a more formal leader as a project manager or product owner.
I know few people that are as kind and generous as Ornamo is. He is loyal and respectful and will always give you his absolute best. He is diplomatic and is naturally attuned to the dynamics in any work group. Although he prefer to be in a position where he can learn from the other members of the team, he have no problem taking on the mentor hat and share everything he knows. There is no prestige or ego driving Ornamo, only constant improvement and making the best possible solutions.
So now, seven years since we first met, I no longer see a young developer in Ornamo. I see a man who not only have become a skilled professional that is well respected by his peers and his clients alike. A married man who I expect soon will not only be a loving husband, but also an amazing father. A successful man that in a very short time have impressed me beyond words.
I am deeply honored have the privilege to work side by side with a man that have a future ahead of him that is well beyond anything I could ever achieve. I have watched Ornamo grow with every challenge presented before him and I am certain that he will continue to grow for many, many years to come. Already today he is one of the most skilled and experienced front end developer I know.
Ornamo Antar is a true unicorn with a bright future that will be amazing to follow.
 
Learn more about Ornamo Antar on Linkedin:
https://www.linkedin.com/in/ornamoantar/
By 💫 Jimi Wikman in Professional ·

15 tips to master requirements to avoid scope creep and costly delays

Requirements are abused almost daily and it is a fact that most projects that fail miserably do so because the requirement process failed. Lets go over what requirements are and how to make sure you control the requirements and in doing so also control your project.
That is pretty much the summary of what a requirement is, but it's a bit more complicated than that as a requirement is made up of three different parts:
Business need - What people usually think a requirement is. Its a description of a need that should be fulfilled and it can come from the business or the end user perspective. The technical elaboration - The part that is most lacking and the cause for so many failed/costly projects. This takes the business need and extend it with the technical elaborations that make it possible to design or code the solution. The verification aspect - This part is where each part of the requirement is defined in a way that it can be verified with true or false statements. It ensures that the requirement have the right level of clarity. Once you break down the requirement in these three areas you will naturally see the need to involve the correct users in the requirement process. The business need comes from the product owner, who also own the requirement. The technical elaboration comes from the developers and the verification aspects comes from test.
Once the concept that a requirement is a trinity and not a simple request or wish, then you will have come a bit closer to how to get great requirements that are easy to work with and to understand, without having to spend endless hours to formalize them. You can focus on making sure each of the three parts get improved and making sure that there is a natural handover between the requirement phase and development where the development team approves the requirement instead of just inherit it.
In order for this to work there are some things you should make sure you either stop or start doing. Here is my list of some of these things:
Make sure you add business value to your requirements. Requirements cost money and I don't mean when they are being developed. The cost for elaborate on a requirement also cost money so do not waste money on requirements that does not provide a clear value for the product. Make sure you do not forget the "Why" in the user story! The Why often explain why the requirement exist and its what you compare against when deciding if a requirement is valuable enough to warrant the cost to realize it. Make sure you break down user stories to avoid huge requirements. It is easy to end up to high in a requirement, but you need to break it down so it's easy to understand and so it fit within one development period if you are in an agile work process. A requirement is NOT equal to development! There is no 1-1 relation between a requirement and development, just as there is no 1-1 relation between development and test. So unless you will start to write your requirements as a function specification do not expect development to be 1-1 with the user story. Don't refer to other requirements or share user story for multiple development. Each user story is atomic and should be able to survive on it's own completely independent of other user stories. Link to solution designs and things like that, but never to another requirement in order to explain the acceptance criteria. Don't describe solutions. It is up to the developer to decide on the proper technical solution and the requirement should refrain from describing solutions as the technical solution can change based on other development. Never add variables in a requirement by using words like and, or, with, approx. , etc. and so on. Make the requirement clear and free from interpretations. Never use indefinable terms like future proof, faster, user friendly, versatile or robust. Also refrain from using the term responsive as it's also open to interpretation. Don't ramble. Each acceptance criteria should be short and verifiable. If you feel the need to explain the acceptance criteria, then it's probably not properly defined yet. Make sure each acceptance criteria is verifiable. Think of them as check boxes that can be either true or false. If interpretation is needed then the acceptance criteria is not good enough. Make sure that most of the questions from the development team is answered. Instead of repeating the answers over and over, write them down. In order to get this make sure you involve the developers so they can ask the questions right away. Make sure the requirement take the work process in consideration. If you ask for a new component where you want to set a font color for example, then define how you would want to do that. There is a big different between getting a drop list of predefined colors, an input field for hex codes or a color wheel and it will affect your work process. Always let the developers approve the requirement. This ensures that they take over the responsibility and they verify that they understand what you want them to build. Once the development team have taken ownership never alter the requirement by adding or removing functionality. Only clarifications should be done at this stage or there will be mayhem and scope creep. Find the right level! There is no need to go bananas and spend weeks on a requirement unless the organisation need it to get the requirement properly defined. The better each of the three parts of the requirement become at defining the requirement, the faster it will go without loosing quality. You need to find that level where the requirement is optimal for your team. These are just some small notes on what you can do to improve the quality of requirements. I have worked with clients that knew nothing of requirements and did the Agile/Ad Hoc version where they never got a project out in time or on budget. Once properly trained they not only mastered the art of requirements, but they also managed to keep deadlines and budgets.
I aim to write a bit more about this topic later on, but perhaps there is a specific topic you would want me to address right away?
By 💫 Jimi Wikman in Ways of working ·

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.