Wednesday, November 26, 2014

Speaking at the Choose Forum 2014

Logo

This Friday the annual Choose Forum will take place in Bern.

The Choose Forum is a small and lesser known conference that features highly interesting speakers each year.

I am very honored that I was invited to speak at the Forum this year along with Michael FeathersErik Doernenburg and Adam Tornhill.

My talk is titled “There is something about JavaScript”: 

This is the tale of an enterprise developer taking the adventurous journey into the realm of JavaScript. We will learn about all the dangerous pitfalls that lured on the way, but also about all the amazing encounters and beautiful discoveries that were waiting in on our protagonist.

I am looking forward to the event on Friday.

Monday, November 17, 2014

Weekend Reader, Week 46

.NET is Open Source

The big news of this week is of course Microsoft open-sourcing .NET:

Image 3379f52c 2764 4a61 8b29 7bff2dc68dde

Microsoft commits to making .NET cross-platform and to build a stronger ecosystem by adopting open source development. They will develop completely in the open and accept commits from the community.

The source for the next .NET is hosted on GitHub.
There will also a free full-featured edition of VisualStudio: Visual Studio Community 

What does change? Some predict the death of Java… but I don't think that much will change after a short hype: Enterprises that bet on the Microsoft Stack will still use Windows, I don’t think that .NET on Linux/Mac will be a relevant scenario in the enterprise any time soon. Since VisualStudio still only runs on Windows, mainstream .NET development will still happen on Windows.

.NET for Mac Desktop, iOS or Android development will remain a niche, as it its now with Xamarin.

I guess the one place where this move makes .NET a more attractive development platform are cloud scenarios: .NET becomes a more attractive platform, when there is no vendor lock-in to Azure.

 

LeSS: Scrum for the Enterprise

Bigpicture

While there is a general disillusion about Scrum, the topic of scaling Scrum to the enterprise is still thriving… there must be money in that!

LeSS: Large Scale Scrum is the latest manifestation of "Enterprise Scrum” I have come across.

Welcome to the family of methodologies promising Agility to the enterprise:

Personally I still don’t believe in scaling Agile to the Enterprise.

 

Trust can scale

 if you replace trust with process, you’ll rip the heart right out of your company

Maybe instead of focusing on how to scale Agile to the Enterprise by introducing processes and ceremonies, we should remember what Agile is all about: Its about trust!

Hierarchical coordination fails when manager decisions depend on specialist knowledge:

21164 strip

 

Sacrifical Architecture

Often the best code you can write now is code you'll discard in a couple of years time.

Martin Fowler writes about the idea that maybe code is not meant to last. Throwing away code and rewrite applications might often be a good option. If we embrace this idea, then we should focus everything around the software delivery process to enable such rewrites efficiently. This is a radical change to the traditional approach of software creation.

 

How Google Works 

The only way for businesses to consistently succeed today is to attract smart creative employees. 

Newkingmakers

I see a lot of parallels with the book "The New Kingmakers"

 

 

Deliberate Advice from an Accidental Career

Screenshot 2014 11 17 01 44 34Great story telling by Dan North, definitely worth the time.

Saturday, November 8, 2014

Weekend Reader 45 - JavaScript

This weekend reader is purely focused on JavaScript.

It is long know that the JavaScript ecosystem is far from settled:

 

The last weeks were proving above trend in an impressive manner: The two major JavaScript frameworks AngularJS and EmberJS have announced their next versions.

 

Angular 2.0

AngularJS Shield large

At ng-europe the Angular team presented a first impression of the next version of Angular:

Almost nothing remains the same:

  • No more controllers
  • No more directive definition objects
  • No more $scope
  • No more angular modules
  • AtScript: A new language on top of JavaScript
 
Here are some relevant links to get an overview of Angular 2.0:

The changes are so striking that one could get the idea that the only thing remaining is actually the name of the framework.

The Angular 2.0 release is planned for end 2015/early 2016.

The reaction not only been positive:

 

And in the blogosphere: 

 
 

Ember 2.0

Ember js Logo and Mascot

Also EmberJS, the “other” big JavaScript framework, announced its next version last week. However they chose quite another approach than the Angular team. Instead of surprising (shocking) the community with tons of changes, they establish a "RFC" (request for comments) process:

 

In contrast to AngularJS where the upgrade from 1.x to 2.0 will be a breaking change without a smooth transition, Ember aims for a smooth transition through a “steady flow of improvement”.

