Friday Jun 13, 2008

Playing to the level of desire

Last night I played a game of hockey against an all girls team. I had a bad feeling when I walked into my locker room and the captain announced that we were going to "take it easy" tonight. Three passes in the zone, no break aways and all that stuff. I was truly aghast and then I heard it was due to us playing an all girls team.

I totally disagree with the philosophy that you play a different game depending on your perception of the competition, unless it is to change the game up in order to win or play better. Dumbing down our game is insulting, not what I signed up for, doesn't do anything but fuel misogynistic tendencies and frankly, makes the other team worse. Will you play as hard as you can if you recognize that the other guy (gal) is just screwing around? Nope.

So, I played hard. I gave my best efforts against the team I played with, and they played hard. The goalie (my buddy) taught them how to check a huge guy and get away with it. He applied his stick in places that he shouldn't have. I ended up getting boarded (hard) by someone that was a foot shorter and 100 Lbs smaller. Good for her. I had a ball and I was a human pinball. (Another point, what ref is going to call boarding on some one I could bench press?) They had a break away on me because I over skated and lost the puck. If I was taking it easy, they never would have had the break away.

It was hockey, they played hard and I honored them by playing my best. There is no shame in defeat. There is only shame in not playing or trying. Play your best game. Always. You can teach and you can make them better players by playing a good clean game and playing it honestly. I think that is life too. People raise to the level of expectation and to their level of desire. 

This seems so clear and so simple to me.  

Thursday Apr 03, 2008

Conversion

Years ago I was a contractor at Adaptec. At that time I was responsible for performance analysis on a product called WinStripe, essentially an early implementation of raid 0 for windows boxes. It was a cool job and I got to geek it up with lots and lots of hardware and some wicked fast (for those days) throughput numbers. However, I felt it keenly that I was a contractor and I didn't like it much. I felt like I was missing the secret knock and wanted desperately to be part of the crowd. When I converted, on November  18th, I was very very happy.

About a year ago I had the chance to reconnect with a colleague of mine from Adaptec and she joined my organization as a contractor to help manage my community. Together we launched Storage Stop (our blog about storage goings on), started editing and recording video of the projects we are doing as well as helping with our portal. I came up with the idea to start translating blogs, and  Deirdré came up with cool ideas to fund it. We launched an effort to measure our metrics and run analysis on our communication trafficking and wrote dozens of interesting presentations and storage related blogs. In one short year we helped change the face of our storage communication. Deirdré is responsible for a tectonic shift in the way we communicate and we are much more prolific in terms of messaging and communicating.

Deirdré has (sadly) left my organization to become part of our Business Communications team. I am a bit sad because Deirdré is a phenomenally good communicator and having her in my organization was great. We did a lot of cool things together. On the other hand, this is a larger role for Deirdré and I can foresee great things in her future. Additionally, since I run an engineering organization and not a marketing communications organization, it would have been difficult to convert her to a regular employee. In her new role, conversion was axiomatic. So, I am very happy for Deirdré, she is now a formal Sun employee, and it is great.

Welcome Deirdré (again) and thank you for all your help and efforts. Good luck with your new role and I look forward to working together (again) for many years.


Friday Mar 14, 2008

Small business

I sit on the board of directors for the alumni association at one of my alma matters, The University of Colorado. As part of that I occasionally run into folks doing small business start ups and I get a chance to advise them on how to approach things such as venture capital and angel funding.

The other day, one of my colleagues in on my league leading hockey team (19 and 1) and I were discussing his idea. It is in a totally different business space than I normally work in, and yet, I found my self saying some of the same things to him that I say to my teams at work.

\* Have a plan for what you want to accomplish

\* Know what you are trying to accomplish This actually translated into "How do you get paid" and a discussion into attracting the right kind of talent for your business model. VCs and angels may invest in you (make no mistake, they are investing in you) but, you got to be able to tell them how they get paid.

 

\* Good enough is important. Hal Stern calls this "Close enough for Jazz" in his blog on diminishing returns. I don't have his same eloquence, but, he nails it. We can spend years making the product better. However, at the end of the day you got to get paid. In order to get paid, you got to ship. There is an inflection point between quality and shipping, and, it isn't always easy to discern, but, the ones that win ship early enough to get paid and not so early that their customers hate their product.

