tag:blogger.com,1999:blog-63874004767452951182009-07-08T23:44:38.899-03:00AgileAndArtThe Art Improving Agile Software DevelopmentDaniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.comBlogger52125tag:blogger.com,1999:blog-6387400476745295118.post-16519563834315451812009-05-27T18:05:00.002-03:002009-05-27T18:13:23.883-03:00"Para Todos" ReleaseI'd like to announce the release of my first book, <b>PARA TODOS</b>.<br />It's a poetry book and there will be a small party with autographs and wines at Livraria Cultura in Shopping Villa Lobos. In the party, <a href="http://www.dellaz.com.br/">Trio Dellaz </a>will sing for one hour and I will read some poetry of the book.<br /><br />Everybody is welcome to this great moment!<img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 579px; height: 410px;" src="http://www.danicuki.com.br/paratodos.jpg" border="0" alt="" /><br /><div><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-1651956383431545181?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-35618301995383911522009-05-21T18:05:00.003-03:002009-05-24T16:19:01.424-03:00Master Thesis Presentation - VideoI finally finished my M.Sc. degree in Computer Science. I already have the video, which is right now just in portuguese, but soon I'll have subtitles in English. I'd like to thank everybody who came to watch the performance. I hope you have a lot of fun with it.<br /><br />Thanks for my N95 I had two cameras filming the event, so I've got a great final result using Apple iMovie software for edition.<br /><br />Here is the video, enjoy!<br /><br /><br /><br /><object width="400" height="300"><param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always"><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4766693&server=vimeo.com&show_title=1&show_byline=0&show_portrait=0&color=ff9933&fullscreen=1"><embed src="http://vimeo.com/moogaloop.swf?clip_id=4766693&server=vimeo.com&show_title=1&show_byline=0&show_portrait=0&color=ff9933&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-3561830199538391152?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-12004160402054213962009-05-20T09:00:00.003-03:002009-05-20T09:05:24.529-03:00Some Theater PerformanceI'd like to share with you 2 scenes that I made in the theater. One was in 2005 in a play called a "Sétima Arte" - the scene is a trio singing Day'o Banana. The other is on a play called "O Banquete da Vida" - the scene is a guy selling Mentos in a train. Both were done in the <a href="http://www.oficinadosmenestreis.com.br">Oficina dos Menestréis</a> group.<div><br /></div><br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/yBITTYlmrLM&hl=pt-br&fs=1&color1=0x006699&color2=0x54abd6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/yBITTYlmrLM&hl=pt-br&fs=1&color1=0x006699&color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br /><br><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/BmW0pc2hJUo&hl=pt-br&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/BmW0pc2hJUo&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-1200416040205421396?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com1tag:blogger.com,1999:blog-6387400476745295118.post-71591441499062455132009-05-08T17:44:00.004-03:002009-05-08T17:54:11.208-03:00Master Thesis defense - Patterns for Introducing new Ideas in the Software Industry<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t3QKIVOmzys/SgSbGdjg8eI/AAAAAAAACF0/T7hwfQxsI3s/s1600-h/Picture+1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 256px;" src="http://4.bp.blogspot.com/_t3QKIVOmzys/SgSbGdjg8eI/AAAAAAAACF0/T7hwfQxsI3s/s400/Picture+1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5333558394028618210" /></a><br />I invite you to my master thesis defense next monday at IME-USP - Here's is the address and time:<div><ul><li>Rua do Matão, 1000 - Universidade de São Paulo.</li><li>2pm in Auditório Jacy Monteiro</li></ul></div><div><br /></div><div>The thesis is about Patterns for introducing new ideas in the software industry. </div><div>You can read the whole thesis in <a href="http://www.danicuki.com.br/dissertacao.pdf">this address</a> (unfortunately, in portuguese, not yet the final revision, so I'm accepting comments). Here's the abstract in English:</div><div><br /></div><div><div> The software industry is very dynamic and new ideas arise all the time from virtually any part of the world. It is not guaranteed that these ideas will be adopted, mainly because, among other obstacles, the solution may imply in having people change their way of thinking. Different from people, computers recieve a well defined command and execute it precisely. We should take into account that human beings are independent and unpredictable. Despite of this unpredictability, we can find some behavioral patterns to help us deal with several situations, allowing us to achieve our objectives.</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>This work brings a small introduction into the pattern concept and a presentation of the 48 Patterns for Introducing New Ideas. These patterns provide some insight into the difficult task of introducing new ideas into any organization. We show that if the idea brings cultural changes of any kind, then the task is even more complicated. We also suggest four new patterns that can be attached to the original catalog. </div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>In one of these new patterns we show the great importance of combining artistic activities with the day-to-day activities of people who work in software development and how Arts can help us to introduce new ideas. The study of some practices like theater, painting, poetry, music and meditation allowed us to find some connection elements between the purely mathematical side of the human mind and its creative, artistic one. Software development must be approached as a ``human activity'', rather than a solely technical or logical one. Above all, there are two groups of people involved in the process: the software creators and the users. Although a barrier appears to separate these two groups, in this paper we will assert that this divide can be bridged if IT professional nurture their artistic and interpersonal relationship skills in addition to their obvious technical ones. </div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-7159144149906245513?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com2tag:blogger.com,1999:blog-6387400476745295118.post-22704607023568547532009-03-19T10:19:00.005-03:002009-03-19T10:39:56.802-03:00Elevator Bug<div style="text-align: center;"><br /></div><div>This is a common scene in the Condominio São Luiz elevators: every now and then appears a blue screen, or a Windows message telling people in the elevator to contact Microsoft. This morning it happened again. There was some kind of trouble with Adobe Flash Player plugin. "Inform this problem to Microsoft"</div><div style="text-align: center;"><br /></div><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_t3QKIVOmzys/ScJGimZ6YAI/AAAAAAAABu8/u3waKqXCTAw/s400/03192009075.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5314888070489333762" />2 weeks ago I met another message box in the elevator. "The system has been recovered from a serious error". If the system had a seriour error and has been recovered, why this message? What if the elevator stops between floor 9 and 10 and you get a message box: "Your elevator is in serious problem, please contact Microsoft for recovery". I'm terrified. Does anybody has Bill Gates phone number, please?<br /><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_t3QKIVOmzys/ScJISq7mkQI/AAAAAAAABvE/LAg3432iHDE/s400/02202009047.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5314889995849732354" /><div style="text-align: left;">Would a elevator running Linux or Mac fail the same way? Maybe yes, maybe not. But please, don't ask me to call Microsoft! I'm stuck in the elevator! Call the fireman!!!</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-2270460702356854753?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-42715958326841013402009-03-11T14:47:00.002-03:002009-03-11T15:53:16.087-03:00Refactoring Paintings<div><a href="http://www.refactoring.com/">Refactoring</a> is a well known technique in software development. In short terms, refactoring is to execute a sequence of small well defined steps with the intention to let your code base more clear, more beautiful, more elegant. The result of a continuous refactoring practice is a simpler and easier to maintain software project. There many times also when refactoring takes the programmer to create new abstractions and code generalizations.<br /><br />Let's go to a simple example: suppose we are programming a <span style="font-weight: bold;">Person</span> entity class. This class contains attributes like name, weight, age, gender, spoken language. After some time, I find out that I need to insert <span style="font-weight: bold;">cats</span> in my system for some reason. Then, I create the <span style="font-weight: bold;">Cat</span> class with its attributes name, weight, gender and hair color. After that understand I've created an ambiguity. Both and <span style="font-weight: bold;">Cat </span>and<span style="font-weight: bold;"> Person</span> classes have some attributes in common. By doing a refactoring, I can then create the <span style="font-weight: bold;">Animal</span> class, with the common attributes (name, weight, gender) and make the <span style="font-weight: bold;">Cat</span> and <span style="font-weight: bold;">Person</span> classes "inherit" the animal properties.</div><br />The idea of extracting abstractions is to identify the essence of a system and describe its most deeply characteristics with simple elements. To achieve this essence you need a lot of experience and sweat. You need mastery you programming skills and use the tools and programming languages in the most proper way. It is an Art.<br /><br />Play the video bellow to see how <a href="http://www.artyfactory.com/art_appreciation/animals_in_art/pablo_picasso/pablo_picasso.htm">refactoring was made by Pablo Picasso</a> in his paintings:<br /><br /><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/ZpILjXqkt0Q&hl=pt-br&fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/ZpILjXqkt0Q&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></embed></object><br /><br />First, the painter draw a ordinary bull, which can be recognized by a 5 year old child. Irrelevants parts are being remove at each new stage of the draw (there are 11 pictures), besides the main idea of the bull remains. The whole genious desconstruction proccess takes six weeks. Even with few drawn lines, the last painting can still clearly represent the bull. They are the animal's essence.<br /><br />Every capable programmer, software creator, needs to know how to recognize essential aspects of the domain he is programming for. The technic helps to execute it, but geniality is rooted in intuitive thinking and the artistic capacity of identifying and extracting the essence.<br /><br />(<a href="http://agileandart.blogspot.com/2008/08/refatorao-na-pintura.html">Portuguese version</a>)<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-4271595832684101340?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-17835310020293680852009-03-10T19:13:00.002-03:002009-03-10T20:01:38.493-03:00Fearless<div>Turn resistance to the new idea to your advantage. Every innovation, in true, breaks something. So, every resistance is welcome. We need the resistance to test our new ideas and convictions. Skeptics are a gift! They give us information about our progress and teach us how we can adapt our approach.<br /><br />Maybe, the most important point in changing is how we deal with fear. Every change process implies in fear on both sides: those who are being changed want to avoid the pain of (maybe) loose something; those who are promoting change have the fear that their idea are wrong or won't be accepted. When both these sides get in contact surges an impasse. Resistance is not the main force that takes a change to failure. <span style="font-weight: bold;">Reaction to resistance</span> is the problem.<br /><br />You will hardly get 100% approval of a new idea. This is welcome. <span style="font-style: italic;">Every law that doesn't let opened the possibility of its execution, precisely because of its disobedience, </span>is <span style="font-style: italic;">an arbitrary law. Second the Sanhedrin Treaty, is case of judgment of capital punishment - when it was necessary 23 judges -, if there was an unanimity in the sentence to the defendant, the judgment was disqualified and the defendant liberated. The sense of this kind of law is the distrust that a process can be conducted so well, that there is no doubt about it and can't exist any different interpretation about this situation. (Nilton Bonder - The Immoral Soul)<br /><br /></span>It is difficult to listen to people when we don't agree with some point of view. We usually get fixed on <span style="font-weight: bold;">our</span> point of view. Another approach would be encourage the other to talk more about his point. Just listening to him could help you both to understand each other.<br /><br />Ask for the help of the resistants. Make sure they know you are listening to them. Truly listen and try to learn with them. Try to make them undestand that accepting the new idea does not mean throw away their own ideas. Don't assume that a skeptic posture lasts forever. Someone who initialy seems against can turn into your favor.<br /><br />This pattern allows you to use the resistance to your own benefit, instead of using it against you. People who watch you dealing well with skeptics will respect and admire you for this.<br /><br /><a href="http://agileandart.blogspot.com/2008/11/sem.html">(English translation of this post)</a><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-1783531002029368085?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-44555467858341391482008-12-23T09:56:00.000-02:002008-12-23T09:57:51.145-02:00#QCON - Functional Programming, Music and ArtLast month, at QCON, I was in a great talk about functional programming languages (like Haskell) and their benefits to the Art world. The title of the talk was "How Functional Programmers can<br />Help, Inspire, or even Be Artists". First of all I'd like to emphasize that all good programmers are artists, and as <a href="http://java.sun.com/features/2002/11/gabriel_qa.html">Richard Gabriel said 6 years ago</a>, we programmers should be trained like artists. This is the major problem of our Computer Science Courses.<br /><br />We all know artificial intelligence and computer tools are getting better and better. Right know we can easily produce things like this video:<br /><br /><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/QStm3ZyzgY0&hl=en&fs=1&rel=0&color1=0x402061&color2=0x9461ca"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/QStm3ZyzgY0&hl=en&fs=1&rel=0&color1=0x402061&color2=0x9461ca" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></embed></object><br /><br />In his talk, Prof. Paul Hudak also showed the examples of how we can do image animation using functional programming. The project he described was the <a href="http://conal.net/fran/">Functional Reactive Animation (FRAN)</a>. All these things are not really new, but now that functional languages are returning to the main stream, those are the things that begin to appear. With tools like FRAN, an animation can be made as easy as this:<br /><br /><table><tbody><tr><td><br /><pre> growFlower u = buttonMonitor u `over`<br /> stretch (grow u) flower<br /><br />grow u = size<br />where<br />size = 1 + atRate rate u<br />rate = bSign u</pre> </td><td><p align="center"><img src="http://conal.net/fran/gifs/growFlower.gif" height="164" width="164" /></p></td></tr></tbody></table><br />Of course if you don't know functional programming this is strange and difficult, but just think about an application which enlarges and shrinks an image when you press right or left mouse button. Think that this application can be written in those 6 code lines above.<br /><br />Another application for functional programming is music. I recently acquired my MacBook last week I used Garage Band software for the first time. It is amazing what one can do with music software. I've already played with <a href="http://flstudio.image-line.com/">Fruit Loops Studio</a> (my favorite), Sony <a href="http://www.sonycreativesoftware.com/products/soundforgefamily.asp">SoundForge</a> (great too) and who don't remember one of the first DJ software called <a href="http://www.mixman.com/">MixMan</a>.<br /><br />But the focus of Paul's presentation wasn't in using tools, but in how you can build wonderful tools with less lines of code, just because functional programming were made for this kind of application. He showed an example of his <a href="http://www.haskell.org/haskore/">Haskore</a> project, a nice way to compose music using the Haskell functional language. You specify the program in terms of WHAT to do, not HOW to do it.<br /><br />The design goals of the Haskore project are:<br /><ul><li>Simplicity, expressiveness, generality and performance</li><li>Real-time sound synthesis</li><li>Transparency</li><li>Good for signal processing, algorithmic composition and interactive applications</li></ul>A small example of how you can write a song using Haskore. Here is the language definition for notes:<br /><br /><span style="font-family:courier new;">type Octave = Int </span><br /><span style="font-family:courier new;">type Dur = Rational </span><br /><span style="font-family:courier new;">type Pitch = (PitchClass, Octave) </span><br /><span style="font-family:courier new;">data PitchClass = Cff | Cf | C | Dff | Cs | Df | Css | D | Eff | Ds </span><br /><span style="font-family:courier new;">data PitchClass = Cff | Cf | C | Dff | Cs | Df | Css | D | Eff | Ds </span><br /><span style="font-family:courier new;">| Ef | Fff | Dss | E | Es | Ff | F | Gff | Ess | Fs | Gf | Fss | G </span><br /><span style="font-family:courier new;">| Aff | Gs | Af | Gss | A | Bff | As | Bf | Ass | B | Bs | Bss </span><br /><span style="font-family:courier new;">data Prim a = Note Dur a | Rest Dur </span><br /><br />So, a prim(itive) can be defined as<br /><ul><li>a note with a Picth (class + octave) and a duration (expressed as a real number)</li><li>or a rest with a duration (silence)</li></ul>For example:<br /><br /><span style="font-family:courier new;">Note (1/4) (C,4) :: Prim Pitch - it is a Middle C quarter note</span><br /><br />The music is defined as a sequence of primitive notes, or notes played in parallel:<br /><br /><span style="font-family:courier new;">data Music a = Primitive (Prim a) –primitive note or rest </span><br /><span style="font-family:courier new;">| Music a :+: Music a --sequential composition </span><br /><span style="font-family:courier new;">| Music a :=: Music a --parallel composition </span><br /><span style="font-family:courier new;">| Modify Control (Music a) --modifier </span><br /><br />This is just a little example, the language is much more complete, you can even define performance and interpretation using the language.<br /><br />Ok, all these geek things are great and we love it. But I still have some doubts about how the most rooted concepts of creativity can be applied to these computational tools. I mean, I love music and I feel it when I listen to it, I feel it when I play the guitar with my band. I really don't know how this tools can contribute to produce human interaction. Of course one can go home and program a nice music using Haskore, or do a couple of clicks in Garage Band to produce a pre-factoried song. This is wonderful, people can produce things that they could not some time ago. But what about the old fashion music composition? Will people in future have to know something about the pentagram and how to write a sheet?<br /><br />To fill a song I need to close my eyes. To compose something in my piano I just close my eyes and play what comes, don't know from where. Is there any computer tool that I can use with closed eyes? Or am I wrong and closing eyes isn't necessary?<br /><br />Professor Paul ends his talk telling us about an computacional application for dance. It is like a pentagram like represantation of steps and body movements. All right! Now you can formally define a dance script and send it to a robot and he will do a nice job, dancing.<br /><br />My final question is: what is the robot feeling while he is in his perfect dance defined by an algorithm?<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-4455546785834139148?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-37785620158029659042008-12-08T13:35:00.003-02:002009-05-21T17:47:40.944-03:00Patterns for Introducing New Ideas - Video TalkA new video I made last week at Locaweb about Patterns for Introducing New Ideas. Sorry, but these videos are in Portuguese.<br /><br /><br /><br /><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/OlnfDMfeT6s&hl=en&fs=1&rel=0&color1=0x5d1719&color2=0xcd311b"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/OlnfDMfeT6s&hl=en&fs=1&rel=0&color1=0x5d1719&color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></embed></object><br /><br />Click the YouTube link up here to see other parts... :-)<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-3778562015802965904?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com1tag:blogger.com,1999:blog-6387400476745295118.post-7827057479712259852008-12-05T17:46:00.002-02:002008-12-05T17:49:14.929-02:00Breakfast as QCON SF 2008 with Martin FowlerFor me, it was an honor to eat my morning croissant with Martin Fowler. Sharing my emotion with you!<br /><br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/MGEBE6gxvi0&hl=en&fs=1&rel=0&color1=0x5d1719&color2=0xcd311b"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/MGEBE6gxvi0&hl=en&fs=1&rel=0&color1=0x5d1719&color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-782705747971225985?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com1tag:blogger.com,1999:blog-6387400476745295118.post-83956424727506909332008-12-01T14:59:00.009-02:002008-12-01T20:21:13.145-02:00Thinking = LanguageLast week, walking along the San Francisco streets, I had many <a href="http://www.dhamma.org/">insights</a>. It was a great week at <a href="http://qcon.infoq.com/">QCON</a>, where I could meet many of the great people in the software development world.<br /><br />I'd like to share with you one of my biggest insights. It has to do with how language is deeply related to thinking.<br /><br />English is not my first language (I was born in Brazil and here we speak Portuguese), so I don't know English as I know Portuguese. When I was in San Francisco, I've created a challenge for myself: I wouldn't think in Portuguese. I had to think everything in English. This was a great experience: I noticed that I just couldn't think well!<br /><br />Once I didn't have the right <span style="font-weight: bold; font-style: italic;">words</span> to represent my <cite><b>thoughts</b></cite>, the thoughts couldn't come. Right now, even writing, I'm trying to say something to you, but I just can't do it properly! So I decided to train my abilities, not just in speaking or writing English, but in THINKING. That's why I decided to write my blog in English. I'm sure that exercising this continually I'll improve the quality of my thoughts.<br /><br />Every time you learn another language, it is not just a new way of speaking, reading or writing, but a new way of thinking. I think that is one of the main reasons hackers and programmers are intelligent people comparing to the average population: they where obligated to learn another language, a programming language in that case.<br /><br />I think that everybody should learn at least 10 languages at fluent level. And when I say "language", maybe I mean not just those everybody thinks of, like English, Chinese, Spanish, but languages as the vehicle to express thoughts and feelings. Examples of these languages:<br /><ul><li>Musical language (reading and writing song sheets)</li><li>Theater language (tragedy, comedy, etc)<br /></li><li>Programming languages paradigms (Functional, Object Orientated)<br /></li></ul>Then you should organize the languages you know as I did for my known languages in the following table. Here, the levels go from 0 (knows nothing) to 5 (very fluent):<br /><br /><table style="width: 527px; height: 230px;" border="1"><tbody><tr><td style="vertical-align: top;"><span style="font-weight: bold;">Language</span><br /></td><td style="font-weight: bold;">Reading</td><td style="font-weight: bold;">Writing</td><td style="font-weight: bold;">Listening</td><td style="font-weight: bold;">Speaking</td></tr><tr><td style="vertical-align: top;">Portuguese</td><td style="vertical-align: top;">5</td><td style="vertical-align: top;">5</td><td style="vertical-align: top;">5</td><td style="vertical-align: top;">5</td></tr><tr><td style="vertical-align: top;">Italian<br /></td><td style="vertical-align: top;">4<br /></td><td style="vertical-align: top;">3<br /></td><td style="vertical-align: top;">4<br /></td><td style="vertical-align: top;">3<br /></td></tr><tr><td style="vertical-align: top;">Hebrew<br /></td><td style="vertical-align: top;">2<br /></td><td style="vertical-align: top;">2<br /></td><td style="vertical-align: top;">1<br /></td><td style="vertical-align: top;">1<br /></td></tr><tr><td style="vertical-align: top;">Java*<br /></td><td style="vertical-align: top;">5<br /></td><td style="vertical-align: top;">5<br /></td><td style="vertical-align: top;">-<br /></td><td style="vertical-align: top;">-<br /></td></tr><tr><td style="vertical-align: top;">Ruby*<br /></td><td style="vertical-align: top;">3<br /></td><td style="vertical-align: top;">2<br /></td><td style="vertical-align: top;">-<br /></td><td style="vertical-align: top;">-<br /></td></tr><tr><td style="vertical-align: top;">SQL*<br /></td><td style="vertical-align: top;">5<br /></td><td style="vertical-align: top;">5<br /></td><td style="vertical-align: top;">-<br /></td><td style="vertical-align: top;">-<br /></td></tr><tr><td style="vertical-align: top;">Music**<br /></td><td style="vertical-align: top;">2<br /></td><td style="vertical-align: top;">1<br /></td><td style="vertical-align: top;">4<br /></td><td style="vertical-align: top;">4<br /></td></tr><tr><br /></tr></tbody></table><br />* Assume that programming languages you read and write but don't speak (I know there are some guys who like to speak in Java, but let's ignore this fact)<br />** Song sheets you read and write, for speaking I consider singing or playing an instrument and listening the capacity of recognizing rhythm, melodic patterns, etc.<br /><br />I know there are a lot of <a href="http://en.wikipedia.org/wiki/Sapir%E2%80%93Whorf_hypothesis">theories</a> which relates thoughts and languages. I don't know any of them at all. What I'm describing here is just something that happened to me when I tried a self-experience. I just know that the more languages you learn, more easy it is to learn a new one and your ability to communicate and think becomes better and better.<br /><br />Searching YouTube, I found a very long video of a talk about how these things I said happen in the computer world.<br /><br /><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/VeAdryYZ7ak&hl=en&fs=1&color1=0x006699&color2=0x54abd6"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/VeAdryYZ7ak&hl=en&fs=1&color1=0x006699&color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></embed></object><br /><br />There are some non-resolved topics for me. We really don't know much about our mind. Maybe some people survive and live well with these doubts, but for me, searching for these answers is the reason of life. That's why I try so many things all the time. I've tried acting in theater, playing and singing music, the <a href="http://www.dhamma.org/">Vipassana Meditation</a>. All these different stuff took me to somewhere and I feel I have a better understanding of the world because of them.<br /><br />I invite you now to learn another language: start with music, or with meditation, or dancing, or with Japanese ideograms. Go there and learn! Then learn more two different languages. Make your language table a 10 rows table and fill it with 5's. After this, come back here and comment what happened.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-8395642472750690933?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com2tag:blogger.com,1999:blog-6387400476745295118.post-78211513521928416242008-11-20T18:37:00.003-02:002008-11-22T04:09:59.421-02:00Two Big ChangesI'd like to use this post to announce 2 big changes in my life. The first one is that since now I will post here in English instead of Portuguese. With this, I'd like to make my blog more understandable outside Brazil. I'm not sure I'm ready to write everything I think in a foreign language, but the only way to find it out is to begin writing and see what happen. So, here I am. For the practice I will also write some poetry in English, in my <a href="http://danicuki.blogspot.com/">poetry blog</a>.<br /><br />The second change in my life is that I've just became a film maker. I've done my first short film and I'd like to share it with you.<br />The film title is "Todo mundo tem o direito a vida - todo mundo tem o direito igual", which means Everybody has the rights for life - everybody has the same rights". It's the story of a <span style="font-weight: bold;">foot</span> and a <span style="font-weight: bold;">dog</span>. The foot wants to <span style="font-weight: bold;">dance</span> as the dog just want to turn around the table in infinite <span style="font-weight: bold;">cycles</span>. They both have their rights to do it whenever they want, and I hope they continue doing forever and ever. I'd like to thank Lenine for the soundtrack and if the film goes someday to hollywood I promise pay all the rights...<br /><br /><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/oV2Qhxcl69E&hl=en&fs=1&rel=0&color1=0x234900&color2=0x4e9e00"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/oV2Qhxcl69E&hl=en&fs=1&rel=0&color1=0x234900&color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></embed></object><br /><br />Thanks you for the audience!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-7821151352192841624?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com1tag:blogger.com,1999:blog-6387400476745295118.post-25708670013559598012008-11-19T20:08:00.002-02:002008-11-19T20:14:49.898-02:00#QCON: Coffees effects<div style="text-align: center;">Linda Rising talked about coffee effects in our lives. I leave here just a picture she showed us to think about this issue<br /></div><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://3.bp.blogspot.com/_t3QKIVOmzys/SSSPyRmjTpI/AAAAAAAABE0/9pbO_od_mSk/s400/IMG_7000.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5270495557811654290" /><div><br /></div><div><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-2570867001355959801?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-88776041925370199382008-11-18T23:13:00.002-02:002008-11-18T23:16:15.820-02:00Photos QCON San Francisco 2008Here are some photos of the first and second days of QCON SF 2008. Enjoy!<br /><br /><table style="width:194px;"><tbody><tr><td align="center" style="height:194px;background:url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat left"><a href="http://picasaweb.google.com/danicuki/QCONSF2008#"><img src="http://lh5.ggpht.com/_t3QKIVOmzys/SSNktA0Gb-E/AAAAAAAABCc/lBmuMaK65_M/s160-c/QCONSF2008.jpg" width="160" height="160" style="margin:1px 0 0 4px;" /></a></td></tr><tr><td style="text-align:center;font-family:arial,sans-serif;font-size:11px"><a href="http://picasaweb.google.com/danicuki/QCONSF2008#" style="color:#4D4D4D;font-weight:bold;text-decoration:none;">QCON SF 2008</a></td></tr></tbody></table><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-8877604192537019938?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com1tag:blogger.com,1999:blog-6387400476745295118.post-38437975181982613302008-11-18T07:01:00.006-02:002009-05-21T17:49:38.401-03:00Padrões Para Introduzir Novas IdéiasParticipei hoje do primeiro tutorial na QCON San Francisco 2008. O tutorial foi sobre o assunto que eu venho estudando há algum tempo: Padrões para Introduzir Novas Idéias. Em termos de conteúdo, não vi nada muito novo. Mas o que mais me impressionou foi a presença de espírito da <a href="http://lindarising.org/">Linda Rising</a>. Foi um enorme prazer estar com ela todo esse dia e ouví-la falar sobre os padrões. A sua fala é tranqüila, clara e perfeita. Nunca tinha vista alguém da área da computação se expressar de forma tão maravilhosa. Me sinto privilegiado de ter participado de um tutorial ao lado de uma das mulheres que seja talvez um dos maiores nomes da computação atual.<div><br /></div><div>Para compartilhar o momento com todos, filmei alguns momentos. Linda propôs que, para aprender melhor sobre os padrões do livro Fearless Change, algumas pessoas fizessem encenações de um script escrito por ela. São pequenas <span class="Apple-style-span" style="font-style: italic;">sketches</span> que ilustram momentos de personagens como o Inovador, o Evangelista e outros. Espero que todos gostem!</div><div><br /></div><div><br /></div><br /><br /><object width="425" height="350"> <param name="movie" value="http://www.youtube.com/v/Ho14NAVNmqg"> </param> <embed src="http://www.youtube.com/v/Ho14NAVNmqg" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object><br><br /><br />Clique no link "YouTube" acima para ver os outros vídeos relacionados<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-3843797518198261330?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-8439380057050800192008-11-09T18:38:00.003-02:002008-11-09T18:43:18.444-02:00Sem MedoTransforme a resistência à nova idéia em algo a seu favor. Toda inovação, no fundo, rompe com algo. Logo, a resistência é bem vinda. Precisamos da resistência para testar nossas idéias e convicções. Os céticos são um presente. Eles nos dão informações sobre o caminho que estamos seguindo e sobre como podemos adaptar nossa abordagem.<br /><br />Talvez o ponto mais essencial da mudança é a nossa forma de lidar com o medo. Num processo de mudança existe medo de dois lados: quem está sendo mudado quer evitar a dor de ter que, talvez, perder algo; quem está promovendo a mudança tem medo de que sua idéia esteja errada. Quando esses dois lados entram em choque surge um impasse. A resistência não é a principal razão pela qual uma mudança falha. É a reação à resistência que causa problema.<br /><br />Dificilmente se obterá 100% de aprovação numa nova idéia. E isso é bem vindo. <span style="font-style: italic;">Toda lei que não deixa em aberto a possibilidade de sua execução, justamente por sua desobediência, é uma arbitrariedade. Segundo o Tratado de Sanhedrin, em caso de julgamento de penas capitais - quando se faziam necessários 23 juízes -, caso houvesse uma unanimidade na condenação do réu, o julgamento era desqualificado e este liberado. O sentido de tal lei é a desconfiança de que um processo possa ser tão bem conduzido que não paire qualquer dúvida quanto a uma leitura diferente da situação</span>. (A Alma Imoral - Nilton Bonder)<br /><br />É difícil ouvir quando não concordamos com algum ponto de vista. Normalmente ficamos fixados em nosso ponto de vista. Uma outra abordagem seria encorajar a outra pessoa a falar mais sobre o ponto de vista dela. Só de ouvi-la já ajudará vocês a se entenderem.<br /><br />Peça ajuda aos resistentes. Certifique-se de que eles sabem que você está ouvindo. Ouça de verdade e tente aprender com ele. Tente fazê-los entender que aceitar a nova idéia não significa jogar fora a experiência deles. Não assuma que a posição cética é fixa. Alguém que inicialmente parecia contra pode se virar a seu favor.<br /><br />Esse padrão permite que você use a resistência a seu favor, ao invés de a usarem contra você. As pessoas que virem você lidar com os céticos de forma respeitosa vão admirá-lo por isso.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-843938005705080019?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com2tag:blogger.com,1999:blog-6387400476745295118.post-18958669691444344442008-11-01T20:13:00.000-02:002008-11-01T20:13:22.055-02:00Dojo, feedback e teatro fórumHá um tempo tivemos na empresa um treinamento sobre <a href="http://agilesoftwaredevelopment.com/xp/values/feedback">Feedback</a>. Uma das atividades da tarde foi criarmos encenações onde o líder deveria conversar com um subordinado e dar feedback sobre um determinado acontecimento (i.e. não cumprimento de meta, comportamento inadequado, etc.). Duas coisas estavam sendo trabalhadas: de um lado o "ator" no papel de líder estava simulando uma situação real e aprendendo a lidar com situações difíceis do dia-a-dia de forma lúdica. Do outro estava a platéia, que podia (se) observar de fora. Podemos considerar essa observação fundamental e valiosa para o aprendizado. Ao observar o outro (e suas reações) numa situação que já vivemos, podemos extrair novas saídas, novos comportamentos possíveis.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_t3QKIVOmzys/SQMjSpXyeXI/AAAAAAAAA9c/yvVD2FqEQzg/s1600-h/dojo.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 222px;" src="http://2.bp.blogspot.com/_t3QKIVOmzys/SQMjSpXyeXI/AAAAAAAAA9c/yvVD2FqEQzg/s320/dojo.jpg" alt="" id="BLOGGER_PHOTO_ID_5261087592949119346" border="0" /></a><br />Na mesma semana do curso de feedback realizamos uma sessão de <a href="http://codingdojo.org/">Dojo</a> com os líderes de tecnologia. Dojo é um encontro de programadores que se reúnem para trabalhar em cima de um determinado desafio de programação. Eles estão lá para se divertir e melhorar suas habilidades através da prática "deliberada". Existe uma diferença entre a experiência que ganhamos no cotidiano do trabalho e o aprendizado buscado por livre vontade. Esse exercício é uma grande oportunidade de aprender com os outros. É também uma oportunidade de Simplesmente Fazer. Só <span style="font-weight: bold;">fazendo</span> é que o programador tem a oportunidade de aprender. Podemos ler vários livros ou artigos sobre <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a>, mas nunca saberemos o que o Desenvolvimento Orientado a Testes realmente significa se não o fizermos e praticarmos repetidas vezes.<br /><br />No Dojo existem algumas regras rígidas a serem seguidas (e fundamentais para a eficácia do aprendizado). Seguindo essas regras, o grupo pode observar cada programador trabalhando e depois sugerir melhorias, num processo de feedback. É a <a href="http://xprogramming.com/xpmag/jatPractice.htm">prática</a> contínua misturada com a observação que traz o aprendizado. Durante o exercício, dois programadores formam um par e trabalham em cima do código, enquanto a platéia observa em silêncio. Mesmo que a dupla esteja fazendo coisas muito erradas e absurdas, a regra é observar e só depois que os testes estiverem passando comentar. Além de tudo, é um grande exercício de disciplina (bons programadores só são bons porque têm muita disciplina). <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t3QKIVOmzys/SQMjr-wi4LI/AAAAAAAAA9k/AJyh3tzwNeo/s1600-h/dojo2.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_t3QKIVOmzys/SQMjr-wi4LI/AAAAAAAAA9k/AJyh3tzwNeo/s320/dojo2.jpg" alt="" id="BLOGGER_PHOTO_ID_5261088028186828978" border="0" /></a>A cada 7 minutos troca-se uma pessoa da dupla, de forma de todos tenham a oportunidade de programar. No momento da troca fica claro como um código mal feito do passado pode atrapalhar um trabalho futuro. Outro fato evidente é ver os vários estilos de programação e como uma comunicação ineficiente dentro do time pode levar a resultados completamente improdutivos e muitas vezes desastrosos. Claro que a troca não é o principal fator que faz com que código ruim do passado seja difícil de manter no futuro. O código ruim em si é que é o problema. Um mesmo programador pode pegar um código seu do passado e não conseguir fazer nada com ele a não ser reescrever do zero, de tão calamitoso que estava o código. É interessante observar como é importante sempre fazer um código mínimo mas que ao mesmo tempo deixe espaço para evolução sem muito custo. Esse é o desafio. Muitas rodadas acabam focando mais nas discussões sobre qual seria o melhor código do que observar a dupla codificando<br /><br />A vivência do Dojo pode ser encarada como uma experiência teatral. A princípio o termo "teatro" pode significar um lugar, um prédio onde acontecem representações teatrais. Mas teatro também pode ser apenas qualquer lugar onde coisas acontecem sob a vista de espectadores "paralisados". Em <span style="font-weight: bold;">Jogos para Atores e Não Atores</span>, <a href="http://pt.wikipedia.org/wiki/Augusto_Boal">Augusto Boal</a> diz que <span style="font-style: italic;">no sentido mais arcaico do termo, teatro é a capacidade dos seres humanos (ausente nos animais) de se observarem a si mesmos em ação</span>. <i>Todos os seres humanos são atores - porque atuam - e espectadores - porque observam. Somos todos "espect-atores".</i><br /><br />Existe uma forma de teatro criada por Augusto Boal e o grupo Teatro dos Oprimidos chamada Teatro Fórum. Essa forma foi muito difundida na Europa na década de 80 e consiste inicialmente <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t3QKIVOmzys/SQMl-C2NsyI/AAAAAAAAA9s/7u-lgLCB3wc/s1600-h/boal.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 213px;" src="http://3.bp.blogspot.com/_t3QKIVOmzys/SQMl-C2NsyI/AAAAAAAAA9s/7u-lgLCB3wc/s320/boal.jpg" alt="" id="BLOGGER_PHOTO_ID_5261090537545249570" border="0" /></a>num problema real que é apresentado como espetáculo teatral. Em seguida, os espectadores são convidados a entrar em cena, substituir o personagem "oprimido" na situação encenada (personagem que luta para transformar a sua realidade) e, através da improvisação, apresentar alternativas que mudem o rumo dos acontecimentos. O público, atravéz da observação, é então capaz de tirar conclusões que podem servir de gatilho para aprimoramentos em suas vidas individuais.<br /><br />É claro que existe uma grande diferença entre a resolução de um problema humano e psicológico (razão pela qual o Teatro dos Oprimidos foi criado) e a resolução de problemas matemático-computacionais. Mas não podemos negar que, mesmo na solução de questões algorítmicas complexas, existem pessoas realizando um trabalho. Se o problema tiver que ser resolvido por várias pessoas, é preciso existir muita qualidade na comunicação. Ainda mais quando tiverem pessoas de diferentes níveis de maturidade. Cada um poderá resolver a questão de forma diferente, mas todos precisam aprender com o processo. Ver o outro errar ou acertar é uma forma de reconhecer as próprias limitações ou habilidades. Ao mesmo tempo em que o Teatro (=Dojo) nos expõe individualmente, ele traz a tona oportunidades de aperfeiçoar e ampliar nosso conhecimento.<br /><br />Podemos encarar a dupla do Dojo como dois atores que estão representando personagens de programadores. Porque um programador também pode ser visto como um personagem. Ele pode ser nervoso, inquieto, ansioso, calmo, empolgado, rápido, egoísta, desanimado: todas características humanas e que podem mudar com o tempo (num dia o programador está ansioso, no outro ele está calmo). Como lidar com todas essas emoções no dia-a-dia de forma hábil?<br /><br />A platéia numa sessão de Dojo é como o público no teatro, que observa as reações e comportamentos das personagens. Não há forma melhor de aprendermos a lidar com situações inusitadas senão vivendo-as e observando-as. Mas para vivê-las e querer observar é preciso encarar nossas deficiências e <a href="http://www.improveit.com.br/xp/valores/respeito" target="_blank">respeitá</a>-las, e saber que com trabalho e muita prática podemos melhorar sempre.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-1895866969144434444?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-30221433779036273152008-10-25T10:25:00.003-02:002008-10-25T11:25:23.625-02:00Um passeio pelo Falando em AgileAcabo de voltar do <a href="http://www.caelum.com.br/falando-em-agile/">Falando em Agile</a>! O evento foi muito bom, com a participação de grandes nomes do movimento Ágil. Tentei levantar os principais pontos do evento.<br /><br /><a href="http://www.agilemanagement.net/Articles/Weblog/blog.html">David Anderson</a> fez o Keynote de abertura levantando pontos importantes sobre agilidade:<br /><ul><li>Manter qualidade alta em tudo que for feito. Para isso muitas vezes temos que fazer as coisas com calma e ter o tempo certo para fazer a coisa certa.<br /></li><li>Tentar limitar o WIP (work-in-progress) usando <a href="http://www.agilemanagement.net/Articles/Weblog/Practicalarticleonimpleme.html">kanban</a></li><li>Equilibrar a demanda com a saída, ou seja, não colocar mais trabalho do que a equipe é capaz de produzir (de novo, kanban, processo pull e não push)</li><li>Aprender a priorizar, alinhado com o plano estratégico</li></ul>O <a href="http://www.dtsato.com/blog/">Danilo Sato</a> e o <a href="http://blog.franktrindade.com/">Francisco Trindad</a>, da ThoughtWorks lembraram o cuidado que devemos ter em querer sempre manter a velocidade do time. A velocidade deve ser usada com sabedoria e o time não deve ser cobrado nem pode ter sua performance medida somente pela velocidade. Ela é apenas um indicador que deve ser usado para feedback. O importante é se comunicar muito bem e entender sempre o que está acontecendo de fato. Eles também disseram: quem quiser ser ágil em desenvolvimento de software e só se focar nos processos gerenciais, mais cedo ou mais tarde vai falhar. É preciso ter foco na programação, no código. No final do evento o <a href="http://blog.fragmental.com.br/">Phillip Calçado</a> deu uma palestra muito boa e enfatizou muito a importância do código.<br /><br />Outra coisa que disseram várias vezes é que <span style="font-weight: bold;">ser ágil</span> é sempre questionar o que está sendo feito, procurando o tempo todo oportunidades de melhoria. Quem disser: "nós somos ágeis, fazemos o processo perfeito e não precisamos mudar" está acomodado e não é ágil. XP Estático não é XP. XP é evoluir sempre (dito pelo próprio Kent Beck). O que importa muito é o contexto. Temos sempre que avaliar o contexto em que estamos e aplicar a melhor solução para esse contexto específico.<br /><br />O Danilo disse: "estamos fazendo todas essas práticas, mas está claro POR QUE estamos fazendo?". Quais são os princípios por trás das práticas. As pessoas PRECISAM saber porque fazem desse forma, precisam entender os princípios.<br /><br />O <a href="http://gc.blog.br/">Guilherme Chapiewski</a> (GC) deu uma palestra muito legal sobre liderança ágil. Não pude assistir até o fim mas anotei alguns pontos que achei muito importantes. Nos princípios de liderança ágil, o líder deve:<br /><ul><li>Ser útil</li><li>Estar presente</li><li>Dar o melhor de si e ser autêntico</li><li>Saber construir uma comunidade e uma cultura</li><li>Prestar atenção</li><li>Ter paixão pelo que faz</li></ul>Suas atitudes devem:<br /><ul><li>ser exemplos a serem seguidos</li><li>fazer com que as pessoas tenham iniciativas</li><li>estar alinhadas com as espectativas do negócio</li><li>ser tolerante</li><li>oferecer as ferramentas necessárias para as pessoas trabalharem melhor</li></ul>Gostei muito do evento, principalmente pela oportunidade de ter conhecido várias pessoas que eu conhecia pelos blogs. Gostaria de agradecer ao <a href="http://amagno.blogspot.com/">Alexandre Magno</a> e ao Paulo Silveira da <a href="http://www.caelum.com.br/">Caelum</a> pela oportunidade de, junto com o <a href="http://ime.usp.br/%7Ekon">Fabio Kon</a>, ter apresentado a palestra sobre <a href="http://agileandart.blogspot.com/2008/09/palestra-padres-para-introduzir-novas.html">Padrões para Introduzir Novas Idéias</a>.<br /><br />Pra seguir o costume, fiz um vídeo, passeando por lá.<br /><br /><object width="425" height="350"> <param name="movie" value="http://www.youtube.com/v/PPy5A62O00g"> <embed src="http://www.youtube.com/v/PPy5A62O00g" type="application/x-shockwave-flash" width="425" height="350"></embed> </object><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-3022143377903627315?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com4tag:blogger.com,1999:blog-6387400476745295118.post-77409496417033017702008-10-18T13:57:00.003-03:002008-10-18T14:34:00.855-03:00A natureza de desenvolver softwareA geração de bom software não é um processo de produção; é um processo de desenvolvimento. Desenvolver é diferente de produzir. Desenvolver é como criar uma receita, enquanto que produzir é seguir os passos de uma receita pronta. São atividades diferentes. Desenvolver uma receita é um processo de aprendizado, de tentativa e erro. Quando um grande chefe cria um prato, ele não o cria de primeira. O prato primordial é resultado de um refinamento, de várias tentativas e variações sobre um tema, na busca do resultado perfeito.<br /><br /><table style="width: 514px; height: 200px;" border="1"><tbody><tr><br /><td style="text-align: center;"><span style="font-weight: bold;">Desenvolvimento</span><br />Projetar a receita<br /></td><td><div style="text-align: center;"><span style="font-weight: bold;">Produção</span><br /></div><div style="text-align: center;">Produzir o prato<br /></div></td><br /></tr></tbody><tbody><tr><br /><td><ul><li>Qualidade é estar de acordo com o uso<br /></li><li>Variações são boas</li><li>Iterações geram valor</li></ul></td><td><ul><li>Qualidade é estar de acordo com os requisitos<br /></li><li>Variações são ruim</li><li>Iterações geram desperdício (re-trabalho)</li></ul></td></tr></tbody></table><br />Na Disneylândia, existem centenas de atores cujo único trabalho é fazer com que cada visitante tenha momentos maravilhosos. Os requisitos do que é um "momento maravilhoso" muda de visitante para visitante e o trabalho do ator é descobrir o que o visitante vê como experiência de qualidade e se certificar de que ele tenha essa experiência.<br /><br />A visão de qualidade de serviço (e hoje software é serviço) leva em conta que cada cliente tem uma idéia diferente do que significa uma experiência de qualidade.<br /><br />A diferença entre prover um serviço e produzir um produto é que, em serviços, atender a necessidade do cliente requer variações, enquanto que em linhas de produção variações são vistas como inimigas.<br /><br />Problemas de software possuem várias soluções, em vários níveis, feitas por todos os membros do time. Não só os arquitetos estão envolvidos, mas todos os desenvolvedores. Escrever código envolve um entendimento profundo do problema, reconhecer padrões, experimentar várias abordagens, testar os resultados. Para isso, o melhor processo é aquele que consiste em ciclos curtos de aprendizado.<br /><br /><span style="font-style: italic;">Fonte: Mary and Tom Poppendieck, Lean Software Development - An Agile Toolkit</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-7740949641703301770?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-6017446533432356642008-10-18T13:37:00.003-03:002008-10-18T17:12:47.668-03:00RailsSummit - Vídeo do almoçoO evento RailsSummit promovido pela locaweb reuniu os maiores nomes da comunidade Ruby/Rails/Ágil. Óbviamente não podia faltar um delicioso strogonoff na hora do almoço.<br />Vejam:<br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/F_ll8iMErfk&hl=pt-br&fs=1"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/F_ll8iMErfk&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-601744653343235664?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-79121912688741108452008-10-12T19:28:00.001-03:002008-10-12T19:29:34.412-03:00Fotos do Encontro Ágil 2008Publiquei no meu picasa as <a href="http://picasaweb.google.com/danicuki/2008_10_10EncontroGil">fotos do Encontro Ágil</a>.<br /><br />Apreciem com moderação!<br /><br /><a href="http://picasaweb.google.com/danicuki/2008_10_10EncontroGil">http://picasaweb.google.com/danicuki/2008_10_10EncontroGil</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-7912191268874110845?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-82757775117082290572008-10-12T17:37:00.003-03:002008-10-12T18:07:02.562-03:00Encontro Ágil - Vídeos ImprovisadosSó para sentir o clima do Encontro Ágil promovido pela Agilcoop, que aconteceu ontem no IME-USP, fiz alguns filminhos. Em breve teremos disponíveis os vídeos completos da trilha avançada do evento, com debates calorosos. Divirtam-se!<br /><br /><br /><span style="font-weight:bold;">Encontro Ágil 2008 - Almoço</span><br /><object width="425" height="350"> <param name="movie" value="http://www.youtube.com/v/GWoX2bml8Ws"> </param> <embed src="http://www.youtube.com/v/GWoX2bml8Ws" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object><br /><br /><br /><span style="font-weight:bold;">Encontro Ágil 2008 - Passeio</span><br /><object width="425" height="350"> <param name="movie" value="http://www.youtube.com/v/ip0nw0qFyE8"> </param> <embed src="http://www.youtube.com/v/ip0nw0qFyE8" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object><br /><br /><span style="font-weight:bold;">Encontro Ágil 2008 - Introdução a XP</span><br /><object width="425" height="350"> <param name="movie" value="http://www.youtube.com/v/ntYe9cdgjig"> </param> <embed src="http://www.youtube.com/v/ntYe9cdgjig" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object><br /><br /><span style="font-weight:bold;">Encontro Ágil 2008 - Debate Ágil x CMMI</span><br /><object width="425" height="350"> <param name="movie" value="http://www.youtube.com/v/MD7SK5cUPyk"> </param> <embed src="http://www.youtube.com/v/MD7SK5cUPyk" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-8275777511708229057?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-35409138910880675612008-09-27T19:28:00.003-03:002008-09-27T19:32:40.046-03:00Agilcast - Padrões para Introduzir Novas IdéiasFoi publicado hoje no site da Agilcoop o podcast sobre Padrões para Introduzir Novas Idéias. Pode ser baixado diretamente na página de <a href="http://agilcoop.incubadora.fapesp.br/portal/agilcast">podcasts da Agilcoop</a> ou diretamente <a href="http://agilcoop.incubadora.fapesp.br/portal/agilcast/episodios/Agilcast11-Padroes%20para%20introduzir%20novas%20ideias.mp3">nesse link</a>. O podcast discute alguns padrões e conta o caso em que eles foram usados para introduzir métodos ágeis dentre de uma organização.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-3540913891088067561?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com2tag:blogger.com,1999:blog-6387400476745295118.post-72852329251764989232008-09-08T18:24:00.003-03:002008-09-08T19:00:19.023-03:00Encontro Ágil gratuito na USP em Outubro<div style="text-align: center;"><a href="http://www.encontroagil.com.br/"> <img alt="Encontro Ágil 2008" title="Encontro Ágil 2008" src="http://www.encontroagil.com.br/images/badget1.png" border="0" /> </a><br /></div> <br />11 de Outubro de 2008<br />IME-USP - Rua do Matão, 1010 - Cidade Universitária<br />São Paulo<br /><br />O Encontro Ágil é um evento <span style="font-weight: bold;">gratuito </span>que reunirá, por um dia inteiro, alguns dos principais nomes brasileiros do desenvolvimento ágil de software.<br /><br />Dia 11 de Outubro está reservado para discussões, trocas de experiências e palestras de especialistas em Programação eXtrema, Scrum e nas metodologias mais produtivas do mercado.<br /><br />Conheça os profissionais que já usam métodos ágeis. Junte-se ao grupo que está revolucinando a maneira de produzir software. Participe das discussões mais atuais do mercado, tire suas dúvidas e descubra como as técnicas ágeis podem ajudá-lo a aumentar a produtividade da sua equipe e a qualidade do seu software.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-7285232925176498923?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com0tag:blogger.com,1999:blog-6387400476745295118.post-66426836996784075002008-09-06T17:32:00.003-03:002008-09-06T17:40:12.279-03:00Palestra: Padrões para Introduzir Novas Idéias na Industria de Software<span style="font-weight: bold;">Data: Segunda-feira, 8 de Setembro de 2008.</span><br /><span style="font-weight: bold;">Horário: 13h</span><br /><span style="font-weight: bold;">Local: Instituto de Matemática e Estatística (IME/USP)<br />Sala: 254 Bloco A</span><br /><br />Novas Idéias: novas formas de gestão, novos métodos de desenvolvimento de software, novas soluções técnicas, novas arquiteturas de sistemas. Com um mercado de software cada vez mais competitivo e agressivo, boas idéias se perdem e são desperdiçadas no meio de tanta informação e novidades tecnologias.<br /><br />Neste seminário apresentaremos uma forma eficaz de convencer as pessoas a adotar uma idéia. São vários padrões que foram criados para facilitar a aceitação de uma nova idéia dentro de uma corporação. Quais são as forças nas empresas que aceleram ou freiam mudanças e como plantar as sementes da mudança para que abracem suas idéias e que elas sejam implantadas até o fim com sucesso.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://gsd.ime.usp.br/seminars/2008/presentation_daniel_cukier.pdf"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_t3QKIVOmzys/SMLqddxPL5I/AAAAAAAAAyM/hJ5EgLufkpE/s320/padroes.jpg" alt="" id="BLOGGER_PHOTO_ID_5243010708140928914" border="0" /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6387400476745295118-6642683699678407500?l=agileandart.blogspot.com'/></div>Daniel Cukierhttp://www.blogger.com/profile/06015320076527913640noreply@blogger.com1