When we were talking about our ideas for starting Acrea, we were focusing a lot on the collective experience of the founding team. While we are all coming from different backgrounds, have completed different degrees, and pursued a variety of career paths, there is at least one common ground: we all have professional hands-on experience in programming.

Personally, I do consider this as a very important point and one of the unique selling points of Acrea. It helps us to better understand and address our client’s problems when supporting them to make the journey from strategy to implementation.

Hence, I will try to explain why I believe in programming experience as an essential aspect of differentiation by listing some benefits thereof.
  1. Actively working with the fundamentals of computers leads to a far better understanding of how software and systems work. The level of understanding reached by actively programming has a total different quality than can be reached by just reading and talking about technology.
  2. In general, computers and computer programs do not forgive mistakes. This starts with compilers checking the program syntax and goes all the way to problems that occur in production systems. As a result, programmers learn to work in a precise fashion and to deliver good quality artifacts. If they don’t, they usually end up spending long nights chasing problems in their software.
  3. Programming helps to further develop analytical skills in particular when chasing bugs with debuggers or when analyzing log files. Let’s face it: these are activities that are being done only when required and thus it is all about learning by doing.
  4. Street credibility is an important aspect in IT organizations and in the IT scene. They help backing a person’s acceptance when taking over other roles e.g. in project management or leading teams in an organization.
  5. By working actively on programs and software systems, engineers can learn about good architecture and design. One possibility is to experience good architecture; the second would be to suffer from poor architecture and design. In the real world, people usually experience a bit of both.
  6. The ability to quickly analyze the pros and cons of a software system or library is a skill that benefits a lot from programming experience. Possessing such fundamental capabilities is helpful in evaluation phases (e.g. in a due diligence) or for quickly learning how to use a third party framework.
  7. Being equipped with the qualification to ask the right questions in various situations of daily work, e.g. when analyzing a new technology trend or when technical trouble arises in a project.
Given the benefits listed above I truly believe that programming experience is not optional for most people in IT organizations and projects:
  • IT team managers who should know how exactly their team members are working in order to understand their problems and to be able to communicate with them
  • IT architects, who should actually continue to work on programming projects in order to stay in touch with the real world and to avoid the ivory tower syndrome
  • Middle managers in an IT organization who should excel in providing their people with an environment to be most productive
  • CIOs and their management team who should know about what their software engineering people are doing and how their whole IT system is working in its fundamentals
We are setting the bar quite high and of course we don’t want to exclude ourselves. We do believe that programming experience is providing a huge advantage when consulting our clients in the most demanding assignments. As a consequence, programming experience is a fundamental prerequisite for a consultant job at Acrea. Considering the feedback we are getting from our customers, they appreciate having an external peer who can measure up with them in the areas of strategy or business architectures and still know about the nitty gritty details of engineering work in real world projects.

So, when do you refresh your programming experience?