Christmas technology complaints 2018

It is often told that things are not what they were long time ago. That’s obviously true. And that they are getting worse – every generation says that. Things, young, relationships, you name it. But it is also often told that at the same time many things are getting better. Now, where is the truth, eh?

Planned obsolescence is actually pretty old concept but while previously it was just a nasty economic model, nowadays it’s plain short-sighted when we realize the sheer global scale of human activity and its impact on our planet. Especially the “things”, that is anything producing waste, should be built to last a bit longer that is usual today. Mobile phone for a year? Are we nuts?

I’m not going to talk about distribution of wealth which on its own is a big topic, but in overall the whole system is not sustainable. While each of us can do something about it, individuals – even many individuals – are still just part of the system. Too many powerful people still don’t care about anything else than more power and profit, however short-sighted that is. It’s not for them, not in this life anyway.

Let’s just talk about quality of current technology – and sadly, mostly about software quality.

Home laser printer case: Xerox Phaser 3020Bi

We bought this lovely little and cheap printer for couple of reasons. We don’t print much – in two years we printed perhaps 200 pages? We didn’t want to print on our old inkjet anymore as it was really expensive for us (single set of inks costs more than this Xerox laser printer). But we still want to print home now and then.

Product required some initial setup but then it worked nicely as a shared network printer via wifi, which is very convenient. It printed fast, started quick enough, it simply worked for us just fine. Maybe one thing we dislike is that when it stopped the job for missing paper it didn’t continue after adding the paper into tray. But still, as with any other family member, we could tolerate some quirks.

But then, probably after a year, it started to have problems taking the paper in. Very often it reported paper jam problems that were not real. It was kept clean, we always covered it and it was never dusty, really. Even when it reported paper-jam it printed report when demanded directly from the printer. It simply got quirky too much.

The problem is likely just with some sensor, but it may be partially software based too. Feeding problem seems to be mainly mechanical, which is strange after using it only with office paper and only after about 200 pages. I checked Xerox pages and internet, but couldn’t find any easy fix.

With a printer for 50€ you don’t really know whether it’s economical to repair it. Our current plan is to finish the current toner and then try another printer, perhaps another brand. That may be after next 3-5 years, but still – it will be waste.

So this is the story of low reliability.

Voice/chat software case: Microsoft Skype

Now let’s go to software world – we will not talk about waste but about innovation. Wannabe innovation, that is.

For months Microsoft was pushing its newer version and for months we resisted (this included virtually everyone I knew). Eventually Microsoft forced the new version upon us and it was exactly what I expected. Terrible downgrade in the name of progress. Every single message has a smiling icon at its end – now this is misleading at least, but at least it gives every message kinda happier feeling about it. Yes, I know what this icon is for, but when you get some really sad or horrible message the placement of this emoji button seems really absurd.

I wish this was the biggest problem with new Skype. The problem however is, that while previously I could see who is online and who is not (except my mum that likes to be hidden and then complains I’m not calling) with new Skype all my contacts are effectively hidden. But nobody seems to like it. I’d like to see the Skype traffic before and after the change, because at least in case of my friends it’s close to zero now.

Skype is a typical case of innovation for its own sake. I don’t care about material design. Yes, I’m using PC mostly, just to clarify it. I understand that sometimes things get a bit worse in order to get better. But Skype got much worse and Microsoft seems to be OK with it. It keeps telling us how better Skype is – so much for their self-reflection.

Sure, there is another explanation for it all. Perhaps they want to kill the product. But why would they do it in this manner? No, no, I really believe Microsoft is somehow convinced they are creating a better product. But none of my contacts agrees. And we don’t talk about it anymore. Not on Skype anyhow.

So this is the story of unwanted pseudo-innovation.

Business communicator case: Microsoft Skype for Business (AKA Lync)

Now this would be quite a useful product. Sure it has its own bugs, but it provides video conferences, it records meetings, it just works… kinda. But for whatever reason Microsoft decided that we should have no in-application control over the microphone levels, while the application can lower it anytime – even to zero.

The result is that when my colleagues complain they can’t hear me I have to go to Windows audio settings and reset the microphone level to something normal. It’s strange that even on zero it still is not absolutely muted and recently I started to use +30dB boost instead and just leave it on zero when Skype for Business insists.

Does Skype really do it? Sure it does, I tested it. Does other application do it too? Depends. Audacity for instance does not. It respects my setting and records the sound as expected. Slack does it to a degree, not sure what its settings are, but it never set the level all the way to zero.

The trouble with Skype for Business is that the level does not go up when necessary, only down.

So this is the story of little control given to us – users.

Smartphone madness

And this is the story of consumerism in its best – or worst, if you will. I’ve actually got just my third smartphone since 2010, although I used also couple of company smartphones before I bought my own dual-sim device. I’ve used only Android devices but it never was the same Android. Buttons change meaning all the time, back button is once on the right then on the left, and this all is combined with touch-based UI that is generally more limited than mouse-based ones. One example is no hover functionality like a tooltip. While mobile/touch based UIs try to compensate with other techniques, these are hardly well understood by most application writers. And there are simply too many “standards” used now, all at once. I often recall the book The Design of Everyday Things that showcases many overly smart designs – bad designs actually.

Sure I’m not a teenager effortlessly switching from one phone to another or from one application to a newer one. But I’m also not from “old generation” that can’t handle the smartphone at all. But when I see a new app, I try to utilize what I know already – not mechanically, that’s not even possible nowadays. I try long-touch, try to find some hamburger  button, try the same thing in list and detail, etc. But very often things are rather random.

And then there are hardware/sensor compromises to make the phone cheaper. Missing indication led shocked me on my second phone. On the third one it’s missing proximity sensor – so after the call it takes ages until the display lights up so I can hang up. Using display itself as “proximity sensor” results in many calls hung up accidentally. Sure I’m not buying 500+€ phones, but the ways how to omit quite important details – resulting in much worse usability – still surprise me.

Reliability, stability

In The Design of Everyday Things the author says (interpreted as I remember it) that sometimes we can’t clearly decide what is better design and in many cases we should just standardize. The thing is when people already know something it’s just as intuitive as something that can be grasped without learning.

Perhaps traditional menu based UI is not the best one although we still use menus anyway, at least contextual ones. But there are couple of trends that bother me.

First is how quickly things change. Often we can hardly assess the usefulness of the new UI because every style needs some time to get used to. I’m sure they measure things with various test, but again – often what is useful in the long term may not be obvious immediately. A/B testing can be cool when you want to maximize impressions or when you test specific custom web experience but these are all local optimizations. How does it help across applications when we don’t get to the same conclusion?

