08 March 2023

Should Software Architects write code?

Gregor answers this nicely in https://youtu.be/31qcPwAv8Zw. Yes, they should. But not to create production code, but to grasp the idea and concepts of new technology, being able to look at it from different angle and bringing it back to the development teams in order to use or to avoid it.

In other words, Architects must be able to run experiments, aka spikes, learn from it and talk about it.

Architects today are not trying to be the smartest person in the room, but making everybody around the Architect smarter.

Architects are both, technical leaders but also people leaders.

What is an architecture? Architecture is always there as soon as you have at least two parts in a system.

Architecture became more important again in the last years. Why? First, the notion that frameworks provide enough architectural guidance has proven wrong. Take JEE as an example. It's just not enough. Second, the rate of change has gone up, so software is evolving much quicker today than before. And change must be carefully applied in order to keep the software valuable for a longer period of time.

31 December 2022

Docker shouldn't exist

Not my words, but Jack Rusher's words. Found them in a presentation at StrangeLoop 2022, and I immediately thought to write it down somewhere.

He continuous: "It's like they thought if deployment is bad, we should make development bad, too."

So true. Docker isn't for developers. It's there to run things in some remote thing. And therefore should be hidden away from developers. 

But as developers are curious minds, they want to understand things, so they learned how Docker works. And they liked it and thought to include it into their regular development routines without thinking too much of the wider implications this might have.

And today many developers suffer the additional burden of building a docker image to ship our code to some Cloud corners. Ridiculous. Taken even longer for developers "... getting into the position to think" - another very powerful statement from the presentation.

But there are solutions to avoid the Docker trap. One is Buildpacks. Concept and implementations were born with Cloud Foundry, and it was luckily picked up by the Kubernetes folks, after they realized they didn't have a good solution for simple deployment mechanisms.

08 May 2020

IT Book Evergreens

Here are my favorite IT and IT related books, mostly geared towards Software Developers and Architects:

Programming

  • The Clean Coder: A Code of Conduct for Professional Programmers, Robert C. Martin, 2011
  • Extreme Programming Explained, Kent Beck, 2004 
  • The Pragmatic Programmer, Andrew Hunt, David Thomas, 1999

Architecture

  • 37 Things One Architect Knows About IT Transformation: A Chief Architect's Journey, Gregor Hohpe, 2016
  • Implementing Domain-Driven Design, Vaughn Vernon,  2013
  • Domain Driven Design, Eric Evans, 2004

Organization and Processes

  • Team Topologies, Matthew Skelton, Manuel Pais, 2019
  • The Five Dysfunctions of a Team, Patrick M. Lencioni, 2011
  • Succeeding with Agile, Mike Cohn, 2009
  • Agile Retrospectives: Making Good Teams Great, Derby/Larsen, 2006
  • Agile Estimation and Planning, Mike Cohn, 2005
  • Lean Software Development: An Agile Toolkit, Mary Poppendieck, 2003 (and the others from her, too)
  • Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency, Tom DeMarco, 2002
  • Agile Software Development with Scrum, Ken Schwaber, Mike Beedle, 2001
  • Rapid Development, Steve McConnell, 1995
  • Peopleware (Wien wartet auf Dich), Tom DeMarco/Tim Lister, 1987 (and the others from him, too)
  • The Mythical Man-Month: Essays on Software Engineering, Frederick Brooks, 1986
  • Becoming a Technical Leader, Gerald M. Weinberg, 1986

Special Technical Topics

  • Microservices Patterns, Chris Richardson, 2019
  • Real-Life BPMN: Jakob Freund, Bernd Rücker, 2019 (4th edition)
  • Why does software cost so much, Tom De Marco, 1995

Psychology/Society

  • Factfulness, Hans Rosling, 2018
  • The Basic Law of Human Stupidity, Carlo M. Cipolla, 2011

One author who I enjoyed reading almost evdery book, hence I could not pick a dedicated one from him, is Gerald M. Weinberg. You may simply try one of his books, e.g. start with "Becoming a Technical Leader", or "The Psychology of Computer Programming"

Another great author is Tom DeMarco. Also from him you can pick any of his books and you won't be disappointed. He has great content and is very entertaining and funny at the same time.

I enjoyed reading all of them very much. I'm sure I'm missing many other great IT literature out there. I'm happy to find the ones from you in the comments below.

04 May 2019

Programming Languages Popularity

A quick analysis on sources about programming language popularity.




 
A snapshot on programming languages:
 
2018 Programming Languages on Stackoverflow

Frameworks:
2018 Popularity of Frameworks on Stackoverflow


Should Software Architects write code?

Gregor answers this nicely in https://youtu.be/31qcPwAv8Zw . Yes, they should. But not to create production code, but to grasp the idea and ...