| Andre's profileFurtaSpace - www.afurtad...PhotosBlogLists | Help |
|
April 30 Scrum in a nutshellI'm currently having the opportunity to get deeper in touch with Scrum, in an internal project here at Microsoft. Scrum is a lightweight/agile methodology for project management. The term "scrum" comes from rugby, which means a way to restart the game after an accidental infringement.
It's also nice to have a chance to try Microsoft eScrum, an implementation of Scrum in the form of a Team Foundation Server template that's used internally by some teams within Microsoft. Then I had the opportunity to read the article The Scrum Software Development Process for Small Teams, from Linda Rising and Norman Janoff at the AG Communication Systems, which presents the basics of Scrum and some experience they had. I'd like to share with you some highlights of my learning so far:
[]s The statements or testimonies I offer in this post represent my own personal views. April 26 Break your comfort zone. Now.Comfort zones are those in which you feel yourself stable enough in your career so that you avoid taking risks (actually taking any efforts at all) to move the next level up. It doesn't mean you are mediocre. On the contrary, you might have mastered the skills required by the zone, is a reference to others in your position and perform your tasks as productive as few other people can do in your level.
But why (I believe) are comfort zones so dangerous? When you are not in a comfort zone (i.e., "ramping up"), you assign yourself stretch challenges that will for sure make you a better professional, even if you fail the goals, since you can learn from every experience. The outcomes can even be reflected in your personal life, as a result of being more organized, disciplined, focused, confident, and so on.
But when you reach a comfort zone, when you consider yourself simply done and satisfied, past success can blind you towards a false feeling of eternal accomplishment. Such a feeling is as fugacious as the physical sense of being full after enjoying a good meal: sometime later in the future, your body will need to be refueled again.
So the point I'm trying to make here is that success is not the ultimate goal, but the ongoing journey itself. It is the fuel that supports a much nobler destination, which is, at least for me, cyclically refining and realizing your potential to positively impact and improve the (socio-)environment in where we live. Every time you do more, you stretch yourself to discover you have room to do even more. If you stop your desire to improve as a professional and human being, you'll run down dry in the middle of the road. Comfort zones are a sort of "reverse gas stations", in which you stop just to have your fuel drained.
When I was young, I saw the illusion trick below. Which of the inner circles is bigger, inner circle of the A set or inner circle of the B set?
They are exactly the same size! Comfort zones are like the peripheral circles of the B set: they don't challenge you anymore; you don't feel there's a need to grow. However, when you are faced in situations out of comfort zones, such as in set A above, you feel initially uncomfortable with the oppression of the surrounding challenges. But that's only when you know, for sure, you need to grow.
This post is my attempt to verbalize some thoughts I had this week about getting away from comfort zones, which was the main reason I've accepted Microsoft's offer last year. I was feeling myself entering in a dangerous, but tempting comfort zone.
This week it's been three months since I've started at the Microsoft Corp headquarters in Redmond, and for sure one of the greatest concerns I had was how deep I'd feel myself as a tiny fish in such a big ocean, with so many people (86k+) much more experienced than me. That’s uncomfortable, and exactly what I was looking for.
I can say I've learned a couple of things. For example, such a small-cell-in-a-huge-body feeling will probably take years and years to go away. Think about this:
I heard some thoughts that dealing with such a specific set of responsibilities, and being only one more soul in the middle of 86k+ people, would be a downgrade when compared to things I was doing before: the magic life of traveling the world (Japan, Korea, Russia, UK, Bahamas, etc.) to take part in software competitions, eventually winning some cash prizes and visibility; having a great fun with a focused research on game development; having influence in a start-up which is able to host own ideas and, of course, being always near to beloved ones in my home country.
So instead of feeling downgraded, I prefer to feel myself more like moving from the circle set A to the circle set B. I'm out of my previous comfort zone, a difficult one to get away from, I must admit. But at the end of the day, I'm still the same person, the same way the inner A and B circles are still the same circle. Now it's time to grow. And I'm glad opportunities are all around.
If you are still there reading this, I wish you a great comfort zone break! As it always happens with my long blog posts, I don't expect many comments, but if you'd like to share your ideas so that I can have more input to analyze my recent past choices, it'd be appreciated.
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 20 Do not patchwork Domain-Driven Development!In this podcast from a couple of years ago (transcription here), about the Microsoft DSL Tools, Steve Cook points out some interesting things:
So doesn't it sound a bit weird to use a one-size-fits-all modeling language such as UML to generate everything in the world? This way, due to the lack of abstraction, the models might be entirely different from the final things you are trying to describe. And, in my personal opinion, using things such as tags, stereotypes, annotations, decorators, etc. is a patchwork overload that turns UML into a Frankstein.
Models are not the starting points, are not end goals in themselves. They are means to reach what really matters here: abstraction and automation. []s The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 19 Spam @ USRelocating to a new country requires you to adapt to the new culture, day-by-day life, rules and lots of other things.
One of such "other things" that is really driving me mad here in the US is the spam level. I don't mean virtual, e-mail spam, but real-world spam! Check how much spam I had in my mailbox these days:
It impresses me how tons and tons of paper might be wasted every year with such kind of unsolicited mail. At least recycle bins are easily available... hope future mailboxes will come with a built-in Delete All command!
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 17 Microsoft perksFor those who ask about employee benefits and general "perks" at Microsoft, the video below summarizes lots of them.
I can testify they are very true, except for the fact that the company store is running out of Xbox 360s for lots of weeks now! :)
I gave up waiting and bought my online today...
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. Brazil is the first to have VS community localizationLast year, as a Microsoft Student Partner, I was invited to review some Visual Studio documentation in Brazilian Portuguese, created from machine translation. While some things were still innacurate, the great majority of the text was understandable, requiring minor reviewing effort.
Today, Somasegar announced in his blog interesting news about that: "I am pleased to announce that as of today, Brazil is the first of what I hope will become new geographies in which we can provide such a community localization offering. In March, we released the first Visual Studio 2008 Express Editions Language Pack in Brazilian [Portuguese]. Today, we are announcing the release of MSDN Translation Wiki v2 for Brazilian Portuguese".
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 16 Dashboard hero!My friend Anibal Sousa just noticed that, in this website with cool stuff that Google has in its Zurich offices, Google employees are chilling out with Xbox 360. But that must be an enhanced musical version of the Xbox 360 dashboard, I've never seen so much excitement around it! :)
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. Alice, the Parasites and The Book of TimeBruno Evangelista has just made a video response to my original XNA Challenge Brazil 2008 finalists video. His video shows his game, "Alice, the Parasites and The Book of Time", which was 3rd place in the contest. Check it below:
That's an interesting XNA sample which shows how the integration of both 2D and 3D elements in the same game can give an interesting result. For example, you can have a 3D terrain and do not worry about 3D modeling for the characters, as the original Doom did in the past.
Good job!
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 11 Game design creativity: less is more!In a previous post, I've shared some thoughts on commonalities and variabilities for digital games development. Sometimes, however, you find a game with a so unique game design that its variabilities stands out, perhaps leading to a completely new game genre/domain.
So check this game, Cursor*10. You have 10 lives and should "cooperate with yourself" to win the game. How? Each action you do is recorded so that, when you die, everything you did in your "previous life" is repeated. Some challenges will not be solved unless you coordinate your actual actions with your ghost actions (the ones from the past).
Why is this an innovation? Because it obligates you to play and plan thinking forward. If you are too selfish in going up the levels instead of holding a lever so that your "future yourselves" benefit from finding a hidden exit, you'll fail miserably. Also because it breaks paradigms: in ordinary games, when you die it is done; try it all over again with a new life. In Cursor*10, there are worse or better ways to die, since you leave your good (or bad) actions to posterity.
Please don't subestimate the subject. I'm not only discussing about the specific game above, but how the simple concept of cooperating with yourself brings innovation to a game design.
In a world full of last-generation graphics and special effects, innovation and fun may arise from the simplest ideas.
[]s
-- AFurtado The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 10 Language Bar shortcutAs some might have noticed, I'm a big fan of shortcuts. Yesterday I was able to discover another one which will help me to improve my productivity in Windows and save some mouse clicks: pressing ALT+SHIFT automatically changes the input language in Windows Vista Laguage Bar (not sure if the same for XP or other, if someone could confirm I'd be thankful [Updated Apr 11, 2008: yes, it does. thanks Andre Lima for letting me know]).
It's also important to notice that Windows remembers that a specific program instance is using a specific language. So you have to do this only for the first time you open the program (for example, Outlook may be using pt-BR, but when I change the focus back to Word or IE, the input language automatically changes to en-US).
It may seem a silly thing, but when you have to go back and forth between different input languages, it's nice not having to use the mouse for it. Ah, and it may also explain why sometimes your input language changes suddenly... didn't you press ALT+SHIFT by mistake?
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. April 08 Understanding commonalities and variabilities in game developmentAs part of the job of creating a set of DSLs (domain-specific languages) to automate game development, a task that should be done is the analysis of the existing samples (or games) of a given product line (or game domain, such as arcade games, or fighting games, or racing games, etc.).
When this is done, it can be noticed that games belonging to the same domain present lots of commonalities and variabilities. For example, shot'em up games such as Space Invaders present these well-known commonalities:
While this was an innovation when Space Invaders was created (Japan run out of quarters because of the game, case you don't know), many other following games used the same features. Therefore, the pragmatic programmer would promptly think about creating a framework to encapsulate the commonalities, allowing subsequent games to be produced much quicker and easier. Today, specific to the game domains, such reusable frameworks are called game engines. So how can we use the reusable framework and still have different game logic for each game? That's where the variabilities comes into play. While sharing commonalities and being eligible to (re)use the common framework, a game can have distinct features. For example, a shot'em up game can have a special feature such as a scrolling background. But wait, different games can have this same scrolling background feature, so why is this a variability and not a commonality?
So if commonalities are encapsulated under a reusable framework, what about variabilities? In fact, variabilities configure the reusable framework. The framework should provide hooks to allow the variable feature to be properly set up, or even be defined as not existent at all. More roughly speaking, in code, it would be something like this: namespace ShotEmUpGameFramework { public class ShotEmUpGameTemplate : Game { } Now today's last question is: and why are domain-specific languages useful for in such a context? DSLs (visual ones in special) are useful to improve the way we configure the reusable framework. In other words, DSLs capture, with a high level of abstraction, the variabilities of the specific product (game) you're developing and, together with a code generator, your model (DSL diagram) is transformed into the code (or XML file, or whatever) that configures the framework. For example, it would be very tedious and error prone for the game developer to use the following code to tell (configure) the reusable framework, regarding the transitions of the states (screens or rooms) in a game: Screen intro = MyGame.Screens.Add("Intro Screen"); Imagine now what to do with dozens of rooms and screens. A wrong copy-and-paste in this boring unautomated task can result in bugs that may be costly to find later! Therefore, I'm sure you agree with me that using a diagram like the one below, based on a visual modeling language, is much quicker, convenient and less error-prone: With the click of a button, a code generator receives the diagram as input and generates code as output, similar to the above code. The generated code, finally, configures and consumes a reusable framework (game engine). And the developer is happy, since there's no need to know what's going underneath. Now imagine all other types of variabilities in a digital game, besides screen transition, that could benefit from such kind of automation: collision detection, entity behavior, ... Please help me find more! []s The statements or testimonies I offer in this post represent my own personal views. April 07 Bill Gates shares speech with Brazilian students @ GLF[Updated in May 10, 2008: the video can be found here.]
[Updated in March 07, 2008: my friend Roberto Sonnino sent this link with the transcription of the speech. Great, thanks!]
The Government Leader Forum-Americas, held in Miami in the beginning of this month, invited leaders to discuss about social and economic opportunities for the Americas.
Bill Gates was invited to do a presentation there, and he invited the brazilian students Carlos Rodrigues, Madson Menezes and Ivan Cardim (who will work in the same Microsoft group I'm in), from the Federal University of Pernambuco, to present their experience with the v-eye project.
Roughly speaking, by using v-eye, visually impaired people can ask for directions to their cell phone using their own voice. The cell phone then vibrates to tell the directions and turns the user should do. The project was the winner of the brazilian finals of Imagine Cup India 2006 and won second place worldwide. Then they participated in the Microsoft/BT Innovation Accelerator Workshop, got more business and marketing knowledge, and were able to get funding from the Brazilian government to turn their project into live business.
These guys are an example of how creative people should not leave their potential resting but, instead, work together to implement the truly innovation needed by this world.
[]s
-- AFurtado The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 06 MS Research, featuring WorldWide TelescopeLast March, all Microsoft FTEs (full-time employees, one of the hundreds [thousands??] of acronyms you have to learn around here) were invited to Microsoft's Tech Fest, an event where the product groups get to know what's going on in the many Microsoft Research campi (China, India, UK, Sillicon Valley, etc.).
What I specially like about MS Research is that the research is definitively not done by the sake of research itself, but everyone is always seeking for opportunities to transfer research knowledge into the "real" world (huh, I don't mean MSR guys live outside of this world, you understood).
An example is F# and lots of C# features that were added through research. BTW, do you know that C# delegates always existed as high-order functions in functional languages? Or that C# generics are only a variation of the old polymorphic types?
Getting back to Tech Fest: it happened in Microsoft Conference Center (building 33 of MS Campus in Redmond), which I had the chance to know for the first time. So here comes an interesting thing I found there... what do you usually receive as gifts? A nice shirt? A Xbox 360 game? What about this:
That's is a slice of the Berlin Wall, in the middle of MS Conference Center, that Bill Gates received as a gift from Germany! It's part of Microsoft's Corporate Art Collection. Will I ever get to find a piece of the moon somewhere?
Getting back to Tech Fest (once more), some presentations and dozens of booths were there to showroom MSR latest advances. I saw things from cool home devices to display family pictures to the latest searching and Web 2.0 applications. We are not allowed to give much detail on the contents of the projects, due to NDA constraints, but one thing that caught many eyes and we'll hear a lot more about is the MSR WorldWide Telescope. If I had this back in time, some of my school projects would be much more interesting. Check this out:
It seems that the project was built on the top of other research stuff, such as Deep Zoom, a "capability which allows users to explore collections of super high resolution imagery, from a 2 or 3 megapixel shot from a digital camera to gigapixel scans of museum pieces, all without waiting for huge file downloads". Check more here or an example here.
Long life to research!
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 04 Some cool devices for game playersThe n52te is a hybrid of keyboard and mouse to improve PC game playing performance:
Reminds me of some cool devices I was able to see in last year's GDC (Game Developers Conference). One of them was a camera from Gesture-Tek to put the player really inside the game.
Se my (stupid) live experience with it:
The technology was bought by Microsoft and is available through the Xbox Live Vision camera (although there are not too many games that are exploring it... hope someday it becomes programmatically accessible through XNA).
Other device was a set of fans from Phillips, connected to the Xbox 360 and turned on according to what is happening in the game (when you are driving a car or flying in the air, for example).
See it live:
And, finally, the Novint Falcon device that substitutes the mouse for a 3D input experience with force feedback:
See it live:
[]s
-- AFurtado
The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. April 03 Game consoles and the digital convergence[Updated in Apr 4, 2008: Sandy Duncan, ex-vice-president of the european Xbox division, says in this interview that consoles, as we know, are going do die in less than a decade, due to the digital convergence. Think about that: set-top boxes and consoles are somewhat merged. Wanna play something? Just chose a "game channel" in your TV. And there's no doubt that you'll not be restricted to the TV remote controller to play, since many cool devices are appearing around.]
Look how interesting the results of this online poll are. The question was Which device will win the race to connect the TV to the internet?
Although these are by no means scientific results, since it's only a web poll, it's interesting to check how game consoles are each time more envisioned not as isolated devices, but part of the so called "digital convergence". If you have a Xbox 360 at home, for example, why not trying to make it a Media Center Extender? Zune and Microsoft Surface give even more possibilities on how we can manage our content altogether to enhance our digital lifestyle. Expect (and create) good things atop that! []s The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. Brazil bans games. Gimme a break!A disadvantage of living far away from your home country is that news may arrive quite delayed. But there is no specific time to comment how out-of-this-world some people can be.
The video below (pt-BR, click here if you can't see it) shows that brazilian authorities somewhere have banned Counter Strike because someone created a scenario in which the game is played in Rio de Janeiro slums...
The banning reason? That old story that games may stimulate violence and stuff. But this is not the kind of discussion I'd like to have here. The point I'm trying to make, once more, is: you cannot stop user generated content! The press in the video above gave the false impression that the game was custom-made specifically for that: to train drug dealers in real-world combat situation and to do an apology to crime.
But hey, if you like games and was not outside of this world in the last years, you know that this is not true! Counter Strike is about generic counter-terrorist vs. terrorist combat, and users can generate as much content (scenarios) as they want. Chosing Rio de Janeiro slums as scenario doesn't make any difference at all. Users are responsible for that content, not the game.
So what are they going to do next, ban users? Or should we also ban SimCity, since one if its scenarios is also Rio de Janeiro and high crime rates (along with traffic jam and pollution) is one of the major issues to be solved by the mayor-player? Isn't that suggesting bad things about Rio as well, making minds to think violence is just a "normal" issue?
If anyone really cared about the ethics of Counter Strike, it would have been already banned before. So press and authorities, give me a break: users will always generate content and can always filter content by themselves (or their parents can, as it happens to movies). If you can't understand user-generated content in our virtual world, please focus your attentions on real-world issues such as how proper education could impact on reducing drug dealing.
[]s
-- AFurtado The statements or testimonies I offer in this post represent my own personal views. I am speaking for myself and not on behalf of my employer, Microsoft Corporation. |
|
|