And that is the second problem – with menu based systems things converged a bit. Here and there some application tried to be bold and it was fresh. But they were still just exceptions. Nowadays everything is an exception. Everything wants to be special. Things diverge. New UIs appear often and many. We probably need to experiment more, but everybody experiments. Google, Microsoft, Facebook, you name it. So we have to learn and relearn more often.

I’m not against learning at all – I have to do it all the time in the line of my work. But perhaps we overdo it a bit, don’t we? After some level it becomes inefficient. Should you skip this or that wave of technology? What is essential and what is just a hype?

No wonder we have to suffer UI designs with possibly good ideas, but low quality overall. With such a tempo of development it’s difficult to built the UI without bugs. While the widgets are often provided by the environment it’s difficult to build applications to various devices – applications that last. And if they don’t last… should I even start using it in the first place?

Buying major appliances is still somehow safe – from my experience they last at least 8 years even if not maintained properly. (Rarely a washing machine or a dishwasher actually is.) But consumer electronics is another story – the smaller the more extreme it is.

There is more and more software in it and more and more of it is less and less stable. Security is a big concern nowadays, but how can it be built-in when often even the basic functions are half-baked? TV manufacturers say we don’t want smart TV. I disagree – I want smart TV! It doesn’t have to be super-smart – just working, really. And when I use YouTube app, I want to be able to use external keyboard to search videos instead of on screen one with remote. How hard is that? Probably harder than saying “customers are not interested”.

What next?

So here we are. We can indulge in buying more and more electronics. It is more and more powerful – that’s for sure. But it does not satisfy us long enough. And it is not for everyone either. There are people who are plain scared of anything new – mostly because they have to relearn everything to do exactly the same thing like before, for instance making calls. It seriously is a problem and you’re lucky if your (grand)parents have no problems with it at all. This problem will not go away in years, it will be decades – and who knows what problems our or younger generation will have with next waves of devices.

I’m not saying technology has to slow down. But user experience should not evolve this quickly. We can’t forget habits every two years or so. Often in order to create more natural and seamless controls we create controls that are not obvious (well, seamless, right?). We innovate way to fast on the surface, on the interfaces.

And because everybody thinks they know how to innovate, things diverge. We have to relearn things often. And we have no idea what bugs and security issues are under the cover. And – as I said at the beginning – it’s the part of our system and very difficult to change. Buying a new smartphones often is now part of our culture.

I’m not without my share of “sin” here. But I’m really waiting for culture of less. Less waste, less plastics, less toys for my kids, less sweets for Christmas – less sweets all year, really. More of all these things must displace other important “things” from our life.

But enough! It’s just after Christmas, early morning here, just listening to Bing Crosby & David Bowie – “The Little Drummer Boy (Peace On Earth)”… so late Merry Christmas and all good for the next year. More love, joy, fun and less of those less important things.

Advertisements

The Sins of (PC) Gaming Industry

It shouldn’t have sounded like “The Sins of Solar Empire” originally. Especially because the Sins are nice example how games should be made – proving that they can be successful even without anti-piracy protection.

This is not a review of a couple of games. It is a review of ugly things even good games often don’t avoid. I don’t know why – as often it’s completely avoidable. In other cases it requires some effort, I’m aware of that. And yes, I’m talking about PC games. So this is kinda minority report.

Case 1: Mass Effect 2

I’ve just finished first Mass Effect after a long time, going on to ME2 to prep myself up for Mass Effect 3 I decided to finally buy. I haven’t because it wasn’t available on Steam, however as I have got Origin after all (Sims 2 for free was enticing) I can now proceed to the final part of the trilogy.

I have hardly anything against the first ME. Sure it wasn’t perfect and it had some bugs even casual player could encounter – but it was a solid game. ME2 has many improvements, game is more varied, more story, more variety, everything. But then there are these stupid things developers could have avoided.

Unskippable videos are the first sin. This applies to unskippable intro pictures/animations that often remind me the difference between original and pirated DVD (yes, pirated video is relevant from the second 1). Why do they annoy us with this? Over and over again? It’s as interesting as cookies warning – though here stupid legislation is to be blamed.

Related thing is that sometimes they can be skipped – but the key is totally unexpected (not Escape, but Enter like in ME1?). Sure there is a question whether any key should interrupt the video or non-interactive sequence – but at least some should.

When you want to start a new game of ME2 you enjoy the video and sequences the first time, but not necessarily the second one within a day (bug reasons). Luckily it keeps running on the background so I could write this post up in the meantime.

Hints using original keymap instead of redefined. This is a minor sin, but can be confusing a lot. This requires some effort, but I think it’s minimal and worth it. Otherwise it looks cheap and sloppy – which ME2 overall isn’t.

Inconsistent escape/back compared to ME1. When I used Esc in galaxy map it pulled me up one level. ME2 gets out of the map immediately. To go back you have to use the button on screen. Small thing. Frustrating.

Console-like controls on PC. I understand this, but it has consequences. Now a single button means “run”, “cover”, “jump across” and even “use”. That’s quite an overload. Often I want to run somewhere and I jump across sideways instead.

Lack of some keybinds. While in ME1 you could customize virtually all actions in ME2 you can’t select weapons directly. You can only go to next/previous weapon. Or just use HUD pause to do so because in real-time it’s frustrating and slow.

I’m quite surprised how playable the game still is in spite of this. I like playing the game.

Case 2: Witcher 2

Again – well known game and a good one too. But compared to Witcher 1 it suffered from couple of striking omissions.

Control customization out of the game: Lack of in-game controls customization is the major one. While I still can customize the keybinding I have to do so in a separate program when the game is not running. I don’t have the game installed now, so I don’t remember whether (or how much) this combines with “unskippable video” sin, but even without it it’s a lot of time until you nail your favourite binding. Sometimes I was wondering whether the suffering was better or worse than no customization at all.

Needless to say this game was also more consolized than the first one. But that’s a trend we probably can’t fight.

Case 3: Empire: Total War

This is another game that allows control configuration but it has its own stupid twist that couldn’t pass QA guys (or they were not listened). When you choose a key that is already bound to something the game says so… and you have to find where and rebind that other action to some other key.

So typically you probably first rebind a lot of stuff to some unused keys so you can later freely rebind the actions to the keys you really wanted. Do I need to suggest that obvious improvement here? Just unbind the other key! Or exchange the binding – although this is programmers trying to be unnecessarily smart.