\* The best way to run a business is to run. By run I mean be nimble, meet the needs of the market, respond with alacrity to your core customers. One of the firms I advise was waxing eloquent about their patent portfolio (all one of them) and were a little stunned when I explained to them that patents were for big companies, not little companies. This is not to dissuade you from seeking a patent. However, a patent is best defended by an army of pit-bull like lawyers that bill at $800 an hour. This will bust a small company in about 10 minutes. If you think that litigating a patent infringement is a good business model, well, you are in a different space than I am and I can't help you. The best defense is to turn the product frequently with innovation, get known as a market leader and then get bought by a company like Crocs. Or, grow so fast and so big that you too can afford an army of trained attack lawyers. Either way, a patent is no real protection until either very bad things happen or you get very big. Run, run fast.

\* Show continuity of product or business. I constantly talk to my teams about the factory model for software. Do a few things, very very well, turn it out, do a few more things, turn it out and so on. This regular cadence of releases teaches our customer base that there is continuity to our operation, that they can expect something fruitful in a reasonable period of time ( I like 4 to 6 month intervals) and that we deliver instead of boiling the ocean. The same thing applies to the start up. A one hit wonder is uninteresting. Even the iPOD had a continuity of new product offerings.

\* Leverage the value chain. Frankly, there are many things we can do reasonably well and only a few we can do really well. I am convinced I that there are people out there that can sell sand to a crab in the middle of the Sahara. Get them to sell your product. Do what you do very very well. Buy or acquire the rest. (Some folks c all this core competency.)

Anyway, I think it is important to understand the business model and to turn products and software at a sustainable and rational pace.

My thoughts for a lazy Friday afternoon.

 

Sunday Feb 17, 2008

People of action and philosophical aptitude

I recently read parts of "The Politics of Aristotle".  I did enjoy the read and one passage in particular resonated with me:

"...the State will be ruled by its best men, not by persons of no
special excellence, and by statesmen who make peace rather
than war their end, and who are not only men of action,
but also men of philosophical aptitude, not by mere soldiers
to whom war is the one thing worth living for."

and "...On minor contrasts we need not dwell."

THE LACEDAEMONIAN STATE. xxxix

Wow, in a few sentences Aristotle summed up a lot of what I believe in. I believe in the renaissance man or women. I believe in the scholar, warrior, student, musician and artist and I aspire to be of all of those. One phrase in particular resonates with me and make me think of one of my all time favorite movies "The Princess Bride":

"We are men of action, lies do not become us."

Much of what I do is help drive action. We get stuff done. We act, we think and we plan. We don't act simply for the sake of action, but, we advance the ball. We make decisions that are meritorious only if they are right. This is a particularly strenuous methodology for judging success or failure, but at the end of the day, if you have to lay somebody off, they really don't care all that much about the whys. They care that they no longer have a paycheck, health insurance or the ability to pay their mortgage. Results matter. Delivering product matters. Financials matter. If we the leaders fail to run our business, our teams suffer. It is a responsibility that is worthy of being lived up to.

 Sort of reminds me of another great movie, The Replacements:

Shane Falco: I wish I could say something classy and inspirational, but that just wouldn't be our style.
[pause while everybody is in the huddle]
Shane Falco: Pain heals. Chicks dig scars. Glory... lasts forever.

Shane Falco: I want the ball.
Jimmy McGinty: Winners always do.

When I talk to my teams I remind them at the end of the day we get stuff done. The stuff we get done needs to be the right stuff, and, it needs to be the stuff that will help us win. A culture of excellence and a culture of execution breeds more excellence and more execution. Get stuff done. Win.

 

Friday Feb 08, 2008

Spiral Methodology

Those that know me know I am not a huge fan of spiral methodology. A lot of people like it, and I see the value. However, it has never worked particularly well for me. I prefer a modified waterfall methodology with short payloads. Perhaps this isn't all that radically different from spiral, but, I like the concepts better. Spiral never really feels like you are done, and, it also has the added implication of compounding. My feeling is that it tends to prevent engineers from considering the whole problem set, fostering a "we will get to answering that question later." This really is not a blog talking about the relative strengths and weaknesses of any given process. That starts to feel like a religious war very quickly. However, it is a lead in for something I saw on the plane from Boston today.