I am currently giving JavaScript and Angular Workshops to several companies here in Switzerland. Many big companies here are still trying to figure out how to integrate modern JavaScript frameworks in their development stack. Most of them are currently betting on AngularJS. Only very few of those companies are actually using AngularJS in production yet. I am curious what effect those recent announcements will have on the long term strategy of those companies.

 

React/Flux

Logo og

Maybe there will be some traction to React/Flux. Here are some links to this “newcomer” in the space of frontend frameworks:

 

 

And if you don’t like big frameworks you can always use VanillaJS :-)

 

 

Java and JavaScript: A new romance

Java 8 contains Nashorn, a new JavaScript engine running on top of the JVM.

AdamBien held an interesting presentation at JavaOne showing the possibilities that open up with Nashorn:

 

Avatar 2.0

Oracle also presented Avatar 2.0 at JavaOne. Avatar.js is an attempt to bring the Node programming model and ecosystem to the Java platform. Project Avatar so far was an attempt to bcreate a JavaScript based platform (server and client side) on top of Java EE.
However the goal and purpose and the future of Project Avatar was unclear  during the last year.

Avatar 2.0 changes now quite a lot according to the blog post and presentation by Niko Köbler. The most significant change is certainly that it will run directly on the JVM without the need for a Java EE server.

Unfortunately there is no code or distribution available for Avatar 2.0 yet. I hope this will change soon ...

 

The Better Parts

The author of JavaScript: The Good Parts has revised a lot of his opinions since he wrote the book… talks by Douglas Crockford are always worth watching:

Sunday, October 12, 2014

Weekend Reader, Week 41

WeekendReader41

Wow, already week 41 … I missed some weeks since last time. Time to catch up!

 

The controversy around SAFe goes on:

Erwin van der Koogh on When is SAFe appropriate to use?

SAFe is great for companies trying to delay the inevitable.

 

 And there seemed to be some fun at the Agile Business Conference:

 

 

Trouble in Paradise: Disillusion about GitHub

GitHub was always my poster-child as a modern software company. Their approach to a no-managers culture is fascinating:

And the presentations of Zach Holman of GitHub are famous. They give the impression of being a paradise for software developers...

… but at the beginning of the year there seemed to leak some concerning stories from that paradise:

I don’t know what to think about it, but for me it’s a a modern case of “Paradise Lost”.

 

More about the No Managers Culture

How Medium Is Building a New Kind of Company with No Managers:

In Holacratic systems, individuals operate without managers because many of them have decision-making power in a particular area. And since everything is made as explicitly as possible, everyone in the organization knows who has authority over what.

Harvard Business Review: First, Let’s Fire All The Managers

Management is the least efficient activity in your organization.

What I find particularly interesting in the above HBR article is, that the No Managers Culture is not rooted in nor confined to the software industry.

 

 

More about Plans and Estimations

My Customers Need Estimates, What Do I do? 

If you choose to serve customers who need an estimate/price, then do estimates/prices. If you choose to serve customers who are willing to let requirements emerge, then get good at the Agile way. It’s your choice.

Two Reasons Why Estimates Aren’t Worth It

Creating estimates is pretty frustrating because everyone who sits in an estimation meeting knows that these estimates have got nothing to do with reality.

Why are software development estimates regularly off by a factor of 2-3 times? 
This brilliant analogy is showing the impossibility to plan a hike from San Francisco to Los Angeles. 

 

The challenge of planning incremental product development (from Incremental development at Spotify):

Incremental Development Spotify

Quote about plans from Friedrich Dürrenmatt:

Zufall Dürrenmatt

(The more humans proceed according to plan, the more effectively coincidence is able to meet them.) 

 

JavaScript

JavaScript continues to conquer the world:

But not everybody seems to be delighted:


Monday, September 29, 2014

Another JavaScript Bootcamp for Java Developers

Jjs

At the beginning of this year I held my JavaScript bootcamp for Java Developers for Puzzle ITC, and it was fully booked.

Since then I had the pleasure to repeat the course several times for Glue, IMS, BIT and UBS and also at this year’s ch/open workshoptage.

Due to popular demand Puzzle is now repeating the course on October 6th in Bern. The course is public, this might be a perfect opportunity to get bootstrapped in professional JavaScript development!

Tuesday, September 9, 2014

Our App "Myco" reached 100’000 downloads! Here are some statistics.

Myco is a project of Stefan and me. We published the Windows Phone App in December 2012, followed by the iOS version in May 2013 and the Android version in April 2014.

The app is available in a free edition and two paid editions (standard and pro) on each platform.


The app proved to be much more successful than I would have expected. Last month we reached 100’000 accumulated downloads of the App.