Talking about that latter (suboptimal) option I now recalled Mass Effect 1 which exchanged bindings like this. By some accident it so happened that I had E key bound both to forward and something else at the same time. And I couldn’t get rid of that binding! There was no obvious way how to disable the binding and anytime I tried to replace it with another key it moved E into the secondary option. Now thinking about it, I haven’t tried to replace the secondary option as well, but the whole idea of it was ridiculous. (Secondary binding is actually neat, not that I use it that much.)

Just override what I set and unbind it from original action.

(Just in case you’re asking why E is forward – know that ESDF is superior. Hands down.)

And other cases

Other serious sins are examples of lousily and cheaply localized games with terrible translations and no option to switch both sound and text to original (mostly English). This also often affects patching. Typically original patches break something in the translated version and translated patches are not available.

I just hope many of my grudges are not relevant anymore. I have to admit I originally started this post in 2012 and I’m generally not buying 50+ bucks brand new titles anymore.

How should it look like?

I liked Witcher 1 for instance. Even though I wasn’t RPG guy – I mostly prefered first-person shooters or real-time strategies then – I really liked the game. Even though these “over-the-shoulder” games seem more clumsy compared to FPS genre the first Witcher drew me in and kept me there for a long time. It was a fine PC game.

When Epic pretty much first failed with Unreal Tournament 3 (not with its Unreal Engine though) it tried to redeem itself with UT3 Black Edition. Original UT3 had great reviews but many negative user’s reviews. UT3 Black was a bit too little too late, but it was a nice thing to do and they at least showed they cared about UT brand after all. BTW: Now Epic is making new Unreal Tournament which will be available for free. I’m curious how that plays out but it’s interesting for sure.

I’ve already mentioned Sins of a Solar Empire. It was a successful title even though it didn’t have DRM. The guys who made the game said it simply (not exact quotation though): “We’re making game for people who buy it. Our customers don’t want DRM so we don’t put it in.” This was a fresh perspective in a world where DRM systems go so far that they intentionally harm your computer system. For many years I ignored Ubisoft games for their DRM even though I wanted to buy couple of their games.

There are also other nice examples in gaming industry, examples where you see that games are true passion for someone – GOG or Good Old Games. Originally these guys prepared really old games from DOS times so that they work on modern systems with current OS. Games like Doom or Descent. And GOG too has a fair DRM-free approach.

With this I swerved from smaller (and some bigger) annoyances to a topic much more serious. Talking about GOG, they have a nice video about their optional client GOG Galaxy that pretty much sums it all up.

But why not talk about DRM? It’s perhaps the biggest sin of the industry. Spending millions on something we don’t want. Sure I played cracked game when I was younger (and with little to no money). I’m not exactly proud of it. Now I’m sure I paid back many times over. But I choose where my money go. And good will pays back.

Pre-christmas technology review 2017

It’s been two years since my last technology overview and I feel the need for another one. Especially after otherwise pretty weak blog-year.

Notebook HP Stream 14” with 32GB eMMC (“Snow White”) (verdict: 2/5)

I got this for my son to teach him some HTML or similar entry-level computer stuff. He loves doing it. However, even nearly bare pre-installed Windows is not able to update itself (Anniversary Update I guess) with over 7GB free disk. And there is no way to make it any free-er. At least not without some hacking. There is just a single local user (admin) because any other user takes additional gigabyte(s), especially with Microsoft account, OneDrive, etc. There is only a couple of apps, I’ve got Visual Studio Code (175 MB) and K-Lite Codec Pack (111 MB).

That’s it. Virtually no data except some pretty tiny HTML files we work on and some pictures (few megas). Anything else is beyond my control. I tried compressing OS. I wanted to switch to Linux, but I’ve read eMMCs are not well supported there (in general). The disk is also incredibly slow – don’t let the fact it’s a flash drive fool you. It’s not SSD. Simply said, it’s something slow connected over a super-slow interface.

I believe there are devices where it’s acceptable, but please, let’s make it official. Notebook with eMMC is just a stupid idea. Especially with 32 gigs and Windows on top of it – that should be considered a crime. Or a scam at least.

Without the problem combining Windows with eMMC, I’d take the machine as OK for the price. It’s light, thin, looks good, runs long on battery (5-8 hours no problem), bright enough display. But it simply does not update anymore. Shame.

Next day update: It didn’t boot the next time and kept finishing in the BSoD. Recovery didn’t work anymore, although I’ve never touched any recovery partition that was there. Windows bootable USB didn’t help (you need to upgrade from your booted system and install didn’t work because there wasn’t free room anymore). Ubuntu 17.10 installed, but booted to black screen – however after enabling Compatibility support module (CSM) in BIOS (F10 to get there), it booted fine.

Bluetooth speaker Bose SoundLink Mini II (5/5)

I wanted a speaker for a party and I wanted it on short notice (not that I needed it, just wanted). I was surprised how many options there is for Bluetooth speaker, but Bose’s one was available and I’d seen it couple of weeks before – and heard it too. Rather pricey just under 200 Eur, but I took the risk.

I’m not sure how much the speaker is responsible for “catching” the bluetooth signal but sometimes I had to keep it pretty close to the device (especially with my HP ProBook). I settled on using a mobile phone. What I love is both way control – I can pause or skip the song using speaker’s button. I also like how it speaks at me and it was easy to pair it with devices.

And then there is the sound. Perhaps too deep to my liking, but definitely satisfying. I expect the speaker to play nicely when quiet – that is I hear enough music details yet I can talk with people around. This is that kind of speaker. Second revision also has micro USB on the speaker itself in case you don’t have the cradle with you (or it gets broken or what) which is nice. Some say it’s not powerful enough, but for me it is more than adequate. No regrets.

Windows package manager Chocolatey (5/5)

I encountered Chocolatey when I was experimenting with Windows unattended installation for VirtualBox. Since then I use it and it’s one of the first things I install on fresh computers. Then I just check my notes about setting up Windows (warning, it’s a live document for personal use, not a blogpost) and copy paste commands to install what I want. This is what good operating system should have at its core – and in a simple matter. Sure you can add/remove things with various PowerShell commands, but the situation there is messy – some features are available only on Enterprise edition so it simply does not do what any Linux package manager does. Chocolatey is a nice plaster for this hole in Windows. Nuff said.

CSS grid layout

Shortly – go and try it. It’s awesome, especially for responsive design when combined with media queries. I first heard about it in this video (highly recommended). While playing with it I also used this tutorial. While still just a candidate recommendation it’s widely supported with recent browsers (although there are some problems with IEs where it originally came from). And you can make it fallback gracefully, just in case. I’m no expert, but this is technology not only for experts – and that’s good.

