I know it has been a long time since any news has leaked out about Marcato – in short, this is because both Scott and I have joined a company we helped start called LiquidSpace. We have been busy building an initial product, getting funded (woo hoo!) and now starting down the path of maturing the business and product into a real company. It has been exhausting but a real blast, and part of what we have learned is that there is a wide range of options available to you for deciding where you are going to work, and one LiquidSpace is a practical reality you may even find yourself making that decision on a daily basis. As part of exploring that workstyle, we have also decided to try offering space for others to use.
If you have never heard of coworking, then let me give you a quick introduction. There are actually a few existing coworking sites in the Twin Cities area today, but this is still a relatively new phenomena here. If you were to look at this in San Francisco or Boston or New York (and many other denser urban areas around the world), you would see a growing trend toward providing temporary space to people that sign up for a variety of different membership plans and costs. The idea is to share the space and use it as needed on an intermittent basis – sort of a cooperative for workspace – and to provide the needed amenities to support your work habits as well as a social outlet that fits with your interests.
LiquidSpace is taking this a step further and providing a mobile and online service to allow you to find and book a cool space nearby that is available now. As part of this, we at Marcato have decided to use LiquidSpace to allow anyone in the North Metro area the opportunity to see and use our workspace. We’re still in the process of getting the finishing touches in place, but if you have an interest in trying it out, be sure to let us know and we’ll get you hooked up when the time comes.
See you in Anoka!
You may recall that I have come out in this forum against the traditional XP practice known as Pair Programming (
) – while my fundamental objections to some of the specific parts of the practice stand, I also wanted to tell you about a much more successful experience I have had of late that might seem like Pair Programming. Perhaps together we can figure out what is working, why it is so productive, and what I have learned that you might be able to copy in your own worklife. Since I’m not sure what this is or what to call it, for the sake of discussion, let’s just refer to it as “Pear Programming”.
First, let me explain the situation – I was working with a VERY distributed team; I’m in Minneapolis, MN, we had a product owner and developer in Denver, CO, another developer in Houston, TX, and a team of 3 developers and a tester in Minsk, Belarus. The very nature of our physical reality forced us to depend on the “virtual lifestyle” – I used Skype IM and voice and GoToMeeting constantly throughout the day to stay in touch with my team mates. On most days I start at home because that helps increase the overlap I get with the team in Belarus, but I would often transition later in the day to the office or some other location and would work anywhere with bandwidth, a headset, and enough privacy that I would not be bothering others.
I also assumed development responsibility for a portion of the project (yeah, yeah – I know – I’ll save the topic of balancing scrummaster and coding responsibilities for another day) and started working on a new application with a UI and Windows service and with a significant interface to a collection of web services being developed by my team mate in Houston.
As you might expect, our initial efforts were isolated, but after we each had established the basic functionality of our respective pieces, the effort shifted to integration. Now, there were a lot of technical challenges to overcome, not the least of which was my lack of familiarity with the object persistence framework and data access layer of choice, but the one thing that went remarkably well (and inspired this post) was how we communicated.
Both of us were working very hard and it was not unusual for one or the other to be online any time between the hours of 6 am and midnight. We came to rely on IM for quick questions throughout the day, but we also discovered that it had a different use as a record of sorts for the design discussions we had had, either together or one-sided. We started using it like a journal to record the thoughts and decisions we had made whether the other person was there or not. This “thinking out loud but in writing” was informal but very effective – when the other person did rejoin they could get quickly up to speed, provide advice or counterpoint if needed, but easily resume where they had left off with a far better understanding of what had changed since the last merge than one can garner from check in comments.
My take away from the experience is that while I would not universalize pair programming as a necessary practice, there are times where it just sort of happens naturally and when it does, it’s great. I’ve also seen that when it doesn’t work, it’s mutually frustrating for everybody as they try to force it. I also learned that an IM “journal” can be a better way of communicating than verbal – my arguments were better expressed and there was a record of thoughts had and decisions made that often escapes you in a verbal exchange. Bottom line – it was a VERY healthy and productive partnership and I dynamic that I still miss even though I have had other successful projects since.
Check us out in the Fall 2010 issue of the Methods and Tools Magazine with an article on distributed agile:
or go directly to the issue at
Typically, the People domain receives the least amount of focus within companies. Why? In most organizations, career advancement requires being an expert in business or technology. The relevant knowledge and information required to make a decision, provide customer support, develop product marketing is what gets you recognized. It is our survival instinct within the corporate jungle.
Even though most corporate value statements incorporate people or employees as a key value, this value most often receives the least amount of executive attention and investment. It is difficult for ambitious, hard driving, and self-reliant people to rely more on building a team to deliver, than ensuring on getting the job done themselves. If you truly want to create, build, and sustain a company that is successful for the owners, the customers, and employees, the old adage, “If you take care of your people, they will take care of you” provides the needed guidance.
Interestingly, there has been a renewed focus on the human aspect in business literature. You can’t peruse the Barnes and Noble business section these days without seeing many books about psychology, intrinsic satisfaction, motivations, beliefs, strengths, dialog skills, fears, tendencies, and talents. Information in these areas is becoming more accessible, relevant, and understandable to the average business or technology professional.
An operational definition for Agile relates to the People domain: A way of bringing individuals together, forming and interacting within a team, for the purpose of building great product. The Agile manifesto provides the framework to help guide, but not dictate, how individuals come together. My favorite value is, “Individual and Interactions over Process and Tools”. This is important because it addresses the most critical aspect of any organization – healthy interactions and employee engagement. (You know you have drunk the Kool-aid when you have a favorite value.)
There is something magical when you are on a team and everything is clicking. People are talking openly. People are laughing, having fun and developing great products and services. People work together under pressure, but are not stressed. Below is a way to measure how healthy is your team or organization or identify where your problem areas exist.
The most common measurement of a company’s health is the annual employee engagement survey. The surveys identify major trends but rarely drill down to a level that pin-points problems and identifies corrective actions. These four categories can assist with energizing people, increasing engagement, and creating teams that are truly sustainable beyond the short term success of one product launch.
Environment – This is an individual’s direct physical environment and how it enables team interactions as well as the tools, processes and practices utilized to interact with other individuals. Are individuals physically working closely with other team members, or can connect to quickly? Does the environment support quick and seamless interactions and sharing of information? Or, is the sharing of knowledge and communication among team members a difficult and hinders productivity?
Mental – When people are working as part of a team are they performing tasks that they actually enjoy and look forward to doing? Will those activities make them better and more successful? Or, are they doing work that is not a good match and does not excite them? Do the individuals on a team truly know what they are good at, and why? Do the team members understand each other’s strengths and know how to fit them into the larger team structure?
Emotional - Having or not having healthy dialog with other team members can put a strain on an individual’s emotions. Do people complain about decisions and people after meetings and at lunch? Do people not say what is on their mind because they fear reprisal? Are people stepping up to having hard conversations? Do they have the skills to engage in truly emotional and difficult conversations?
Mission – Great team’s need missions to rally around; a core mission that everyone believe in and support. This is the bond that inspires and keeps the team together. It is something that is greater than the individuals themselves; they willing share the joy and sacrifice together. The mission’s idea needs to be simple and easily articulated and understood to truly take hold and energize a team.
These four categories taken together and combined create true engagement, increase productivity, and sustain success. When one category is in limited quantity, the immediate product may be delivered through force of a leader’s personality or extrinsic rewards like bonuses; however, the short-term success cannot be sustained nor will the team continue to gain momentum.
What can you as a director, front-line manager, project manager, or team lead do to ensure your team’s current and future health is well and sustainable? Branching into the People domain is a good first step. Most people have simply not been trained to fully understand the needs of an individual, to understand the individual’s strengths, and figure out how to help this person reach full potential. In reality, this knowledge is lifelong quest in various disciplines.
You can start now with small steps. You can look at people with whom you work the closest to and ask, “Am I doing everything that I can do to help these people be successful?” If the answer is “No”, then ask someone “How can I help you?”. Better yet, meet with your team and have them ask, “How we can help each other?” The human aspect of a team often gets lost in the rush to deliver product; taking the time to understand the team and the individuals is critical for long term success.
At Marcato Partners we are examining each of the four categories and will be discussing them in more detail in the coming weeks.
If you want to discuss the concepts or more information please contact Riley@MarcatoPartners.com.
One of my favorite quotes – “The needs of the team are best met, when we meet the needs of the individual” – Max DePree.
Marcato is approaching it’s first year anniversary – September 9th! And lest you think this means things are slowing down here, the exact opposite is true; in fact, there are several significant changes under way.
Announcing Marcato World HQ!
While much of our work is directly with client teams and is often on site, we found that our work often allows the flexibility to work remote and that home offices and coffee shops can be less than ideal for being able to focus and communicate. As you’ll learn in the next section, we also wanted to have a shared space we could use as we start pursuing more common projects together. We chose downtown Anoka as the location and we now have a fully armed and operational battle station. While the local amenities and 10 minute commute are certainly enjoyable, the best part is having a common place to work together.
Here are a few more shots of the local area courtesy
of our resident photographer – Tracy Knighton:
Sneak Peak at Allegro
Agile coaching runs deep in the Marcato DNA, but so does using that methodology and our technical skills to build new products. With this in mind, we at Marcato have found that we have a unique combination of skills and experiences to be able to apply those principles to helping small startup organizations get from idea to proof of concept and well beyond. We understand when and how to establish Agile development practices light enough to serve the smallest of teams but capable enough to grow with your organization through later funding rounds. We also know how to use that hard won capital efficiently and will help expand your development capability to using low cost development resources as you move towards productizing your ideas.
Allegro Phase 1
Marcato is working closely with a new client still in stealth mode to test our new service offering by helping them to build out a demonstration of the core ideas for their new product and to support their partnering and fund raising efforts by providing a technical team that can set the architectural direction as well as deliver the goods. We’re also working closely with our good friends at Whoop Design on this one – stay tuned for more!
Please join us Thursday, Sept 2nd for the Twin Cities .NET User Group Meeting! Pizza will be served at 5pm, courtesy of ILM; Beverages will be provided by New Town. The speaker will begin at 5:15pm. The meeting will be held in the Microsoft Offices in Bloomington: 8300 Norman Center Dr., Suite 950.
Title: Everything You Wanted to Know About Velocity But Were Afraid To Cache
Microsoft’s AppFabric Caching (aka Velocity) offers a distributed caching solution, not unlike the popular “memcached” open source library. It allows you to increase scalability and performance by caching data physically (and logically) closer to the consumer. It can help you dramatically increase responsiveness of your apps and services, as well as relieve pressure on back-end resources. Come and hear about the concepts and terminology, as well as deployment considerations, typical usage patterns, pitfalls, and more.
Speaker: Scott Colestock
Scott Colestock lives and works in the Twin Cities. He has been consulting for the past fifteen years, spending time in a variety of areas with performance and process as common threads. He is most recently a partner at Marcato (marcatopartners.com), which focuses on delivering agile coaching services. He is also a BizTalk MVP, performance engineering guy, and “Team Foundation Server + Scrum” resource.
And don’t forget to sign up for these great upcoming conferences:
Agile is a set of principles to guide how you organize and function as teams and Scrum is a particular system for establishing and building a delivery rhythm within that team. Part 2 examines 5 more examples of common changes made to Scrum and the reasons why these are counter to what the system is trying to accomplish.
6. Set “stretch” goals by putting more stories in the sprint than fit within the velocity
To create a sustainable rhythm, you have to set goals for the team that can be met with regularity. If it requires heroics to accomplish one sprint, then heroics become the norm for future sprints as your team velocity adjusts to account for this. New teams often fall prey to this phenomena – their energy for the project and desire to make a good impression on their product owner gets the better of them. They let the product owner put more stories into the sprint than is prudent because their uncertainty about their actual velocity opens the door for the usual optimism of a development team. They try to shoehorn in just one more story because they are interested in the technology or feature and want to try to make it fit.
This kind of persistent inflation in velocity is unsustainable – like with any economy, real growth can only come from an increase in resources or in the productivity of the existing resources. You will see this happen through the productivity that comes from climbing the learning curve, but that always levels out eventually. What’s the downside? In the short run, disappointments happen, and instead of giving the team the opportunity to establish and celebrate a pattern of successes, they are instead frustrated by a string of missed goals. In the long run, left unchecked this behavior leads to burnout and turnover as you find yourself trapped in a “death march” of unsustainable expectations.
7. Give credit for a story when it is not really done (shippable)
Yes, it feels good to show off your work in the sprint review and to claim victory, but with each passing event where “done” is not really done, your team has taken on a future debt that must be repaid. These schedule bombs don’t go off until much later, long after the fuse is lit, and usually at the most embarrassing and inconvenient times. Also, once you compromise on this a little it becomes a slippery slope of lowering expectations as individuals vie for credit for their work. We all know that product owners can be fooled in a demo, so acceptance by the product owner is not really enough. Instead, the scrummaster and testers should hold firm to the team’s definition of success and only agree to take credit when credit is due.
8. Increase length of sprint so that more stories can get finished
It’s the day before the end of the sprint and you can see that there are a couple key stories that are not going to make it. They are big stories, so without these your velocity will be less than half what you expected and the optimistic outlook from the team is that they could get them done if they only just had one or two more days. Someone on the team suggests that it would be better to extend the sprint than to arbitrarily end it now when you are so close.
Usually this behavior indicates several forces are at work – stories are too big, too many stories are being worked on in parallel, and the team may not be doing enough detailed planning at the start of the sprint to have clarity on what will be built. Since software is a gas that expands to fill 110% of the space provided, if you extend the sprint to let that last 10% in, then you will learn nothing from your mistakes and just do the same for the next sprint. You also sacrifice your rhythm, these last minute changes in expectations confuse everyone as you try to figure out who has the authority to change the rhythm and who is responsible for communicating the new plan. Leave the plan alone, examine in your retrospective what really went wrong, and fix it so it doesn’t happen again.
9. Cut sprint short because all “bought” stories are complete
This is more of a “minor sin”, but interrupting the rhythm just confuses everyone – you are better off to find other small stories to add to the scope until the time is up than to break the rhythm. Be careful not to start big stories that you can’t finish – this just leaves the product in an unstable state as you are trying to demonstrate it and threatens the principle that the product be shippable at the end of the sprint.
10. Estimate during sprint planning meeting
This observation is controversial as there are certainly going to be situations where you are forced to do this by no apparent fault of your own, so if you find yourself in that situation, then by all means just do it. But first understand the risk you are taking – you are estimating the story in isolation, perhaps by a different collection of people than normally estimate, and you are doing so in the context of already knowing you want it in the sprint and you just need to decide if it will fit. This probably means you already know how big you need it to be, so you are anchored on this answer. What happens in this situation? The estimate comes in to magically fit and round out the sprint and the most common reality is that you underestimated its complexity.