In the following I present some statistics about the downloads of Myco:


MycoDownloads
 

Note that the Windows Phone edition is available since 21 months, the iOS edition is available since 16 months and the Android is only available since 5 months.


For me it is interesting that Myco seems to break with some common myths of app development (at least when we look at the last 4 months):

  • Android is the most successful platform regarding total downloads and paid downloads, followed by Windows Phone. iOS is trailing behind, even though our main markets are Switzerland, Germany, Italy and France where the iPhone has quite a strong position.
  • Windows Phone is our most successful platform regarding conversion rate. Apparently the willingness to pay is even bigger with Windows Phone users than with iOS users.
  • The conversion rate of Android is not lagging far behind Windows Phone or iOS. The alleged “unwillingness to pay” of Android users does not prove to be that significant in our case.

Of course the above numbers and conclusions are still quite premature. Our app is highly seasonal. We had a high peak last autumn where iOS was dominating over Windows Phone (Android was not yet released). Therefore we are looking forward to the current mushroom season, which has just started.


Some explanations of the above observations might be:

  • The Windows Phone edition regularly gets recommended by Microsoft in their store (Myco for Windows Phone has won the “Microsoft Switzerland App Award 2013”).
  • The iOS edition has probably the bardes competition, since there are many good Mushroom Apps in the iTunes Store.

If you are now interested in Myco, you can download the app by following the links below:


Marketplace

AppStore

En generic rgb wo 45

Thursday, July 24, 2014

The Software Grief Cycle

People pile layers on top of layers, abstractions on top of abstractions, complications on top of complications, crap on top of patches, and patches on top of crap until everything collapses onto itself and the singularity appears.
- Source lost on the Internets

 

After reflecting upon my last Weekend Reader, I came up with some more thoughts about the fact that software is eating the world and the  long-run problems that result from the fact that we create new systems at an ever increasing rate.

Tudor plays with the idea of “Software Environmentalism". This implies that there was a clean environment that gets polluted by software systems. The assumption is, that, as in nature, the environment can only deal with a certain amount of pollution, therefore we must start taking care and according to Tudor's idea:

No system should get away without dedicated tools that help us take it apart and recycle it effectively.

 

Let’s see what Steve Jobs once claimed about software: Eventually it collapses under it’s own weight!

 

Let’s repeat:

"It doesn't matter what you do, eventually it will collapse”.

It's like with humans and death ... it's inevitable. We can prolong our lives by living healthy and modern medicine sometimes allows to keep us alive even when it does not make much sense any more ... but we all are getting old and finally we will die.

So there you have another analogy, actually a full bag of analogies.

Any software will age and finally it will die. Some software will age more gracefully than other software, but they all will die. We have to accept that. This is not an easy insight, there are the five stages of grief (denial, anger, bargaining, depression and finally acceptance). Letting the software die might become painful for everybody involved… especially if you try to deny the fact. Often developers are way ahead of management on the stages of grief:  

 

I would argue that we are still dealing with a very high mortality rate in the software industry today. But we are not dealing with the tragedy of stillborn children or sudden child death. No, in the software industry we mostly deal with monstrous frankensteinian abominations that will not be able to breathe on their own. Still we keep trying to somehow create the perfect monsters ...

Often we are helpless in dealing with dying software. There is also a lot of software that should have died a long time ago, but it was not allowed to. Nowadays there are armies of maintenance developers defibrillating, heart-massaging and mouth-to-mouth breathing thousands of zombie systems all over the world.

Undead code

How can we deal with dead and dying software? Maybe we just have to be more cruel (and more honest) and accept their death. Maybe this enables the rest of the software population to live healthier, maybe even to thrive and prosper… the other important thing here is to get rid of the dead. Make a clean break, don’t keep the dead (or  almost dead) software lying around. Dead or dying software has the tendency to keep you incredibly busy. If you are not cruel, you won’t get rid of it:

 

Different cultures dealt differently with ageing and dying individuals. A well known example is the senilicide in ancient Eskimo culture: Old people that could no longer contribute to the well-beeing of the group were cast out to die in the snow. This certainly was a very cruel way, but it ensured the survival of the group in times of scarcity.
It is a well known fact, that enterprises have big problems finding developers to maintain their legacy systems. Developers often are not motivated to deal with legacy software. The lack of good developers that deal with legacy software, makes maintaining dying systems even more difficult and can accelerate the rotting of that software.
So maybe this is the cruel way in the software development ecosystem: In times of scarcity, developers choose which systems should die by refusing to work on them ...

 

Related Posts Plugin for WordPress, Blogger...