JavaScript framework ExtJS 4.x (3/5)

I encountered this JavaScript/UI framework on the most recent project and it was selected for us long time ago. It for sure is comprehensive and you can achieve a lot with it – that’s why the verdict went all the way up to 3. I simply can’t deny the results one can do with it. But for us it was too much. It all starts with incredibly steep learning curve. And you pay dearly for anything you don’t understand. Talking about paying – it’s commercial and the license is pretty expensive. It may be good for all-in ExtJS shops, but not for occasional project where people may change and they need to learn it.

Story of our project? We started using Architect, then some “raw JS” devs walked through and original Sencha workspace was unusable and it was coded by hand since then until I came and saw the resulting mess. During the development it produced off-1px glitches like missing right borders of panels until you ran the Sencha CMD (build) that fixes it – but it takes a long time. In general, the whole process is pretty heavyweight and we couldn’t figure out the way how to build the result into completely separate directory tree (e.g. target when Maven exec plugin was used) without breaking some path references.

So you probably can do a lot with it, but it’s all-in or rather not at all. It’s proprietary and I’d rather invest in some mainstream OSS framework instead. That would be better for both my career and future evolution and maintenance of the project too.

Note: Current version is 6.5.x.

Fitness band Xiaomi Mi Band 2 (4/5)

I bought this step counter (as that was the main reason I wanted it) just before previous Christmas and it worked well for the purposes I wanted it for. It counted steps. How precise it is? I personally think it doesn’t matter. For couple of days I carried some Garmin device on the same hand and it counted 12k steps where Mi Band counted 10k. But this doesn’t really matter. On your average day 10k is more than 8k, you know which one is better. On days you do something completely different you can’t compare the number with the day with different routine. But both devices counted actual steps just fine – the difference happens in between the long walks – like during typing on the computer. Mi Band also clearly differentiates between walking and running as it indicates more energy output for the same step count. So far so good, that’s what I wanted.

How good is Mi Band 2 as a “smart band”? I don’t know. I don’t use it to measure my heart rate as it doesn’t work that well while running anyway. I don’t have it constantly paired with a mobile phone either. Only occasionally I pair it with a phone with the application. Ah, the application – it runs only on newer Androids, my old Samsung Galaxy 3S was out of question. It also doesn’t run on tablets in general, neither on PC. That just sucks. I wasn’t able to connect the application and my Xiaomi account either. Instructions are unclear or unavailable or something fails – I haven’t tried since then, I simply use the app on the phone to see the history and don’t care about the bigger picture (yet). I saw recommendations to use it with different app (like Google Fit or so).

Finally – after roughly a half year the device started to fall out of the wristband. Happens to many people so it seems. I was quite lucky I always picked the device up before I bought some cheap replacements. These feel similar – they are rougher for sure but after a while I don’t feel bothered by them at all. I like they feel firmer than the original, but it’s been just 3 months yet so I’ll see whether they last longer or not. But for this price I have no problem to replace them often.

So, why not 5/5? The device was pretty expensive in Slovakia a year ago (50 Eur or so), it got into normal range later. The application is not available on many devices (not running on tablets for arbitrary reasons?!) and it didn’t connect easily (=at all for me) with an online account. Display is good but not in strong sunshine. Otherwise it does what I want – but let’s face it, I don’t want that much from it. 🙂

Amazon Prime (verdict cancelled)

OK, this was rather a hasty affair. Lasted less than an hour for me. I tried to use my amazon.com account for that – and this is the first gripe. Amazon should seriously help us to decide what account we should (or even could) use for the full benefit in a particular country. Prime in Slovakia is official only for couple of weeks (if I understand it correctly) but I have no idea whether I should use COM, co.uk or DE account for it. I tried COM then – trial is for free, shouldn’t hurt.

I’m trying a link from registration email to a movie included with the membership. Does not work in my region. So much for the confusion of the customer. They seriously should employ their AI to offer me available films. There is no chance in understanding all the limitations before you actually start the trial.

Then I tried Amazon Music – as the music is by far the most important thing for me. The site asked for billing information – why? Amazon has it already! Funny that their video site didn’t. But I filled it in… and the wait indicator just keeps spinning and spinning. Hm, after a while I reloaded and retried – the same result. I couldn’t go further without providing the info and they didn’t accept it (or reject for that matter). Terrible first experience. Anyway… as I browsed around it dawned upon me that there is this Music Prime (included) and Music Unlimited – for additional 8 Eur/month.

Is even my kind of music available on Prime? I don’t need a million of songs… couple of thousand of the right ones would be enough. Let’s check. Our newest hit in the family – Steven Wilson! Nope… Pink Floyd? Nope. Yes? Mike Oldfield? U2?! Unlimited only… I couldn’t find anything I liked on Prime!

I could as well cancel the trial period immediately. And I did. (It will run out after a month, but after that the service will be cancelled.) Shame, as I’m rather a fanboy, especially when it comes to what they do with AWS. But first the Music site must actually work, especially at its literally first step and then offer some reasonable music for reasonable price. Total price, not add-on price.

I feel no urge to buy Echo Dot for Christmas either… at least not this year. The whole landscape moves pretty fast anyway and I’m curious where it all is next December.

Bratislava World Usability Day 2016 and government IT

I wrote about sustainability and design takeaways from Bratislava World Usability Day 2016 in my previous post. World Usability Day (WUD) 2016 was organized on November 10th, 2016 in many places around the world. Theme for this year was Sustainability, but for us, working with and for the public sector, it was even more attractive thanks to the guest from UK and Estonia government agencies that implement or oversee the government services – services for real people, citizens. Services that should serve – just like the state itself should. And that is very touchy topic here in Slovakia.

Videos from Bratislava event can be found here, the page is in Slovak, but videos are easy to find and are in English.

Estonia: pathfinder or e-Narnia?

Risto Hinno came to us from Estonia, the state renown for it’s level of e-government. But if you imagined their world as a perfect place with flawless services you’d be wrong. Risto came to talk about their approach to the services and the problems they had to overcome and are overcoming.

Estonia and Slovakia are both countries from the Eastern Bloc, Slovakia is the successor of Czechoslovakia, while Estonia is one of the post-Soviet states. Both states are in NATO and EU and both use Euro, but there are also some important differences. I may not be historically accurate, but while in Slovakia we still have plenty of “old guard” people in their posts (like judges) and plenty of old-thinking politicians, many of them previously members of Communist party, now often using the sticker saying “social democrat”. In Estonia most of these were Russians and they simply were gone after Estonia became independent. And that allowed for deeper change, change that is much needed here in Slovakia but haven’t happened. Some ask: “Will it ever?”