I had the rare pleasure of being upgraded to first class for my trip home. Plane was not full and every once in a while fortune favors you. I was standing in the special little "First Class" boarding area when the started loading the plane. I was probably number 10 or so in line. About the time I arrived in front of the check in podium a tall lanky fellow ducked under the security rope and handed his ticket to the attendant, effectively cutting off the guy directly in front of me. The guy in front of me became visibly upset and said some rude things half under his breath. Everyone proceeded to board. Of course this was first class so it was inevitable that these two fellows would be seated in reasonable proximity to each other. Injured party #1 (the guy that was cut off) walked by the second guy on his way to his seat and said something else, equally as rude and probably anatomically impossible. Second guy seemed a little stunned and he proceed to crowd the first guy (who was substantially smaller) by putting hi face very close to the angry guy that was cut off. He explained that he was the 2nd guy in line and he was directed to the podium as they were boarding the plane. So, he wasn't really cutting the other guy off. However, his body language wasn't affable and it was clear that things were hitting a strong downward spiral. Then the third guy jumped in to rescue angry small guy. A little testosterone was flung like monkeys with pooh. Cabin crew got involved and oddly we spent about an hour waiting on the tarmac. Connected to angry folks? Dunno. However, this I do know. If angry rude guy hadn't said abusive things and realized that being cut off in a line for premium passengers was so small and irrelevant to anything, this wouldn't have happened. Conversely if the guy that appeared to jump in line had realized that his behavior appeared offensive (regardless of whether it was or not) and simply said, calmly and apologetically "I am sorry, I see your point. I wasn't really jumping in line, but I understand how it appears, and for that I apologize", well, angry small guy would probably have just felt silly and either backed down or  ignored it or whatever. Instead things spiraled out of control and the small picture eclipsed the big picture.

Not really an indictment of the spiral methodology, but, it is one of my (small) objections to this methodology. I am sure others use it just fine, and if I offend, I apologize in advance.
 


Monday Feb 04, 2008

State resolution

I was recently at lunch with a coach. It was a good lunch, mostly because of the conversation and the company. Ginger asked me the following question:

"What is 'state resolution'?" Now she was obviously referring to  one of my earlier posts about my desire to wring out ambiguity where it makes sense. However, it got me thinking about the common vernacular we use in our day to day communications with our peer group. In the lexicon of a quantum physicist, "State Resolution" pretty clearly points towards Schrödinger's cat and the relative superposition of quantum states until one collapses the probability field by measuring (open the box and check for relative dead cat-ness (yes I do make up words, consider it my contribution to humanity)).

 

In computer science, we commonly understand the machine to be in one of several states (arbitrarily many depending on the state definition engine, but finite) but ultimately, at the microscopic level, a bit is either 0 or 1, true or false, or or off. The way we determine state is by a typical GetState() function. I could wax philosophic about state checking, state machines and various other topic associated with state checking, locking functions, guaranteed state and so on, but, that misses the point.

 

Simply put, state resolution translates into "determine the answer of something", when possible. Frankly, if we can answer a question definitively we can move on. This is not in conflict with my relative comfort with ambiguity. Ambiguity is ubiquitous in our day to day life. However, ambiguity for the sake of ambiguity or because it serves to cloud judgment, persist in artificial structures or not serve the common good needs to be resolved. Yes, I am comfortable with ambiguity if the question is essentially unanswerable, doesn't resolve the larger issue or would require too much effort to resolve (ROI calculation). That being said, if we can answer the question (resolve state), we should.

And so I learned something. Probably obvious, but, we need to make sure we communicate our complex ideas such that others can "pull the thread" and determine what we mean. 


Tuesday Jan 29, 2008

Communi-cake

Kids are great. The other night, on the way to a friends house, my younger daughter asked me one of those child questions that are almost impossible to answer. Something like, "Daddy, why is the snow snowy?" Anyway, I asked her, rather impatiently, "why would you ask me a question like that?" I went on to explain that the question didn't really mean anything. My younger daughter looked at me quite seriously and said in a very patient and teaching sort of voice "Daddy, we need to work on our communi-cake." Now, I know my daughter, but I am not sure whether she meant that we need to communicate or we should have some cake or both. This is the same kid that explained to me that the Green Bay Crackers were a lot of fun and that the brother of paella was cake. Yes, my little girl does love her food. Given any ambiguity she will most certainly resolve her understanding to her frame of references, which is most assuredly centered in food right now.

