Agile Environment

Workplace it's a critical factor of people satisfaction, create agile workplace its not just put a bunch of post-its on the walls but create a environment that some behaviors can emerge and people are able to do they're best on the work, Environment and workplace are not the same thing to me :-).

Many companies say they care about good workplace and I believe they do but not always a good workplace is a good agile environment. You deserve a good workplace, it's amazing how at least one time in life (or several) we end up working in such a terrible workplaces. No body deserve it work on a bad workplace, in fact I think(this is my devil side) it's good, so this serve to teach us to value a great workplace. 

It's important not only because it can enable people to perform they work better but also because we are stuck the whole day there. A significant share of your life will be spent working, have said that we could stop arguing about the word agile and just focus in have a kick ass workplace. SO If a drop the word Agile for me what is a must have in a great workplace is the following order.
  • Essential Comfort: Chairs are critical, as developers we spent the whole day or huge part of it coding and if you don't have a good chair you will feel bad and even have illness. In Brazil there is no way to work in the summer without air conditioner, so this is essential too.
  • Water and Coffee: Coffee is the developer fuel and water its for the carburetor :D
  • Good Location: I'm always really busy, so if the office is downtown or at least close to restaurants, shoppings malls, grocery stores, pharmacy matter to me,  time it's critical and having this places near by really help my life a lot.
  • Infrastructure: As Developers fast and good internet it's a must have, because everything is distributed, I do use Skype a lot, bandwidth is a tool for daily work.
You find other things important like the carpet or the tables or whatever, this was my personal take on whats a great environment to me. There is nothing agile here, at the moment is just a minimal workplace to do code without having issues.

Great workplace to a Awesome Agile Environment

Now the things start to get tricky, a good workplace may suck as agile environment. OK so let me first cover the workplace stage and them goto the environment.

Big Visible Charts and stuff really matters. I don't say that just because the visual think side but also because there are some implicit and important rules about putting things on the wall.

For some companies putting things on the walls already is enough to start a war, not only because they think its messy, not organized and ineffective.  BUT also because they could be tool oriented, don't get me wrong I work a lot with distributed projects. I still prefer use wall over tool, because walls and post-its because of the expressiveness, a tool its always limited and less visual less expressive and less cool. Using the walls I can do whatever I want, I can paint, I can change it from one place to other place. I can use colors and change the utility the usage and the meaning just putting a chicken pox(in order to say that every point it's one day of delay) in a post it. Never I will be able to do everything that I want using tools. Because the tools sucks ?NO, actually there're good tools in place, but you never have the same freedom.

Putting things on the walls are not just about the freedom and the visual richness but often about putting 2 clear statements on the walls. First means: Hey I do care about stuff is on the wall, Its like that soccer trophy that you have in your living room. Even if people don't realize this increase they ownership and they're sense of caring about the project and about the team.

Often as a coach I separate team comparabilities and put on the wall with the person photo so during daily basis there is one person responsible for the charts, other responsible to book and take care of the multimedia tools(like the projector), other responsible to check if the team is following some practices and so on and on.
Ultimately using the walls it's a simple powerful tool to help the team grow and create ownership and proud about the work and the project. 

Second: all things on the wall are one big gigantic thermometer because let's say the team is going great with tests and delivering lots of stories. guys get proud to see the done part of the dashboard full and the opposite it's true. When the team goes bad because they're delivering few stories or they have lots of bugs or even they have poor tests everything is there on the walls. 

People start feeling bad about that, they just want change it because if big and visible on they're wall saying a clear message "We suck" or "we are screwing up things here" so people have this internal feeling telling they: Dude we must do something this is not fare its not good, let's change it.

What put on the Wall ?

There're lots of thing that you may put on the wall. Besides the standard stuff like the dashboard, the burn down chart and the flip charts and withe boards to use it I found useful put information there like for instance when you be the next demo, planning and retrospective.

Putting charts about bugs, team agile practices(radar charts), integration and unit tests progress by week are great to put on the wall as well. As I said before put the team member responsible for each action its a good idea too.

 My team room looks like a *carnaval* because there are things everywhere we didn't use the roof yet. Other thing that I use the walls a lot is to put the rules of the team there like for instance or code standards or our SOA Backward Compatibility Process and Rules, Commit Rules and so on and on. This really works because people like look on the wall, people don't like to open and receive word documents by mail instead they look and consult the walls it proof to be more effective and fun.

 Don't save space, bigger better, people must be able to read from they're seats. This layout is very useful to meetings, it's really hard to me do meetings with my team outside of the room, this gave me several advantages like, we're on the room, our war room, so we have all the information that you need and often that information its on the wall so its hard suffer on motion. Second people get much more focus because they don't need leave they're seats to other room and I really don't know why but people pay much more attention then if we wore at a meeting room, maybe because people don't enter in the meeting mode(the sucking one).

Dashboard must be huge

Imagine that you are a detective and you're working on case, you're trying to solve a mystery and find the real killer and you start putting all proofs and clues on the wall. We do the same, but we don't have a crime to fix but we have value to deliver. :D Sometimes we have small issues or bugs to fix other times we have some technical debts to pay, they are all visible in the huge dashboard.  

A huge dashboard helps the team see what everyone is doing but also works as part of the thermometer that i talked before, I have a medium team size 8 people, but still keep it huge if was just 5. I'm not handicap as far as i known It's not the case, the point is if people can read it on their desk is better, will help during meetings and make the stand up meetings easy.

Desks have a important role on pair programming, some are better others sucks, you must have the minimum space to do pair programming, here is one aspect that thinking about a good workspace could be fine but as agile one cloud really suck.

Communication and Openness

Agile environment it's about enabling emergent culture. Set up a workplace like a described before will help you to create openness and enable communication its bigger than just the workplace, this agile values must be in each action with the customer. The environment is not just up to the team but up to the whole company, its something bigger like an eco-system changing your workspace could be one of the steps to change your organization, that may get even harder because we are talking about changing root stuff or even company core values.

So it's not just a matter of the developers but a company decision, companies who enable that values or even let they're employees shape the company every week are the best ones. Thats the part of the embrace the change come out of the software not only for the software change but for the values or resources change.

Creating a agile environment i'ts hard and take long time, it ultimately means that're talking about changing your company culture that could happen or maybe never happens. Deliver the development change to one project show the difference show the benefits and move on, put your whole company breathing agile is big and not everyone is ready to go that road.

So if we think on the difference between agile workspace and agile environment I see agile workspace as one project and one team room, how that team change to work effectively enabling agile core values and mindsets and best engineer practices as well.  Agile Environment is a bigger picture to me its agile core values and midsts applying global to your company that's another level of change i'ts a bigger eco-system and agile it self alone maybe not work out I do see a lot of need to use Lean thinking and Lean culture in your company environment, agile is great for teams, not sure if it's the same for companies thats the part where Lean becomes more and more important and appropriate at least for me :D

Diego Pacheco

Popular posts from this blog

Java Agents

Manage Work not People

HMAC in Java