But back to the services. As Risto put it, what we (citizens) want is value, but what we typically get is bureaucracy. The answer to this problem is to make everything smaller and simpler and really focus on the value.

Problems small and big

But just as with value-vs-bureaucracy problem there are opposite forces in play here. Even when the stakeholders agree on delivering maximum value for the money they often don’t agree on how to do it.

Very often the expectations are big and the budget follows them. Very often we don’t respect the systems our users already work with. And very often we deliver little value for a lot of money afterwards. Or worse, we often make the life of our users harder and they simply can’t understand what are the new system advantages we are talking about.

It is very important to understand that we need to deliver value in small chunks. Many times in my career I’ve heard: “…but we can’t deliver this useful system in small!” Really? How do you know you can deliver it on a bigger scale then? History shows us time after time that megalomaniac plans crumble. And, to make matters worse, they crumble often over many, many years.

Managers often expect that developers can plan their work while the developers have trouble to account for all the complexity in advance – often the accidental (that is “not essential”) complexity. And the accidental complexity always gets higher with bigger system, there is simply no remedy for that. Analyse as much as you want, you find out something unexpected the minute you start coding. Or when you meet with a customer. These are truths known for decades now, but still they seemingly make no sense to many managers and other key decision makers.

And so far we’ve only talked about mismatch in beliefs how to build complex systems. What does it matter whether you want to “build it” or “let it grow”, whether you are forced to “fixed time, fixed price” contract or you can do it really incrementally using whatever agile is currently chic – this all is not important at all when the true reason to spend the money is… well, to spend the money!

Yes, public money, aka nobody’s money – who cares? People care, of course, people who are in the chain somewhere. People who decide who should participate and have some piece from that big cake – competent or not, doesn’t matter. There are always subcontractor that will do it in the end. Money talks. And value is just standing aside. Just as users and their needs do.

It can be scaled down

Of course, it can, the question is whether we dare to be accountable and flexible to deliver clear value for the money. Value that is easy to see and evaluate whether it’s worth it or not. In Estonia they are also far from perfect, but they try hard to keep it small and simple (KISS principle). They limit their evaluation/analysis projects to 50k Euro and implementation projects to 500k.

I saw people laugh at this but 500k in these countries is a reasonable cost for 8-10 person team for a year. Yes, you have to mix juniors and seniors, which is pretty normal – and no, you can’t pay for 3 more levels of management above the team. Get out of their way and they will likely deliver more value than a similar team in a typical corporate environment that has to spend 20% of their time with reporting and other overhead (and that’s a low estimate).

If the cost calculation doesn’t work for you, take less people and make the project last half a year, not full. I’m not to be convinced that there is no way to deliver visible value within 500k Euro.

Risto Hinno also mentioned another very interesting thing. They decide how many services – or how much work if you will – they want implemented at a time. This way they prevent IT market in Estonia from heating up too much because that leads to very low quality. Companies start hiring everyone and anyone, a lot of code is written by external workers who often don’t care and everything is also done at way too high pace. These are all recipes for disaster. Things they seem to know in Estonia, but not here in Slovakia.

Problems with services

Risto talked also about typical problems they faced. The learned the hard way that services must have an owner. He also presented the maturity model of the services. Using my notes and not necessarily exactly his words the levels are:

  1. ad hoc services,
  2. simple list of services is managed,
  3. services have their owners,
  4. services are measured (including their value),
  5. service management is a daily routine.

He talked about building measurement in the services. This part of the talk rang a lot of devops/continuous delivery bells. And he also talked about the future visions they have:

  • Base future services on life events. This makes them more obvious to their consumers, that is citizens.
  • Aggregated services – many simple services can collaborate to achieve more complex scenarios. Risto actually mentioned some crazy number of services they have, but also noted that many of them are really simple. Still – it’s easier to put together simple blocks than to cut and slice big blocks.
  • Link between public and IT services.

So Estonia seems to have started well and they keep improving. I wish they keep on track because I loved the ideas presented – and many of them were familiar to me. I just needed to hear that it actually somewhere works. And now it’s time to get to the next level.

Designing the next generation of government services around user needs

That was the title of the presentation by Ciara Green who came to tell us how they do it in the United Kingdom. She works for GDS, Government Digital Service and she talked about the transformation of government services that, if we simplify it, started around 2010 with quite a short letter (11 pages) by Martha Lane Fox after she was asked to oversee a review of the state of the government services at the time. Sure, 11 pages seems long for a letter, but it was short in a world where you likely get hundred(s) pages of analysis that is not to the point in the end. The letter was.

After this government services all came under a single domain gov.uk and many other good things happen. UK is way ahead of Slovakia, historically, mentally of course (despite the Brexit and all the lies leading to it) – so it doesn’t come as a surprise that they decided to focus on value and they also used current agile methodologies.

They knew what happens if you deliver over many years and then surprise your customer or users – invariably not a good surprise. So they started to deliver fast and often, tested a lot, tested with real users including seniors, focused on UX. Just as Risto, Ciara too argued for making things simple. It is very easy to do things complex and longer and we should do the opposite. We should start with needs, real world needs, remind us these often. And we should do less    (reminds me the powerful “less but better” mantra).

Another interesting point was Good services are Verbs. Bad services are names. Of course there are also other components, various registers, but in the end the focus should be on services and on the activities (e.g. life situations) they cover. Sure, the verbs are a bit unusual sometimes. One very important service is called Verify and it verifies the identity of the user with various partners (banks, Royal Mail, and more) because in UK there is no central register of citizens. So they can do this without keeping personal data (I don’t know the details) and here in Slovakia we build various registers for years and they often add more problems than they solve.

Funny enough, when she talked about some services and the name was used, it still functioned as a noun in the sentence – quite naturally. So I believe the word class used for names may not be the most important thing but using verbs may remind us what we try to solve.

Back to Slovak reality

Ciara’s talk was pure sci-fi for us. She works for government agency where they develop services in an agile way. How crazy is that? Pretty much, if you say it in Slovakia. Slovak services are portioned between many companies, most of them with political background (not official, of course), and we spent around 800 million Euro for government IT that looks like a very bad joke. Each ministry takes care of its own sandbox and if there is some initiative to unify how IT is done it is executed extremely bad.