Don't we all do that? 

Tuesday Jan 08, 2008

Requirements definitions

I just spent all day in a meeting with marketing, engineering, serviceability and program management. This was a kick off meeting and as I am wont to do on occasion, I explained a couple of things about myself. I thought it was a useful requirements definition, sort of in the same vein as how to manage your manager. The first thing I shared was a list of traits and things I believe in. They are shared here for your edification and perhaps refinement:

1. I believe in state resolution. I am all about state resolution. I like disambiguation. Given half a chance, I resolve state. Given less than half a chance, I resolve state.

2. I don't believe in the right of infinite appeal. I think that once a decision has been made, unless there is substantial change in the environment that fostered the decision, we live with our decisions. No coming back to the table asking to reopen the decision because you don't like the decision.

3. Every profession, team, organization can point to a hero. They are generally the people that died and have a statue erected in their honor. Rarely do we need heroes in software engineering. A disciplined methodical process that gets the job done is very very useful. Yes, methodological is a word. <little inside joke>.

4. Drama is no fun. I was a thespian in high school, and even had the lead role in Mark Twain and the Garden of Eden. In my professional life, I dislike drama. It clouds judgment and muddies the water.

5. Given that I believe in state resolution, almost everything I do or respond to drives action. If we have a meeting, something should come of that meeting (an action, a resolution, a decision). A "go away and think about it meeting" does have a place. This is the exception rather than the norm, (at least for me.)

6. I believe strongly in the definition of success. If I understand that definition, I can normally figure out a route to success. Without that definition, I struggle.

7. I believe engineering should reserve creativity for areas where we can differentiate or where we have a core competency. Frankly, there are thousands of ways to track bugs, build project schedules, allocate resources and manage the software development life cycle. At the end of the day, I care little about any one methodology. I care most that the methodology is constant so we don't have to invent anything (from a process standpoint) and so we can put our talents towards a sweet configuration or software package.

8. I sometimes speak in black and white terms. I do this not because I am not capable of nuance but rather because this helps formulate or frame the argument. It goes to state resolution and execution. Nuance is critical for success. Plain speaking and bullet statements cause you to refine your argument and that drives state resolution. 

So, anyway, it was a good discussion and this was something I shared with the team. Do you have tips for managing yourself? What are some of your maxims?

 

Tuesday Jul 10, 2007

The value of content

A buddy of mine recently posted a blog about Prince and his new method for harnessing the digital age. This particular example is interesting to me because it talks about a new way to make money in the music industry. Or is this an old way? In any respect, the concept is that the distribution media doesn't have any particular value, the content does. So Prince sells a Right To Use (RTU) to a newspaper which distributes 3 million copies of his new album with a newspaper. This drives adoption, which in turn drives a sell out of 15 shows in London. I suspect the other six shows will sell out as well. If so, Prince generates $26 million in concert revenue with 21 shows, plus he sold the RTU for an undisclosed and presumably large sum.

Distribute the media for free, drive socialization and adoption by lowering the barriers to entry, and monetize on the back end by providing a service. Is this the new model for the music industry - and/or the new model for Solaris? Close one eye and picture Jonathan in a bathtub singing? Curious pose indeed. Well, Prince he ain't, but he is driving the "new" model.

Thursday Jun 21, 2007

Leaders as Guardians

Benevolent Guardian

It was a quiet New Mexico evening many years ago and I was sitting in my cell (room) watching all the old cadets laconically stroll about looking for new cadets to pick on. It was a warmish evening, so no one felt truly energetic and there was just a mild level of baiting and harassment going on. I used to prop my 1950s government-issued desk chair against my 1940s steel bunk and drink my coffee and watch the "slab". This was a slab of cement about a block long. It was the gathering place for our troop, and lots went on there: some cadets polished shoes, others practiced drill, and still others would sit around and toss stories back and forth. All of our rooms bordered the slab and the prisoners (new cadets) would peer out of their windows, watching the old cadets "enjoying" slab life. To venture out onto the slab as a new cadet was to invite ritualized abuse.

