The Agile Manifesto, first published in 2001, is a document that is familiar to many. Aiming to “uncover better ways to develop software”, it defines a set of principles written in the form of “X over Y”, meaning that “while there is value in the items on the right, we value the items on the left more.” This way of presenting the thoughts of the manifesto is not only concise yet expressive, but also helps drive home the point that the manifesto is about prioritisation, not about elimination.
At Solita we place a very large emphasis on the importance of workplace culture. There is a good reason for that. We believe it is important, but not enough to be technically talented. Technical knowhow makes you a good individual developer, whereas good culture makes you play well as a team. Combining great skills with great culture is the key to success.
How do you communicate good culture to new people? Perhaps in accordance with the Agile Manifesto, we don’t have a set of dusty corporate documents defining the required code of conduct, but rather we refer to our Core Values (passion, boldness, casualness, caring). The Solita Developer Manifesto is a representation of these values from a developers point of view.
Reviewing the Principles
The Solita Developer Manifesto is comprised of four principles. With the help of these principles, the manifesto aims to help developers understand and agree on what is expected of them. Originally the principles were written in Finnish, so naturally some of the nuances may have been lost in translation.
Professional growth over staying in your comfort zone
Probably the thing I love about Solita the most, is the fact that we’re constantly encouraged to share information and help our colleagues learn. One of my criteria when I was looking for a job some time ago was that I wanted to join a company where I could feel like I can learn from my coworkers, and this is a promise that Solita has fulfilled hands down. For example, each of our three offices organises monthly intra-office meetings, where the topic is somehow related to functional programming (dubbed FP Monthlies). These are just a drop in the bucket, as sometimes it feels like I literally wouldn’t have time for my project if I participated in every learning session.
Delivering customer value over unnecessary technical gimmicks
This is, perhaps, an easily misunderstood principle. As developers we often find joy in trying out cool new tools and libraries, or building elegant abstractions that can handle any otherworldly corner case we can think of. While it is important that we are willing to learn and are passionate about the work we do, we should always try to be working on things that the customer can be excited about also, or at least on something that will later help us deliver customer value. Note that this principle does not mean that we shouldn’t focus on things like improving our tooling, removing technical debt, or trying out new but promising technologies. We do not want to become complacent, content with the status quo; this industry moves forward fast, and knowing what is coming is advantageous. The key is having an objective understanding of what adds value and what is just fool’s gold; what helps us deliver customer value, and what is unnecessary technical gimmick.
Professional software development over just hacking for fun
Another principle that has the potential to be misinterpreted by the developer community, this one saw the most rework out of the four after the Manifesto was unveiled at the company’s internal, day-long developer conference. After some admittedly beer-fuelled conversations, the principle got its current form, and much like the previous principle, it now helps us define what we expect of our colleagues when working on a customer project. While programming is and should be fun, we are all professional software developers, and that entails a lot more than just hacking away. Meetings, emails and phone calls, are all things that clearly fall out of the circle of “cool tech things”, but are nevertheless an integral part of any project. Continuous integration, testing and code review practices, or security and performance testing might be things that do not really interest you, but you should know at least the basics and necessity of these things. No one else but you has the responsibility that these things are taken care of one way or another.
Helping out a colleague over focusing just on what YOU need to do
This last principle could be somewhat jokingly translated as “being a decent human being”, and some will probably feel like this is (or should be) such a common practice that it should not merit its own mention in the manifesto. However, based on my experience, I can honestly say that this idea of team work and helping out a colleague permeates the whole of Solita. The company doesn’t have a culture of internal competition among employees, and I think one of the causes is how each employee’s salary is automatically reviewed at the beginning of the year. Some companies have a policy (or lack thereof) of essentially dodging pay raises until the last moment, and others have in place a bonus based system, where you get more pay based on some (personal) criteria. Both of these can create a culture of competition, and have the potential to end up as situations where employees are reduced to trying to elevate themselves and protect their own asses, even at the expense of their colleagues. At Solita we expect you to be a decent human being, not an alpha dog that tries to shout the loudest.
The developers at Solita now have the Core Values and the Manifesto to refer to. The fact that both of these were created organically by the employees, for the employees, speaks volumes about what kind a place to work Solita is. More cynical readers may feel like all these principles and values are just words on a piece of paper, created by a boardroom of managers and forgotten by employees, but being a relatively new developer here I believe all the things I’ve written about to be true, and these things are an integral part of what Solita is. A great culture that focuses on the right things enables us developers to do what we love: build lovable products and services that we can be proud of, and that our clients will be happy to use.