For example, there is some central portal for public services that acts as a hub and connects various parties in government IT. However, this “service” is good mostly for the provider of the service, not for its users. The protocols are crazy complicated, if you need to connect to it (you want to or is forced to, which is more likely) you need to conform to some strict plan for testing, etc. There is no way to do it agile, it only separates you from the service you want to talk to. It adds another barrier between you and the other party, not only technically but also organizationally.

It is said that one minister mentioned to a young woman working at the ministry, horrified how the state works, that she should not be naive, that sometimes things are as they are and we have to be realistic. He, reportedly, pointed at government IT and the bad companies who suck money out of it. Now this is all a matter of speculation, but the words could have been said. The tragedy is twofold.

First: The companies do what they are allowed to do. It is not that bad companies do whatever they want, they do it with connections to the officials of the government and various bureaus. As crazy as it sounds, stories that someone who worked for some company now works for the state and manages projects his previous employer delivers. Stories like this are uncovered on virtually a daily basis now.

Second: Even if it was true and the bad companies did whatever they wanted… then the state totally failed to do its basic job. It actually did fail in the first case too, but here it seems to be a very weak state, not the state our officials depict to us.

Final words

While the Slovak reality is pretty bleak, it was very refreshing to see that it can be done and how it’s done somewhere else. It’s nice to see that agile can work, even more – it can work in a state agency. And that state agencies can deliver true value, when they really focus on it. We have also learned that state can regulate how much he wants at once. This can – and should – be done in IT, but also in infrastructure projects like motorways (another anti-example from Slovakia). It gives you better quality for lower price and surprisingly it still gets done sooner in the end!

In any case, there is a long way for Slovakia and Slovaks to get to the point when we can focus on value and don’t have to fight with elemental lack of political culture (to which I include wasting/misusing/frauding public money as well).

Neither Risto nor Ciara brought any political topics in, but some of the Slovak political “folklore” obviously affected the questions that were asked afterwards. Corruption was mentioned not once. But these were areas where our speakers couldn’t help us (oh, how I envy them).

The presented topics were so interesting for us that UX parts were often left aside a bit – although focusing on value and user from the start is pretty useful recommendation. But as with anything simple, it is much harder to do it than to do something complicated and big.

Bratislava World Usability Day 2016 and the future of design

By a lucky coincidence I visited the World Usability Day (WUD) event here in Bratislava. It was November 10th, 2016 – as any other event of the same name around the world. Theme for this year was Sustainability, but for us, working with and for the public sector, it was even more attractive thanks to the guest from UK and Estonia government agencies that implement or oversee the government services – services for real people, citizens.

I will talk about government services in the followup post. This one will be more about design and how I feel about it. Mind you, I’m a software developer with some experiences with real users – I always prefer to hear from them although listening blindly to your users is also not a recipe for success. I’m not a designer. But I’m also a user of many things – and not only modern technology gadgets. Maybe I have some twisted programmer’s perspective but that doesn’t make me less a user.

Design of everyday things

Before going on, let me divert to a book I’m just reading – The Design of Everyday Things. I’ll probably never be a great designer but there are many basic aspects of design we can learn about and use them every day in software development. In the book I also found many funny examples of frustrating experiences – experiences we all have to go through sometimes.

I’m personally torn between the progress and stability. I understand the progress is inevitable – and in many cases it doesn’t affect the design. Technology performance and capacities get higher and it all gets smaller at the same time – this doesn’t mean we have to change how we interact with computers or computer-based devices like smartphones. On the other hand we can – and we even should because previous UIs were insufficient and current performance allows us to do so much better. Are we doing better?

Everybody now experiments with design but I doubt they test it properly. I wonder how Google – that definitely has facilities and resources – tested when they changed “add document” button to the bottom-right corner. Anyone I met who used computers and not tiny screens couldn’t find that button. Then you have products developed by a single developer – how should they experiment in design? How much should then learn before? How much of they learn can inhibit their creativity?

One of the ideas of the book is that the importance of the design will only grow. I have to agree. How is it possible that you need to set the current time on your oven to be able to bake a cake (not just one brand)? If we screw ovens after decades they worked already how can we design revolutionary devices? But maybe we can – perhaps the problem is not with designing new types of devices where we expect some searching. Perhaps we’re just too meddlesome and can’t resist redesigning what doesn’t need redesign anymore.

Role of Sustainability or Sustainability of Roles

Back to the WUD 2016 and the presentation that had the designated theme in its title, presented by Lukáš “Bob” Mrvan (with Avast). Videos from Bratislava event can be found here – and while the page is in Slovak, it is easy to find the videos there – and most of them are in English (all I mentioned are at least). Pity they are not made as a split screen between the slides and the presenter or that they don’t take the slide more often.

Sustainability definitely resonated throughout the presentation. This may seem annoying to some but not to me as I’m convinced our current lifestyle is unsustainable.

Another interesting idea was that too often we focus on technical part of the design and not on the whole experience. E.g. Bob was talking about their call centre – they needed to replace their insufficient application, but the most important change might have been designing their call scripts properly. Of course this wasn’t the first time I’d heard about this more holistic approach. So, just as the book says the importance of the design will grow, Bob claims the role of designer will change. And I agree.

But this all raises more questions, obviously. Maybe we need dedicated design experts on big projects, but what about small ones? How much of the design essentials must we take in to deliver useful software? How much an analyst and developer and tester should know about the design? And how to keep track of it when it develops like crazy nowadays? How to distinguish lasting advices from fashion trends?

Focus on people…

Part of the presentation discussed the speed of progress and its acceleration, talking about exponential Moore’s law vs our slow linear improvements in IQ. I take these only as visualization aids for the idea that the change is indeed inevitable. But when someone puts exponential curve on a linear scale and says “look at the pace of change since 2000” then I can move myself to 2000 and say “look at the crazy pace of change since 1985”. The rate is still the same it just affects more and more of our lives, that’s all.

Yes, society changes, design of things should get better and easier. The exponential curve doesn’t tell us anything different now than any time before. But right now it governs lives of virtually everyone (or soon it will). What to do with that is beyond the discussion about design, but the design is affected too.

…not just users, but workers as well

But there is one positive about these facts. Knowing that people evolve slower than technology we can focus on them – learn how we work, something about psychology (and psychopathology) of design, how we interact with things. This knowledge will last, it’s much better investment than learning something about the newest framework. Learning the technology is also necessary, of course, but we should find time for learning more important bigger ideas as well.

Bob mentioned it can be difficult to persuade our managers to give us time for learning and added a chart of performance of the top organizations vs average. The top organizations have also higher levels of employee satisfaction and learning culture is part of it. These are all known facts documented in many books, some of them decades old.