As taps was about to blow I noticed one of my rat buddies (RAT stands for recruit at training) rolling down the slab. Bold of him to venture out into the wilderness of old cadet territory, and even bolder to roll down the slab. My buddy was a good old cajun boy who'd been sipping beer and chewing crawdads since he was about 2 years old. At that moment, he was feeling no pain.

Ever see a car accident about to happen? I sensed rather than saw the ripple of excitement buzz through the older cadets. There were so many things that they could seize on and have just tons of fun with. Underage drinking, sneaking out of the barracks, new cadet violations - the possibilities were endless. As they were about to pounce, the Squadron Commander took charge. This was beyond good old-fashioned fun, and a lot of bad things could have happened (expulsion, etc.). He quieted the crowd before they knew what was happening, and tucked my buddy into bed. The administration was not informed and the TC (troop commander) handled the corrective actions when Chris had dried out a bit. Chris didn't get off scot-free, but he was able to continue his schooling and become a productive member of our troop.

I read the Harvard Business Review fairly regularly. (OK, every chance I get). It carried an interesting article recently that resonated with me, about leading clever people. First, let me make clear that I believe that everyone is clever in their own way. This isn't a an attempt to make everybody "feel good," but an honest observation: most folks are able to do something very very well. You just have to figure out what that something is (e.g., applying lipstick in unusual ways... name the movie.).

Chris wasn't a great soldier, but he was a great people person. Chris and I used to talk about the mundane things, and his vivid memories of growing up in the bayou. He helped me get through a tough time. (I wanted to quit more than once. Everyone wants to quit during their cadet period...) If Chris had been expelled, I might not have made it through this hell that was new cadet training. He reminded me to have some fun with things, and that this too would pass. He was a great friend.

So... my point? Leaders sometimes exercise benevolent guardianship. Sometimes they rescue you when you have screwed things up really badly. Sometimes they yell at you and make you do crazy things (thanks a lot SSG Mac!), and sometimes they just do nothing and let you sort it out. I have made more than my fair share of mistakes, but I have been lucky enough to have benevolent leaders. They watch out for me and I watch out for them.

Really talented people don't need lots of leadership, they need great leaders. Read the HBR article....

Thursday Jun 14, 2007

Team Sports, Chia pets and Hockey

I joined a new hockey league that is a bit closer to my house. Our team is pretty good, and I had a pretty good game the other night. It made me think about two management philosophies that I believe in rather strongly. If you will pardon the use of sports as a framework for a management metaphor or two...

I hire and reward team players.


Someone I know once said: "I won't hire someone who doesn't play a team sport." There is a lot of wisdom in this. You don't have to play a team sport in order to be in my organization, but you do have to be a team player to be in my organization. In other words: if your idea of your role in the organization is just to get ahead, not take care of others, and look out only for yourself... well, you won't be very successful. There are people who do jobs in my organization that only they understand. They are the equivalent of goalies. Only they can do the job, they are critical to our success, and the team has to coalesce around them. That doesn't mean they are more or less important to the org than any other player, but it does mean that they are part of the team and we, as team members, have to play our parts so they can be successful.

As people grow in their jobs, I give them "chia pets". A chia pet is a metaphor for someone or something they have to keep alive. In other words, I make them responsible for the success of another individual. It is a way of teaching them that the organization is better off if everyone can contribute, and that their individual success is tied to how well they can train, mentor, coach and teach a more junior person.

Play your game at the right level.


The new hockey team I play on is a better fit for me than some of my previous teams have been. Frankly I am a much better hockey player now and in my first game I had a break-away goal, lots of good passes, some really decent defensive moves - it was, all in all, a pretty good game. However, it made me think about when I first started playing hockey.

When I first started playing hockey I wobbled and wandered all over the place. I played with my buddies from my MBA team, and we had a great time. However, one was a natural athlete, one was born with a hockey stick in his hand (and is/was Canadian), and the other is a world class runner. So, I was chasing these guys. I really had no business being on the same team with them, they were at least a league ahead of me. I would have been more successful if I had played at the novice level. The team would have been more successful as well.

Don't get me wrong, we had a lot of fun, and I wish we still played together. But, honestly, my game was nowhere near as good as theirs. And it does/did matter. As a member of a team, you are expected to carry your share of the load. You have an obligation to play your game at the right level and do your part. If you can't, you let the team down. I always felt that keenly. What I lacked in skill I made up for (in some part) by being a hard-working player. However, hard work isn't always enough. You also have to have the skills at the right level.  Now I have the skills at the right level, and, I could / should be playing in their league.

