For me the bottom line of this video is: Microservices come with a huge amount of challenges, that you do not have with a monolith. Chris covers a lot of topics, each of which deserve a number of dedicated videos.
Just a quick note about one small way I have found to improve my learning when I watch YouTube videos. A while ago I realized that it was easier for me to follow complex content when wearing my old Sennheiser HD 600 headphones. They are not cheap, but relative to other models still quite affordable. And they are famous for their super-clear and neutral sound. Allegedly, this also makes them a preferred means for professional sound mixing. I had bought mine back in 2003 for listening to classical music.
Interestingly, though, the main use at the moment is for watching YouTube videos. There is a bunch of great content out about all aspects of software engineering, which is my topic of interest. When it comes to listening via headphones, my theory is that the super clear voices, relative to e.g. to the speakers of my laptop, free up a little bit of mental capacity. And this would then create the impression of grasping content more easily.
Here is how to get started with Continuous Delivery
I recently had the need to compile Git on a CentOS 6 system, because the available version (v1.7.1) did not support the
ls-remote command used by the Jenkins Git plugin. The various posts I found via Google were missing a crucial prerequisite, hence this short post.
- Uninstall old Git with
yum remove git
- Install required packages (for me!) with
sudo yum install libcurl-devel zlib-devel asciidoc openssl-devel xmlto
- Download source code from https://www.kernel.org/pub/software/scm/git
- Extract source with
gzip -dc <FILE> | tar -xvf -
- Compilation and installation
make configure ./configure --prefix=/usr make all sudo make install install-doc install-html
And that should be it.
Interesting high-level summary on Enterprise Architecture
If you ask organizations what they try to achieve, you will receive responses that all look different. They will typically reference the official purpose of the organization (NGO, car manufacturer, consulting, etc.) and then say what more or less specific goal is to be achieved. But in their essence, what they all strive for is a high performance organization.
To get there an awful lot of things is done: Systems and policies will be put in place, the results analyzed relative to what was expected, and then things will be adjusted because the outcome did not live up to expectations. I am convinced that the core reason for this is simply that the diversity of staff has not been taken into account.
I cannot offer a solution that claims to solve this issue. In fact I am fairly convinced that would again be falling into the trap of ignoring differences – in that case between organizations rather than individuals. But I have come up with an experimental approach that will work for some organizations:
Ask people what they think they can contribute outside their regular function.
You will be surprised to see what your staff has to offer in terms of capabilities and, more importantly, dedication. What you can effectively do with such an activity, is break barriers that a conventional organization puts around creativity. I see many of the traditional organization concepts out there as mechanistic, coming from the era of Taylorism and scientific management. That does not necessarily mean that all of it is unsuitable. But we should certainly apply scrutiny as to whether something is still the right tool for today.
The approach is somewhat similar to an individual curriculum in school. You recognize that people are different, and build upon that. What you achieve, overall, is better performance of the organization. It happens on multiple levels:
- You foster people’s creativity: See it as a competitive advantage caused by a disruptive model
- Fewer people will leave the organization: They realize that their current environment is something not to be found in many other places
- You quickly see who is in for the money (i.e. for themselves only)
- Boundaries (often called silos) become more open
- Many people have knowledge and ideas outside their official capacity. That can be harvested to bring fresh wind into other departments without the need to hire external consultants. Those cause demotivation because the team is effectively told that they are not trusted. Also, internal folks need much less ramp-up because they know the organization. (Yes, sometimes you will still need external folks.)
Is this something like a think tank? Yes and no. A think tank, at least in classical terms, is again a typical organization and the concept has been around for a long time. And while part of its job is to provide out-of-the-box thinking, it usually performs that from within a conventional organization.
This approach is not for all people. In fact a large portion of your staff is probably more or less ok with how things are now. The rules give them certainty and boundaries, in which they can operate safely. That is fine and there is a lot of important tasks where this is in fact the only option you have. (Think of accounting and how much of it is regulated by law.)
But as soon as we need to create a competitive advantage, creativity is the only thing that allows an organization to get ahead of others and also stay there. The people needed for this are, for the most part, not motivated by money. They will still ask for a competitive salary, but that is a side factor only. What they demand, though, is an environment of like-minded people and freedom to achieve what they were hired for.
It would be foolish trying to introduce this broadly into an organization that has so far been lead in a more or less conventional way. But you can take the concept of incubators and apply it not on the product level but to organizational development. Reach out to the entire company and ask for teams to apply for a test run. They should develop the details how they want to “run the show” on their own. Some guidance is of course ok, but this will effectively be their first test.
This is the core idea, and likely a lot more detail needs to be figured out before applying this broadly. But I tend to think that it does not help to do this in advance, let alone in a one-size-fits-all way. Each organization (and probably even team) should start their own journey. And letting people figure this out by themselves can only boost creativity and motivation.
Sam Newman and Martin Fowler in a conversation-style video that looks at Microservices in a non-bullshit way. Must watch!
In recent weeks I have come across a number of online articles and posts that covered various aspects of what is now called “personal branding”. Most of them listed relatively specific things to do or avoid. This is something that I think can do quite some damage, when followed blindly. Because at the end of the day you want to convey a picture of what you stand for. So doing or not doing things always needs to be seen in that context.
In my view the purpose of personal branding should be something like an extended version of your resume/CV. The latter is usually oriented towards listing what you did in your professional past and the relevant achievements. What it usually does not show is your personality. Are you a sociable team player or a ruthless egomaniac? Either type could have achieved what you did (or rather claim to have done). But obviously the side-effects would be very different.
In contrast to the “words-only” description of yourself that a CV basically is, the personal brand should be created by “actions”. I am a big fan of judging people by what they do rather than say. And if someone does charity work in their free time, that tells me a lot about this person. Much more than any impressive job role that is listed in their resume. In this context please also have a look at my post Don’t Promote for Performance.
As a non-marketing person I always had the impression that branding is the most difficult thing in marketing. And while I am writing this it seems very clear to me what the reason is (the marketing people will tell me whether I am in line with conventional wisdom here). The challenge with branding is that a company never can create a brand directly. It can ensure that all the prerequisites are there – like an interesting logo and a catchy phrase. But for those to transform into a brand, the market needs to have a certain perception about them. And that perception is the brand.
The problem with this view is that it explicitly denies the organization direct control of the outcome. You can of course try to raise awareness with expensive advertising campaigns at major international airports. But if nobody ever heard your name, putting it next to a conveyor belt for luggage will not help much. Instead brand creation takes time and continuous effort. And of course you need to support this with traditional campaigns etc.
The actual brand will follow this and gradually develop, as customers are happy and spread the word. And this is also what I recommend to people when it comes to their personal brand: Do good things and “talk” about them. Talking here means every form of communication. Especially technical people, who also tend to be shy and introvert, are often not very good at self-promotion in a direct conversation. But they could give a presentations where their achievements are mentioned. This will not feel like bragging to them, but a more neutral description. And a bit of understatement has rarely hurt in these loud times.
So the bottom line is: Find out what you would like to stand for, deliver great results supporting this, and then spread the word. Sooner or later people will recognize you for it.
A typical (in the best possible sense) video from Simon Brown. Best part for me was modelling and that a common structure is more important than the notation itself.
The definitive video on Microservices, as far as I’m concerned. No marketing bullshit, no misguided “stateless-hello world-crap”, but a concise and applicable set of criteria. It is also worth noting, that overall/in general Dave prefers a service-oriented monolithic architecture. I can’t express how great this video is to describe the real core of the idea of Microservices. Please take the time to watch!