Having learned what Scrum and XP could do; I convinced the next organization I joined to try Scrum, with me as the ScrumMaster. The company built a reservation booking and payment engine called vianet.travel. Small proprietors with manual bookkeeping used it to advertise and rent out their places to people on holiday.
Stand-ups Take Too Long
Splitting my time as a developer and ScrumMaster, I was as likely to join in the conversation during stand-up. Stand-ups took too long, where we did more talking than we should. Sometimes it took us over an hour for everyone to answer the three questions.
Noting Who Speaks
Instead of employing a draconian measure like using a stopwatch and forcing time limits for each person, I decided to listen for someone responding to another person answering the questions. I paid attention to people who spoke for a long time. I jotted down in a notebook the names of those who spoke and what seemed to be the heart of the issue.
Nobody at stand-up said anything about my note taking. As I wrote, sometimes help was offered to the person speaking. Sometimes the team had moved on to the next person before I had finished writing it down. Otherwise, I waited for a pause and would remark that I had made note of who was conversing, and wondered if we could move on to the next person. At the end of stand-up I went through who was having conversations, in case people needed to follow up.
Finding the Purpose of Stand-Ups
Stand-up time decreased to less than 15 minutes and most people would leave to do whatever was next on their list for the day. Occasionally some people would find themselves in a follow-on session. These optional sessions allowed us to end on time, with the opportunity for some people to get back to work, while others could continue discussing the plan if needed.
Before long, I added a blocker board next to our task board. Sticky notes replaced my notebook for recording the impediments that came up in the discussion. At the end of stand-up I answered the three questions as a developer. As ScrumMaster I went through the new impediments raised and gave people a chance to verify or add others. I then reported on what impediments were removed yesterday, which ones were being worked today and what was in the way of removing impediments.
This visibility allowed others to help me when they could, since I was splitting my time between ScrumMaster and developer. Seeing the impediments on a board allowed management to volunteer help with impediments that we as a team were unable to remove. Highlighting what was in our way made us want to remove them faster. Agreeing on what was in our way and how to remove it let us have the courage to attack the problem while respecting each other the entire time.
My first immersion in to Scrum occurred at StorePerform. We produced workflow solutions for big box retail stores. The company retained an external coach on contract and we attended training, which eased and accelerated the transition. Throughout the time we practiced unit testing and had a continuous integration server running.
Keeping the Build Running
Code coverage for us ran at about 30-35% and we had a company policy to keep it over 80%. We used a code review system to ensure, among other things, that unit tests were created.
The team agreed that fixing a broken build was highest priority. The person responsible for breaking the build was awarded a stuffed GIANTmicrobes® “macro virus” toy to display at their desk and wait to award to the next person who broke the build.
A successful build meant the code compiled and ran. Success also meant that all unit, integration and functional tests passed.
Applying Test Driven Development
Our manager entered work one morning and called us in to a room. He pulled copies of Kent Beck’s book “Test Driven Development” (TDD) out of a large box sitting next to him and handed us each a copy. Our assignment for the day, he told us, was to go home and read it. Tomorrow we’d be coming back as test-first developers. It took awhile for it to sink in that he was telling us to go home and read a book, but we did.
We assembled the next day and discussed the book with our manager and each other. The conversation was moving at a pace that made me believe I wasn’t alone in having read the book. We agreed to test-drive any code we created and discussed what we would need to do to support that kind of work. This would increase our code coverage, we hoped, and using TDD would help us to hit the 80% company policy.
Getting the Same Result
After a couple of months, our code coverage was still running in the mid-30% range. At the time we worked mostly solo and after completing a big effort, we would schedule a code review with a lead engineer.
Creating the Motivation to Pair
Now that we were apparently adopting XP practices, a couple of us felt like trying pair programming. Our manager supported the concept. We asked around if people wanted to pair and most were not interested. A big concern raised from a couple of the leads was that tasks would take double the person hours to complete. Some developers also believed that it would slow them down from cranking out work.
The merits of pairing were discussed as we continued to work in front of small, low-resolution monitors that were not well liked by any of us. Our accounting department saw high-resolution monitors as too costly for everyone to have one of their own. I asked my manager about the feasibility of approving just one. Could we justify it as a low-cost way to experiment with pair programming and manage the risk of work slow-down for the team? I hoped that folks on the fence would try pairing as the larger, higher-resolution monitors were so coveted by every one of us.
Accounting approved the purchase request swiftly. Upon the monitor’s arrival, we set it up in a small room where nobody currently worked. The room we chose had a wall of windows that looked in to the building across the street from us. The room was large enough to accommodate two, or three, work areas. Setting up the workstation drew curious on-lookers who were told that anyone could work in front of the new monitor. The privilege required finding someone to pair with.
Practicing Pair Programming
Those of us who were interested created a schedule, with three two-hour pairing sessions each day. The demand for the sessions grew and pretty soon our manager was able to get a second monitor approved. We switched up the pairs each session and among four of us we had six pairs. We could all pair with each other every day.
Within another quarter we added two more large monitors. Some days our manager would also rotate through the pairs. We switched rooms so that most people could pair in the large room. The smaller room now became the space where people worked solo when desired.
The Results of Pairing
We found that code coverage increased every Sprint. We agreed to increase coverage by 3% a Sprint, instead of failing to obtain 80% coverage, and usually exceeded that amount. Pair programmers were not awarding each other the “macro virus” toy.
The time spent on task did not double as speculated and our velocity increased. We noticed a drop in bugs along with an increase in code coverage. Other code measures improved for our team, and it was getting quiet around the foosball table.
Work was becoming fun for us and we didn’t need to play games for distraction. We did have to start enforcing breaks at the end of a two-hour session. Time was flying by as we worked intensely together and the breaks helped us keep energy levels high during the day.
Code coverage passed 80% and that level was added to the definition of a successful build. Less than one bug per week was being produced, and we fixed most bugs within a Sprint. We changed our working agreements again. We had fun building a system together that became easier to create and maintain.
Reading that AgileScout is looking for case studies and not just the theory of Agile, I thought I might start posting these stories from my career. These come from an IEEE paper that was first published for Agile2011. The paper is too long for one blog post. Leaving the tales as close to the original as I can, I am posting each one as a separate article.
Ten Tales of Positive Change
Is it possible to make a difference? Or at least enjoy the interactions more? These tales relate successful attempts at making improvements. They are my experiences working in software shops and using Agile methods.
Suddenly I find myself at home. The last thing I remember doing was driving away from my current struggle at work and wondering, what can I do to clean up this mess? Shutting the door, putting away my keys and walking to the table I think about successful attempts from the past. It’s easier for me to remember the challenges and dwell on what could have been. Replaying the drama and mistakes is not helping and so I refocus on the wins, no matter how small. When did I feel like an improvement was made, and why?
I reflect over my past six years of work in different Agile environments. The time starts at StorePerform, where I created software with a team using Extreme Programming (XP) development and Scrum. After that I went to a start-up called vianet.travel to work as both an XP developer and ScrumMaster. Then I moved on to Yahoo! to be an Agile Coach; run some training, and embed on teams as a ScrumMaster. After that I trained and coached as an independent consultant. They conclude with Rally, where I worked as an Agile Coach. I am now helping Jeff Patton start comakers.
Ten tales stand out for me and what follows is a recounting of them. They are described mostly in the order in which they occurred, from my time working in Agile cultures. The tales are about:
ELIGA’S DEATH STAR CAFÉ WINS PROGRESS AWARD
Replacing the Officers’ Mess, Organic Café Wins Cultural Award from the Coalition for Progress
In the Officers’ Mess, fights were becoming commonplace. Many officers complained of the poor food quality, slow service from the slaves, and lack of credits for change. Rumors flew that the Mess had an atmosphere rivaling that of Chalmun’s Spaceport Cantina on Tatooine and Eliga Erutluc knew it wouldn’t be long before someone was killed. He quit his job as a hypermatter core specialist to serve organic meals from a pop-up kiosk outside the Mess Hall. Eliga felt that serving higher-quality meals would boost morale for the officers living on this ultimate weapon. The meals were made within a shorter timeframe and at a lower cost, creating a high demand for the delicious fare.
“It was unimaginable to us that this kiosk would replace the existing Mess Hall”, said General Moradmin Bast. Yet it was the General who saw the opportunity when he first sampled a Corellian style hotcake garnished with Seed Poppers. It had been given to General Bast for free after he was disturbed by the long line in front of the kiosk. “My first inclination was to arrest Eliga and destroy this unauthorized pop-up blocking my way to the Overbridge. Instead, Eliga convinced me to try his hotcake. One exquisite bite and I realized we could correct the situation in the Mess Hall. I immediately appointed Eliga Master Chef and granted him permission to rid the establishment of the slaves.”
Mr. Erutluc, who comes from Nashal on Corellia’sTwin World of Talus, decided to emancipate the slaves instead. “Mr. Erutluc treats us as equals”, said ex-slave Jax Pavan, “and lets us learn from our mistakes, instead of killing us for them”. The ex-slaves commandeered an unused drydock to convert in to a farmstead for the café’s food. “Supplying fresh food to the ultimate weapon’s Mess Hall was impossible, and we decided to create our own source.”, said a grateful Jax. It was the first of many collective decisions made by the liberated staff.
With Eliga’s new café now fully operational, notable guests such as Crueya Vandron appeared. Lord Vandron is a member of a select committee which governs the Coalition for Progress. Noting that all of the staff in sight were human, Lord Vandron bestowed the café and its owner with his newly created award for Human High Culture. He then called for this press release so that the galaxy may know what glorious opportunities await all citizens who are of service, like Eliga Erutluc.
In accepting the award Eliga said, “Thank you General Bast for believing in me, and to Lord Vandron for this extremely nice award. I have found while serving the officers on this superlaser that most are really very nice, friendly people. They just needed someone to show them they cared. Coming from Nashan, I can naturally do that with food. I’m glad they find relief in my café from the pressures of enforcing the Tarkin Doctrine. Thank you again for this award, and the opportunity to serve the Galactic Empire.”
Eliga’s café strives to provide a quality food product and dining experience in a minimal amount of time, while adjusting to the needs of every patron. The café is committed to bringing autonomy and equity to all of its workers.
The Death Star is a battle station several hundred kilometers in diameter and mounting a directed energy superlaser capable of completely destroying a planet with a single shot. At the heart of the Death Star is a gigantic hypermatter reactor, possessing an output equal to that of several main-sequence stars.
Since service onboard the Death Star is a long-term affair, the station maintains a number of civilian amenities to make the time aboard a deep space station more comfortable. Parks, shopping centers, recreation areas, and taverns such as Eliga’s and the Hard Heart Cantina can be found in the general sectors of the station.
Contact: Lieutenant Adion Lang, Imperial Security Bureau Central Office on Coruscant
All Star Wars references to planets, people and organizations come from the Wookieepedia.
In a discussion with colleagues about our ability to make a difference with larger customers, I mentioned the scene in “Clerks” where the main characters discuss the fate of the contractors on the Death Star. We disagreed about what we may consider “evil”, or “bad” and that while we may not influence the overall culture, we might be able to make a small difference. That led to a tweet from Bob, which this expands upon.
Did you notice that Eliga’s name is just backwards Agile Culture? There are plenty of posts out there on this like this one, or this, which take on similar issues. Do you think Agile is making a difference? Can it?
Outliers: over 1,400 visits 6/09 and time on site over 9 minutes 11/09 and in June 2011 from 300 to 200 subscribers
Statistics for the last year
80% visit once
65% search traffic, 19% referral, 16% direct
9,400 unique visits, 14, 700 page views
1 minute average on site, 84% bounce rate
196 subscribers, reach of 6
Outliers: over 100 page views on 1/11 and over 13 minutes on site on 12/22, reach of 53 on 12/24
Not much has changed on this site over the last year, from when I first started blogging. I think a few people who know me subscribe, and that’s about it. This successfully proves once again, how a poorly maintained blog gets little attention. So why do it? What do I want to get out of keeping a blog? I tried to explain that here.
Let me give you the answer I told my wife last when she asked. I blog for the same reason everybody else does. It’s the same reason you, me, and everyone else are on Facebook. To get laid. She probably won’t ask me again. Did you laugh as long and loud as she did? Then you might be someone who should consider subscribing to this blog.
If you’re someone who subscribes because of the Agile stuff it’s OK, I’m going to keep writing about it. If the rest of it is as interesting to you as the recent craze in kitting is to me, then you may want to subscribe to Agile fashion only. Just be prepared for a little more of my personality and humor in it. I’m no Agile Borat, but I might describe in a little more detail the people and situations that amuse me. I hope you find them amusing, too.
Or you may be the type of person, like almost the other 99% of us out there, that does not even know, nor care to understand, all about this Agile stuff. Perhaps you’re more amused by the likes of selfpoptart. While I will try to show a little creativity and humor, you’re really putting a lot of pressure on me to produce something unique. But you can see if I’m up to the task by subscribing to the other stuff worth mentioning.
Changes to the site
Changed the name
Created new categories
Converted old categories to tags
Updated Top Posts page
Added tags to the top posts
Now using cloud tag
Added category-level feeds
Adding media to excerpts
Adding pictures to posts from New Zealand
Given the reasons I want to blog, I’ve made some changes. They’re summarized above. If I want the blog to be about more than work, I needed the name to reflect that. I also wanted to clean up the clutter of the categories, and put everything Agile under one category so that people could subscribe to that part. I also made a separate space for our adventures in New Zealand. In an effort to pick up more search traffic, I started using the tag cloud. Old categories were converted to tags to help seed that cloud.
Some time ago in one of the upgrades it mangled some characters, so I’m going back through old posts and reformatting. While editing I’ve been reminiscing and throwing some pictures in there, too. In keeping with the blogs new name, I keep tinkering with things a little bit. I’ll probably keep messing with it until blogging is as popular as reading newspapers is now.
What do you think? Are you ready for my new attitude?
The donation from us all is on it’s way. I looked at the wepay account. Cougar had called me to say that he was able to make a request for his funds. That was after I added him to it. I notice a pending transaction from Cougar’s Recovery Fund, to his credit union. Now we’re just waiting for approval, and my part in this is coming to an end. I hope the best for you Cougar this holiday season, that you feel well soon, and keep on keeping on.
This all started for me last Thursday, when I awoke to the following status update posted by Cougar on Facebook. Thanks to whatever is the new algorithm for Highlighted Stories, it is at the top. I like to sort by recent first but due to a known issue I am confronted by Cougar’s posting his suicide note.
As I read through the comments, someone has located the guy and taken him to a nearby hospital. Unable to talk, he’s survived the ordeal. Cougar updates us later that the doctor is surprised that he did. But it’s as I read the last comment shown in that image to help get him a job that I start thinking, let’s raise some funds.
As I read on about people wishing the best and stating that they would contribute help and support, in any way that they could, I keep thinking that we should do a kickstarter type of thing for him. I look in to it, and it turns out they are only for projects.
So I do a quick search and find gofundme, a site backed by wepay that supports many different types of fundraising ideas. It’s integrated with other social media sites and I sign on through Facebook and create an account. The process is simple and in minutes from deciding to take action, I have posted it on a few of the social groups in which I’ve seen Cougar at events. Later on, I also post it to his wall. People are commenting there on what’s going on, and giving well-wishes.
This is pure chaos, and so I’ve decided to act first. Later on, people have asked me why I’ve done this. And at this time I question it myself. What I hope to accomplish is to help offset the medical expenses incurred in an intentional tragedy. Especially one inflicted in a circumstance of financial straits. I’ve seen this before. Actually, with this specific person. But with other people. too.
The most recent one was just a couple of weeks earlier. Someone in our family buried his best friend, who shot himself. The man had found an insurance policy years before which would still pay out in the event of such an event. The 5 suicides in Palo Alto come to mind. Another friend’s Dad went in to a suicide pact with his wife and daughter. They succeeded, he did not and spends his life in jail. I’ve had a cousin leave her family in a car left running in the garage.
There’s been some other close calls. A roommate from college. Another family member. The impact on people emotionally, and financially, is great. And I’ve heard of health, and other insurance companies, unwilling to pay out for such intentional events. How that must make the survivor feel, after such devastation.
While I can try and be there for people to work through the grief, that kind of help is so intangible and subjective, it can be tough to convince myself that anything but time could even start to make a difference. So giving financially seems to be a practical step, where the result is tangible, and progress can be checked. It is also a more productive channel for dealing with the nearly overwhelmingly out-of-control and helpless feelings I had when reading that post.
The outpouring of donations from of all us has helped me, and probably us, in trying to react appropriately to a situation we don’t understand. I hope it helps you too, Cougar my friend. While I had my own intention on how I’d hope the money could be spent, it’s not up to me. It is a gift to someone so clearly in need. It won’t solve the problem. Maybe it can help what seems to be a vicious cycle spinning out of control, fueled by financial problems which I feared this attempt could exacerbate.
International Human Rights Day was on December 10, 2011. In recognition, I participated in an event organized by the direct action working group of the #occupysf movement. This is one protest march in a series the group does every Saturday at 3pm. Human rights day happened to fall on such a Saturday, making it easy to be the theme.
Making my way through the easy-ups of the outside market, I spotted the gathering in the circular steps behind the crowded ice-skating rink. This was just off the main path to the left, where I saw some signs being waved about. If I’d stayed on the main path, it would’ve swept me in to the farmer’s market with everybody else hurrying to get over the Embarcadero. It seemed ironic to see all the easy-ups while police surrounded a blank spot to the right of the main path. Amongst all the tents and crowds, they were not allowing anybody in to the one area where a week before the occupysf encampment had been.
I’ve read the Universal Declaration on Human Rights, and it seems to make sense to me. I guess all the countries who adopted it felt that way, too. Then again, I now check “Other, Human race” for ethnicity questions, if I bother to answer at all. I picked that up while listening to the story of some anthropologist on NPR, while driving around in our Civic Hybrid.
By now you might have decided to classify me as a liberal. Or, if you’re a conservative idealist, the only reason you’re still reading this, is that you’re slightly stunned from thinking about the intricate connections of groups, people and actions associated with what I just described. You might be unable to move, frozen in disgust. If it helps bring you back, I looked for the cheapest hybrid I could find which had the HOV sticker, which let me in the carpool lanes during rush hour. Around here, that thing is a premium!
The point is, that we all build up our own judgements and reactions to the world around us. While I hope you don’t totally pre-judge me, I tried to approach others at the event with that same attitude. And like you it was difficult for me to cast aside judgment. Then again, I can be a harsh critic. Ask those that I’ve worked with, lived with, dated, or my wife. So of course I have my own critiques, and include some here.
Some folks have objections to part of the declaration itself. They state that it feels colonialist, or western-biased. I personally wonder about the language around marriage and family, which seems to support only the most traditional of definitions. But I do like that the basis of authority for the government comes from the will of the people. I feel this ties in to what I like about occupy, and this particular march has drawn me in. In the beginning I dive right in to the crowd, and then back off to get a wider view. Pretty soon the talks end and Families for the Occupation lead us off slowly, with the children in front.
During the talks I noticed a group with a concern around circumcision. They have one of the biggest, and most professional looking, signs in the parade. And no matter what, they seem to be right around me where I think that someone watching might infer a connection, when there is none. I catch up to an older gentleman holding a sign listing the Declaration on one side, and on the other side a list of things which deprives people of those rights. Walking next to him and his friend, I take a picture and remark how much I like is sign. “Which side”? he asks. “The front”, I reply.
A reporter from USF takes another picture of the guy, and that’s when I notice the tent being lofted by four guys, who look to be perhaps in their twenties. It is my favorite “sign”. Stenciled on one side it reads, “Shelter is a Human Right”. They are surrounded by folks in Christmas hats, who probably dropped by on their way from santacon. The brightly regaled Santas and friends on a pub crawl, as you can imagine, drew more participation and affected more people.
Our parade was currently blocking a part of Market Street from cars being able to drive on it. The parade might not have been as long as an escort for a wedding, or a funeral. Given how insane that part of town can be, and how more so this time of year, I was personally very happy to have that police escort holding up traffic as we walked through intersections.
We turned off Market Street at Powell St. This area is where a trolley turns around, and stops for the BART and Muni are there. Many groups pull pranks and have flash mobs there. This is where I enjoyed my favorite moment, and share it with you now:
We made it to Union Square, and it was time for more talks. A lot of time, for a lot of talks. During the Free Tibet discussion someone handed to me a flyer denouncing the Dalai Lama and commending the Chinese revolution. Even before being handed the flyer, I was thinking about Penn and Teller’s viewpoint on the Dalai.
Some of the organizers were pointing out that people were discarding their signs and leaving, and that the talks were dragging. The older man tried to shout something at the crowd and was met with a, “thank you, passionate human rights guy”.
What was left of the group finally started back to the plaza, and on the route I noticed one of the tent-holders get in a tussle with a couple of other guys. The tent holder’s costume appeared to be anarchist, while the other two men seemed to be sporting the day-shopper, capris-and-polo look. Mostly the group just carried on, diverting around the ensuing action. The chants seemed to reflect more the position of occupy, rather than of human rights.
Almost back at the start, the group paused at the Bank of America, for another woman to tell her story. This is where I put down my sign, and headed to the Muni. I understand the tent made its way in to the zone protected by the police, which took some guts.
One of the things I like about the General Assembly is it’s ability to come to consensus and where the evangelizing and instruction are minimal. In a day of protest I can support having folks speak and like Amnesty International did, kept brief and to the point.
My impression is that the turnout was low because people like to have fun and celebrate, especially this time of year. Besides that, it was a routine protest with low press, and occupy was putting most of the effort in to getting ready to shut down the ports. While I understand some of the justifications, that is not an action I support.
For one thing the tag line is, “The Occupy Strikes Back” and while I know there’s a myth that those cranes are Lucas’s inspiration for the AT-ATs, it’s associating with the evil Empire! It’s one episode too early, and should be titled, “Return of the Occupy”. It even fits in with the recent raids on encampments.
While funny, “Strikes Back” even speaks to the violence Occupy Oakland condones. Some of the police actions have shown that violence by the movement will not be tolerated. Even peaceful protesters practicing civil disobedience are treated roughly. The power a president has in our nuclear age might not be enough to rule a galaxy with a Death Star, but the authority of our commander-in-chief is more than enough to destroy our planet.
I support that all peoples deserve human rights, while corporations do not. So I took the train to join the action and you know what? That two dollars I spent on the fare was more than what half the planet has to live on per day. Demanding the same rights for all humans and having folks honk, wave, cheer and even join the walk was enough for me to enjoy the day. Thinking how this movement has helped me get involved in the things I care about has me judging it successful. I am ready to do more and have taken a first step, getting off the sidewalk and in to the street.
Before the latest rendition of the “Occupy” movement began, my wife and I biked over to the indie zine fest in Golden Gate Park. Much of what was presented centered on fantasy and violence, and both of us were looking for more realistic portrayals of the world around us. Picking up the book “What Would It Mean to Win?”, by the Turbulence Collective, I wanted to get a better understanding of the historical activist stance around globalization, capitalism and state control.
The question asked by the title is in response to noticing the phrase “We are winning” spray painted on a wall during the Seattle WTO protests. The book gives me the impression that the answer apparently stems from Marxism and was last manifested decently amongst the Zapatistas.
The book’s question is presented to various authors and the whole process feels like a retrospective on various movements at the turn of this century. In the reflection, this group recognizes it’s place as a sub-set of the demographics of the movement, and like myself are mostly white males. The two essays which caught my attention were “Politics in an age of fantasy” by Stephen Duncombe and “The crazy before the new” by Kay Summer and Harry Halpin.
“Politics in an age of fantasy” has a lovely phrase, “ethical spectacle” to describe how best to turn vision in to reality. Duncombe describes that progressives have become too grounded in reality, and have lost the ability to dream about the change they want to be. This ethical spectacle looks to amplify and perform truth and reality. It does so by making the spectacle participatory, transparent, real and a dream. In other words as we are called to action to stand up for our beliefs we must do more than stand by and watch. As we engage in action we are constantly reminded that we are fabricating the event, staying grounded in the possible and showing what we want to become. It reminds me of Improv Everywhere and other well-intentioned flash mob type events.
In “The crazy before the new”, the authors look towards complexity theory as an unexpected source of optimism for life beyond capitalism. The essay explains that capitalism’s complex system is behaving wildly and is at a point where massive systemic change will occur. The attractors for this type of change are seen as large increases in energy output and materials manufacture, increasing connectivity, and a looming ecological crisis. With capitalism seen as the accumulation of work, material and energy; it’s motives are in direct contradiction to living on a planet of limited resources. The essay concludes with a vision of autonomous and interconnected groups working in tandem to confront an ecological crisis.
This book also describes briefly the concept of Neoliberalism; the desire to privatize and deregulate, and in that sense liberalize, everything under state control on a global scale. The collective authors oppose the concept and look to strengthening a distributed network capable of response to faults in this global system. While some ways forward are suggested, no clear path is laid out nor is it intended, by the reflective nature of the book.