This also holds true in the professional portions of your life, especially as a manager. As a manager, you are a part of the team and you have an obligation to be on your game. Like in hockey, if you can't pick up the break-away goal or stop the attacking wing from the biscuit slap at the blue line, you let the team down. As leaders, if we don't play at the right level at the right time, we hurt our organizations.

I am a much better hockey player now. I understand my role and I do my job. I enjoyed playing hockey with my buddies, but I was pretending then. Now, I contribute to the team. You have to play at the right level. You have to be stretched, but you must always be competitive. If you play a D league game in a B league, you aren't be stretched, you are being a lousy team member.

If you mess up in hockey, you lose a game. If you mess up as a manager, you lose a team.

Saturday May 12, 2007

Making up stories

As human beings we make up stories to explain our world. We can't help it and it is natural. These stories are based on our experiences and our grasp of the information at hand. It is our attempt to rationally explain the world about us and resolve ambiguity. However, it is important that we don't let the stories we make up drive us to do foolish or hasty things. Let me explain.

Last night we had a combo party at my house. Everyone in the family was celebrating something. My wife is getting her MBA, it is mother's day, she has been married to me for 12 years (some kind of reward is due). My older daughter turns 7, my younger daughter has a half birthday. It is my birthday, my sister-in-laws birthday, her anniversary and of course for my Mom it is mother's day. Anyway, the point is that everyone had something to celebrate except my father so we asked him to cook. He is a fabulous cook. We look for reasons to make him cook. Hey dad, did you know that it is possible to examine elastic molecular dynamics at the quantum state via high resolution IR laser spectroscopy? Can you cook something?

Anyway, as we turned on the grill to do the bratwursts, the grill exploded into flames.  Turns out that someone had stuffed a bunch of grass into the grill. My wife and I quickly looked at each other and then turned in unison to our children. "Who stuffed grass in the grill?" I thundered. I am an exceptional thunderer. Both children immediately protested their innocence but my younger daughter wasn't as loud and did the foot shuffle thing. "Ah-hah" I got you now I thought. I sent both children upstairs to their room explaining that they would wait there until someone told me the truth. My older daughter came down stairs a minute later and opined that the wind had blown the grass into the grill. Clever, but no sale. I sent her back up. After listening to about 5 minutes of wailing and gnashing of teeth, rending of hair, self flagellation and various other artifices I walked into their bedroom. My older daughter pled her case admirably and I dismissed all charges with apologies and set her free. My focus turned to my younger daughter.

I asked her "Did you stuff grass in the grill?" There was a pregnant pause and then a timid "Yes Daddy" warbled out. She decided that she wanted to make dinner for Murphy, our dog. COOL. She didn't lie to me and I could explain how dangerous it was to mess with the grill. We had a great father daughter instructive moment and I must admit to feeling a bit smug. I was being a good parent by teaching them that every action has a consequence and that telling the truth is the best policy. We did the normal hugs and dry the tears and what not. All was good.

This morning as I was settling down with my first cup of coffee and kissing my wife goodbye on her way out the door (she was leaving for China) my eyes wandered out to the patio and our view of Long's Peak. It is a magnificent view and it is pretty special to stand on the deck looking at the glory of Colorado sunsets while grilling. I noticed the bird poking her(?) head out of the grill. She was annoyed that we had destroyed her first nest, but both mom and dad birds were busy building a new nest in our grill.

And so we make up stories to explain ourselves and our universe. Sometimes they are plausible given the facts, sometimes they are not. But, it is important that we remember that we don't have all the facts and that we need to not pre-judge the situation. At home we talk, a lot, to make sure our stories mesh with reality (at least at some level). Thankfully there was no significant harm done and I will go have a chat with my younger one about telling stories. But, maybe she did help the birds by giving them the idea. I don't know, and, I guess I don't need to know. The important lesson, don't play with the grill, holds. The other important lesson, the one I learned (again), is to not let the stories we make up dictate too much of our behavior. Seek affirmation of our stories and even then, hold that there may be another possibility to our neat little story package.

About

danmas

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today