Some believe that in our line of work we should educate in our free time – and while I agree with this to a degree I refuse the idea that we should just be prepared anytime for anything at work. If organization doesn’t want us to practice at work at all, it can’t expect we will do it home, especially later in our lives with families. It’s also different to have a solo practice and a team practice.

To wrap it up

Bob’s presentation was much more cultural than technical. This seems to be the trend at the conferences nowadays. This is a good shift in overall although not all presentations are quality. This one was one of the better ones, definitely on the inspiring side of a spectrum. Bob also organized an exhibition about design, he is active in the community – so he’s got experiences of his own to present on the topic.

One of the questions about the design is – do we need revolutionary changes or will evolutionary suffice? Bob was more on the revolutionary side, it seemed to me. I understand the need for these in new areas. But revolutionary changes make me personally tired in many existing devices – especially the phones and web applications.

Productivity is directly tied to the design of things. If we need to relearn how to work with a phone every other year I don’t call that good progress. Like switching back and menu buttons? I have two phones with each of the buttons on the opposite sides!

Applications come and go and nothing is developed for reasonable time. Smart TVs are called a failure because people refused them, but producers refuse the idea that their Smart hubs (or whatever they call it) suck. They don’t improve the applications there. It’s been reported years ago that YouTube on Samsung smart TV does not use external keyboard – and it still doesn’t. If we don’t care about improving applications evolutionary as well, revolution will not bring anything good.

With this I’ll finish this post – mostly about design – and in the next one I’ll talk about government services. Those should also be about the design but are much more about politics, especially here in Slovakia.

AWS did it again, this time with Lightsail

I still remember how AWS (Amazon Web Services) re:Invent 2015 conference impressed me. AWS is extremely successful but they keep pushing innovations at us. I played with their smallest EC2 instances couple of times, considering whether or not I want my own server.

This year at re:Invent 2016 happening during this week Andy Jassy, CEO of Amazon Web Services, announced many new services in his keynote. One that resonated with me immediately was Lightsail. It is extremely affordable server with plenty to offer even in its weakest configuration. For $5 per month you’ll get 512MB of memory, 1 vCPU, 20GB SSD and 1TB data transfer. See also this blog post for more information.

With such a reasonable base price I decided to try it – by the way, the first month is free! My plans were nothing big, I actually just wanted to move my homepage there. But you have that flexibility of a Linux box ready for you anytime you fancy.

I spun my Lightsail instance in no time, choose AMI Linux just for a change (considering my Ubuntu preference) and with Google’s help I got nginx and PHP 7 up and running very quickly indeed. I used the in-browser SSH but because it’s not quite the console I like (but close, even Shift+PgUp/Down works as expected) I wanted to put my public key in ~/.ssh/authorized_keys. I didn’t know how to copy/paste it from my computer, but when you press Ctrl+Alt+Shift in the web SSH it will open a sidebar where you can paste anything into the clipboard and right-click will do the rest.

I really liked this experience, I like the price as well and in-browse SSH comes very handy when you are at a place where port 22 is blocked for whatever reason. (I’m sure it has something with compliance, but don’t want me to understand.) I’m definitely keeping my new pet server although I know that cattle is more common now. Especially in the cloud.

Eclipse 5 years later – common formatter quest

It was 5 years ago when I compared IntelliJ IDEA and Eclipse IDE in a series of blog posts (links to all installments at the bottom of that post). I needed to migrate from IDEA to Eclipse, tried it for couple of months and then found out that I actually can go on with IDEA. More than that, couple of years later many other developers used IDEA – some in its free Community edition, others invested into the Ultimate (comparison here).

Today I have different needs – I just want to “develop” formatter for our project that would conform to what we already use in IDEA. I don’t know about any automatic solution. So I’ll install Eclipse, tune its formatter until reformat of the sources produces no differences in my local version of the project and then I’ll just add that formatter into the project for convenience of our Eclipse developers.

Importing Maven project in Eclipse

I went to their download page, downloaded, started the executable and followed the wizard. There were no surprises here, Eclipse Mars.2 started. With File/Import… I imported our Maven project – sure that wizard is overwhelming with all the options, but I handled. Eclipse went on with installing some Maven plugin support. This is unknown for IDEA users – but it’s more a problem of Maven model that doesn’t offer everything for IDE integration, especially when it comes to plugins. It also means that plugins without additional helper for Eclipse are still not properly supported anyway. In any case, it means that Eclipse will invade your POM with some org.eclipse.m2e plugins. Is it bad? Maybe not, Gradle builds also tend to support IDEs explicitly.

Eclipse definitely needed to restart after this step (but you can say no).

SVN support

We use Subversion to manage our sources. I remembered that this was not built-in – and it still is not. Eclipse still has this universal platform feeling, I’m surprised it knows Java and Maven out of the box.

But let’s say Subversion is not that essential. I wasn’t sure how to add this – so I googled. Subversive is the plugin you may try. How do I install it? Help/Install New Software… does the trick. I don’t know why it does not offer some reasonable default in Work with input – this chooses the software repository which is not clear to me at all from that “work with”. I chose an URL ending with releases/mars, typed “subv…” in the next filter field and – waited without any spinner or other notification.

Eventually it indeed found some Subversive plugin…s – many of them actually. I chose Subversive SVN Team Provider, which was the right thing to do. Confirm, OK, license, you know the drill… restart.

But this still does not give you any SVN options, I don’t remember how IDEA detects SVN on the project and just offers it, but I definitely don’t remember any of torturing like this. Let’s try Subversive documentation – I have no problem reading. Or watching Getting started video linked therein. 🙂

And here we go – perspectives! I wonder how other IDEs can do it without reshuffling your whole screen. Whatever, Eclipse == perspectives, let’s live with it. But why should I add repository when the URL to it is already somewhere in the .svn directory in the root of the project? Switching to SVN Repository Exploring perspective, Eclipse asked for SVN connector. Oh, so much flexibility. Let’s use SVN Kit 1.8.11, ok, ok, license, ok. Restart again? No, not this time, let’s wait until it installs more and do it at once. This was wrong decision this time.

I followed the video to add the SVN repository, but it failed not having the connector. Were I not writing this as I go, I’d probably remember I have installed one. 🙂 But I wasn’t sure, maybe I cancelled it, so let’s try SVN Kit, sounds good. It failed with “See error log for details.” Ok, I give up, let’s try Native JavaHL 1.8.14 (also by Polarion). This one works. Restart needed. Oh, … this time I rather really restarted as my mistake dawned on me.

I checked the list of installed software, but SVN plugins don’t seem to be there – this is rather confusing. But if you go to Windows/Preferences, in the tree choose Team/SVN, then tab SVN Connector – there you can find the connectors you can use. Sure I had both of them there. My fault, happy ending.

So I added SVN repository, but as the Getting started video went on, I knew I’m in trouble. It doesn’t say how to associate existing SVN project on my disk with a repo. I found the answer (stackoverflow of course). Where should I right click so that Team menu shows enabled Share project…? In Package explorer of course. I added one project, hooray! Now it shows SVN information next to it. But I noticed there is Share projects…, I don’t want to do it one by one, right? Especially when Eclipse does not show the projects in the natural directory structure (this sucks). I selected it all my projects but Team menu didn’t offer any Share at all now!

Ok, this would throw me out of balance at 20, but now I know that what can go wrong goes wrong. That only project associated with SVN already – I had to deselect to let Eclipse understand what I want. Strictly speaking there is some logic in eliminating that menu item, but as a user I think otherwise. So now we are SVN ready after all!

I updated the project (not using other perspective), no information whether it did something or not – IDEA shows you updated files without getting into your way. Should have used synchronize, I know…

Oh, and it’s lunch time, perfect – I really need a break.

Quick Diff

This one is for free with IDEA, with Eclipse we have to turn it on. It’s that thing showing you changes in a sidebar (or gutter).

Windows/Preferences, filter for “quick” and there you see it under General/Editors/Text Editors. Well it says enabled, but you want to check Show differences in overview ruler too. In my case I want to change colours to IDEA-ish yellow/green/red. (Who came with these Sun/enterprise violetish colours for everything in Eclipse?) What to use as reference source? Well, with IDEA there is no sense for “version on disk” option. I chose SVN Working Copy Base in hope it does what I think it does (shows my actual outgoing changes that are to be committed).

Outgoing changes contain unmanaged files!

Ah yeah, I recall something like this. This is the most stupid aspect of SVN integration – it does not respect how SVN work. After seeing my outgoing changes in Team Synchronizing perspective (probably my least favourite and most confusing one for me) I was really afraid to click on Team/Commit… But as the three dots indicate, there is one more dialog before any damage is done – and only managed files are checked by default. So commit looks good, but disrespect of outgoing changes to the SVN underlying principles is terrible. Eclipse users will tell you to add files to ignore, but that is just workaround – you can then see in the repository all the files people needed to ignore for the sake of stupid team synchronization. Just don’t auto-add unmanaged files, show some respect!

Eclipse Code Style options

With quick diff ready I can finally start tuning my formatter. There are some good news and some bad news. Well, these are no news actually, nothing has changed since 2011. Code Style in IDEA is something you can set up for many languages in IDEA. It also includes imports. In Eclipse when you filter for “format” in Preferences you see Formatter under Java/Code Style and more options for XML/XML Files/Editor. These are completely separated parts and you cannot save them as one bunch. For Imports you have Java/Code Style/Organize Imports.

In my case it doesn’t make sense to use project specific settings. What I change now will become workspace specific, which is OK with me – but only because I don’t want to use Eclipse for any other projects with different settings (that would probably either kill me or I’d have to put them into separate workspaces).

And then we have Java/Code Style/Clean Up configuration (this is what Source/) and Java/Editor/Save Actions to configure and put into project(s) as well. Plenty of stuff you need to take care of separately.

Line wrapping and joining

One of the most important thing we do with our code in terms of readability is line wrapping – and one thing I expect from any formatter is an option that respects my line breaks. Eclipse offers “Never join lines” on Line Wrapping and Comment tab. It seems you have to combine them with “Wrap where necessary” option for most options on Line Wrapping tab, but it still does not allow you to split line arbitrarily – it joins the lines back on reformat, to be precise.

Sometimes I want to say “wrap it HERE” and keep it that way. In IDEA I can wrap before = in assignment or after – and it respects it. I don’t know about any specific line-break/wrapping option for this specific case. Eclipse respects the wrap after, but not the one before – it re-joins the lines in the latter case. Sure I don’t mind, I prefer the break after = as well. But obviously, Eclipse will not respect my line breaks that much as IDEA.

Just to be absolutely clear, I don’t mind when a standalone { is joined to the previous line when rules say so. There are good cases when control structures should be reformatted even when wrapped – but these are cases revolving mostly around parentheses, braces or brackets.

When I investigated around “Never join lines” behaviour I also noticed that people complain about Eclipse Mars formatter when compared to Luna one. Do they rewrite them all the time or do they just make them better? Do they have good tests for them? I don’t know. Sure, formatters are beasts and we all want different things from them.

Exporting Eclipse settings

Let’s say you select top right corner link Configure Project Specific Settings… in particular settings (e.g. Organize Imports). This opens dialog Project Specific Configuration – but do I know what is the scope of it when I select my top-level project? Actually – I don’t even see my top level project (parent POM in our case), only subset of my open projects based on I don’t know what criteria. That is ridiculous.

I ended up exporting settings using Export All… button – but you have to do it separately for whatever section you want. In our case it’s Clean Up, Formatter, Organize Imports and Save Actions. I simply don’t know how to do it better. I’ll add these XML exported configs into SVN, but everybody has to import them manually.

IDEA with its project (where project is really a project in common sense) and modules (which may be Maven “project”, but in fact just a part of the main project) makes much more sense. Also, in IDEA when you copy the code style into the project you feel sure we’re talking about all of the code style. If I add it to our SVN everybody can use it.

You can also export Code Style as XML – but a single one. Or you can export all of IDE settings and choose (to a degree) what portions you want to import. While this is also manual solution you need to do it once with a single exported config.

(This situation is still not that bad as with keybinds where after all these years you still can’t create your own new Scheme in a normal fashion inside the Eclipse IDE.)

Conclusion

Maybe the way of Go language, where formatting is part of the standard toolchain, is the best way – although if it means joining lines anywhere I definitely wouldn’t like it either.

I can bash IDEA formatter a bit too. For me it’s perfectly logical to prefer annotations for fields and methods on separate line, but NOT wrapping them when they are on the same line. Just keep the damn lines a bit different when I want it this way! Something like soft format with prefered way how to do the new code. This is currently not possible all the way. I can set IDEA formatter in such a way that it keeps annotations on separate lines and respects them at the same line as well – but all the new code has annotations by default on the same line.

This concept combining “how I prefer it” with “what I want to keep preserved even if it’s not the way I’d do it” is generally not the way formatters work now. I believe it would be a great way how they should work. This can partially be solved by formatting only changed lines, but that has its own drawbacks – especially when the indentation is not unified yet.