Association of Information Management WordPress Blog

Interview with a Refactoring Guru

Posted by: pageman on: December 8, 2009

What IS students are saying about Philip Laureano’s Refactoring Workshop:

“…can this be an alternative class? sayang kasi….you will really learn a lot in this seminar… sana required ang IS students to attend this =( …we must grab the opporunity.” – Jecca Cervero

“…in this seminar, you will learn a lot of things especially about refactoring the code, it will be a great help to a lot of IS students ..I think it should be required!” – Marjorie Buce

“… coding has never been this simple, I now see and write codes from a different angle. This workshop has taught me beyond what I can learn in my programming subjects, such as time management, simplicity and code readability. If it wasn’t for this, I would still have a hard time reading and maintaining codes, even my own.” - Tish Mahtani

“… I’m not really into coding or programming stuffs. That’s why I attended this event to help me gain more knowledge about programming. What I liked most is being able to shorten heavy weight of codes into a very short and readable ones.” – DK Abrenica

“.. the first rule of programming is not to program at all! This seminar taught me the virtue of simplicity and cleanliness in code writing; it surely was a great headstart into the very cumbersome software development field that we IS students are to undertake in the near future. The opportunity of learning from one of the best senior developers and programming mentors in the country lead me to into realizing that the practice of coding need not be so complicated, that the best way is to simplify. Less is more!” – Uij Dollosa

“… When I see codes that are alike, I just usually copy and then paste it. But, does it make me a good programmer? Of course not! It also makes me unprofessional. Good thing, refactoring helps a lot. It makes my codes short, simple, easier to maintain and organized. In addition, I could be proud that I don’t do copy and paste :) When I learned about refactoring, I realized that I don’t have to make myself not love programming due to tons of confusing code lines and time consuming editing the whole program, because there’s a more easy way to understand and do it :) ” – Jill Montano

An interview with Refactoring Guru, Philip Laureano, of CodeLean

Last November 14, 21, 28 and December 8, the Association of Information Management hosted a refactoring workshop for DLS-CSB students and alumni conducted by BSBA-CA Alumni, Philip Laureano, who is now a Technology Evangelist from CodeLean. Here’s an interview by Paul Pajo, faculty adviser of AIM about refactoring.

Philip Laureano on refactoring interview by Paul Pajo

Paul Pajo: From a non-IT person’s point of view, what is code refactoring?

Philip Laureano: Refactoring is the part of a programmer’s job that they never teach you in school. Universities usually teach you how to build software like an engineer, but they don’t teach you how to maintain it once the software is built. In software development, we’re faced with impossible scenarios every day. We’re given deadlines, requirements, and schedules that change on a daily basis. Building the software is only 10% of the overall work involved. The other 90% of the work that is done by software developers is making sure that their applications are flexible enough to meet these seemingly impossible requirements It’s like having a professor who changes their mind every day, and holds you responsible if you’re unable to meet their requirements (no matter how unreasonable they might be). It’s not enough to build the software–you have to actively maintain it so that you’ll be ready to change it once the next requirement comes in

Paul Pajo: So where does or how does refactoring come into play?

Philip Laureano: Refactoring is the art of reorganizing your code so that it’s easier to change, maintain, and understand. This isn’t some new technology–it’s been around for almost four decades now. If you’re a software developer with at least four or five years of experience under your belt, there’s a good chance that you already do this but you probably never thought about it

Paul Pajo: It wasn’t called “refactoring” until fairly recently, was it?

Philip Laureano: I believe it’s been called that for four decades now. Actually, it’s been done for four decades but it really didn’t get much attention until Martin Fowler wrote his book on Refactoring.

Paul Pajo: Okay so, from your experience, why should students or even junior programmers learn refactoring from the get go?

Philip Laureano: It will give them an advantage that many people of their skill level rarely attain. It takes years to learn this stuff. Refactoring is about learning how to improve the quality of the code that you already have. It’s learning how to reshape your software in such a way that you can move faster than the competition because of the quality of your code. I would even say that refactoring should be as natural for a programmer as naturally as a doctor washes his hands before an operation. And from another standpoint, you really don’t get much peer respect from other programmers if you write code that is not refactored. So on one hand, it makes your job as a programmer much easier to do since refactoring makes your code easy to maintain. On the other hand, no programmer would want to work with you unless you can show them that the code you write is clean

Paul Pajo: Am I correct to say that the refactoring workshop you did in CSB is the one of the first if not the first refactoring workshop in the Philippines?

Philip Laureano: Yes, that’s correct. We wanted to see how it would affect people with some rudimentary programming experience. It was a mixed experience, but overall, I’d say the students learned quite a bit from the course.

Paul Pajo: Okay, this begs the question, if refactoring has been around for almost 4 decades and it’s such an important part of programming – why only now?

Philip Laureano: It’s because for the first few decades in software development, the focus has been solely on delivery and construction. But over the past ten years or so, we (as an industry) are slowly starting to realize that our problems are caused by the cost of maintenance, not the cost of construction. So you can come up with the most magnificent specification for software, but it quickly becomes obsolete when the next set of requirements come in and you can’t change your code fast enough to meet those requirements. Big Design Up Front (BDUF), in essence, is practically ineffective

Paul Pajo: There was a Red-Green Refactor: Test-Driven Development with .NET back in October 5 2006 – how is that different from what you’re doing?

Philip Laureano: I focus on the “Refactoring” part. You can’t do TDD without refactoring, and vice-versa. TDD helps you write testable code, but it’s the refactoring part that lets you improve the design of the code that you have already written. In fact, it’s pointless to show people what TDD does if they can’t refactor. They need to understand why their code needs to be clean; otherwise TDD can get messy and very, very, ugly. TDD’s basic concept is that you write the tests first, make the tests pass with the simplest (and even ugliest) code possible, and then you take the “ugliness” out of the code. It’s basically an introductory course. I assume that he doesn’t cover refactoring because it’s either too big of a subject to discuss or perhaps he thinks that enough people know how to refactor their code

Paul Pajo: I searched devpinoy.com – you’re right – refactor seminars/workshops are scarce.

Philip Laureano: You’d be lucky to find a single refactoring course within all of Southeast Asia.

Paul Pajo: How is technical debt related to refactoring and could you explain in layman’s terms what technical debt is?

Philip Laureano: In layman’s terms, technical debt is the kind of debt that you get into when you decide to skip critical development activities in favor of a shorter release cycle. It can be anything from deciding not to refactor or opting not to document everything because you think it takes too much of your time. Like any debt, you’ll eventually have to pay it back; otherwise, your productivity will eventually be crippled by that debt, and you won’t be able to work as efficiently as you did beforehand.

Paul Pajo: So from your experience, how much of a technical debt can be avoided if you refactor from the start?

Philip Laureano: All of it. It takes a lot of discipline, but you can pretty much cut your maintenance work to zero if you keep refactoring early. That’s what we have done with our projects at CodeLean.

Paul Pajo: And you’re saying this from experience? Can you compare your programming experience before and after you became disciplined in refactoring?

Philip Laureano: Yes, I’m saying this from experience. Back in 1999, when I was just starting out as a programmer, I didn’t know what refactoring was, nor did I understand how much the quality of my code had a huge impact on my own job performance. And now, in 2009, after working on dozens of both closed and open source projects, I’d say that refactoring has made my job really easy. I never have to spend more than an hour maintaining my code. Other shops typically would have entire teams looking through thousands of lines of source code to fix a bug. We keep our code so clean that we can spot the bug immediately and fix it. At first, refactoring didn’t make much sense to me–but it made a huge difference when I realized that I spent less and less time on maintenance because of refactoring. It also keeps our developers happy since we never get any complaints about ugly code. It just all works.

Paul Pajo: Can you go back to that “Eureka” moment? Was that a factor in you deciding to be a refactoring evangelist?

Philip Laureano: It wasn’t a “eureka” moment as much as a moment of frustration. I cared deeply about writing good software (even back then), and I couldn’t understand why people didn’t see anything wrong with their code when they decided to “Cut & Paste” it a dozen times over because they didn’t understand the concept of loops. I ran into so many cases where we had to stay overnight and fix a bug that was caused by a programmer who wrote ugly code. So I’ve become a big proponent of refactoring simply because teaching it to other people saves me the headache of having to clean up their code. At the same time, you really can’t get much respect among your peers if you don’t write clean code. Maintaining code is probably one of the most challenging parts about working as a programmer

Paul Pajo: So what exactly do you do now? From what I’ve gathered, it seems to be your dream job. Is this correct?

Philip Laureano: It is my dream job. I started off as a lead developer and CodeLean told me that they needed someone to help them get their shop set up with the best coding practices. So for the first six months, we got everyone setup with TDD, Continuous Integration, Refactoring, and Automated Web Acceptance Testing. Once we were done with the setup, CodeLean decided to focus more on training other developers. Now, I’m going to be a trainer/evangelist. So my job is to write articles, develop my personal projects, and promote the company’s courses with my blog posts and technical articles. It’s a dream come true for me because I get paid to do something I already do as a hobby.

Paul Pajo: That’s awesome! Any last words for students and programmers who might be interested in refactoring?

Philip Laureano: If you’re serious about being a good developer, then you must learn refactoring. It’s a critical skill that determines whether or not you’re a real programmer, or if you’re just someone that happens to write code. Any code monkey can write a program, but it takes a real human to write readable code for other humans. If you want to stand out as a programmer and be counted among the humans, then you definitely need to refactor your code. Always.

If you want to contact Philip Laureano about refactoring and other code-related matters, follow him on twitter.com/philiplaureano

You should add me on Plurk here:

“Due to flooding caused by typhoon Isang, DLS-CSB is suspending classes&work today, 17 July. All campuses except CSB Hotel shall be closed”

got the txt/sms from the IS Chairperson, enjoy the day!

from the De La Salle – College of St. Benilde website:

“This morning, DLS-CSB released an announcement on suspension of classes following the CHED regulation, which was sent to the College at 7:30 am. At 11:30 am, administrators of the College met with DOH officials and were informed of the one confirmed case, which prompted the amendment of the previous announcement.”

stay tuned!

Jilianne Leigh vs. Jericho for the first evar STRAW DRAW World Championship!

Job Opening: Fundraising Officer for WWF Philippines

Posted by: pageman on: January 27, 2009

There’s no Biz like E-BIZ!

Posted by: vinchyvim on: January 27, 2009

ebiz-copy1

Troubleshooting 101: Shoot ‘em Bugs Down!

Posted by: vinchyvim on: January 27, 2009

troubleshooting101-1copy

Learn how to deploy an ecommerce app on Ruby on Rails!

Posted by: pageman on: December 1, 2008

Be a WebDev Hero! Learn Heroku

De La Salle – College of Saint Benilde Information Systems student Arjay “JayThree03″ Orcasitas will be presenting to his peers how to deply Spree, an online commerce app on Ruby on Rails over Heroku on Wednesday, December 3 2008 at CL8, DLS-CSB Main Campus from 1030AM up to 230pm

Check out also the spree-user thread where Spree Sean Schofield becomes interested in Heroku:

“Now you have got me interested in Heroku and Spree :-)
Please do a blog post or something on this so we can all learn what
you did.  I’m also curious how you resolved the Rails 2.1.2 problem?
Did you use an earlier version of Spree or did you just change the
Rails Version in the Spree code?  I bet the current code works with
Rails 2.1.0 if you changed the required Rails version only – but I’m
curious to know for sure.”

If you want a preview of what’s going to happen, check out these screencasts!

Be a WebDev Hero! Learn Heroku

Posted by: pageman on: December 1, 2008

Arjay Orcasitas’ workshop on how deploy the Ruby on Rails online commerce app, Spree, on Heroku

Be WebDev Hero! Learn Heroku

CL8, De La Salle – College of Saint Benilde Main Campus, Taft Ave, Wednesday 1030am-230pm, 3 Dec 2008

Yeah. This is how we roll. Or we role. Not only trying to be role models but ramp models as well.

Belated Happy Birthday to AIM President Uij Dollosa – ask him to add you to his Multiply blog so you can see the other pictures of CHALK’s Style Brigade 2008 in De La Salle – College of Saint Benilde.

Luigi a.k.a. Uij Dollosa at the Chalk Style Brigade 2008 catwalk

RSS HN

  • XHP: A New Way to Write PHP (from Facebook)
    Today, I'd like to take to this opportunity to share with you a project that's quickly becoming a cornerstone of front-end PHP development at Facebook. XHP is a PHP extension which augments the syntax of the language to both make your front-end code easier to understand and help you avoid cross-site scripting attacks. XHP does this by making PHP un […]
  • A wedding gift for our co-founder became our startup's newest product.
    Thrilled For You video guestbook is kiosk software for Macs with webcams. Your wedding guests can record an unlimited number of personal video congratulations. You can even incorporate the clips into your official wedding video. See all the themes, customize your guestbook. Bulk discounts for wedding professionals available. Comments […]
  • Feds Bust Cookie-Stuffing Code Seller
    Federal authorities are charging a Las Vegas man with marketing a so-called “cookie-stuffing” operation, enriching himself and others while defrauding eBay along the way. The felony conspiracy to commit wire fraud charge levied Tuesday against Christopher Kennedy, who faces a maximum 5-year prison term, centers around his website the authorities […]
  • Schneier has a new book coming out - Cryptography Engineering
    Cryptography Engineering Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno John Wiley & Sons, March 15, 2010 ISBN: 9780470474242 $55.00 Preorder from: Book Depository | Powell's | Amazon | B&N | Amazon.co.uk Learn to build cryptographic protocols that work in the real world Knowing how a camera works does not make you a great photographer. Kno […]
  • Tell HN: The joojoo guy is live on mixergy now
    Add the word Mixergy if you want others to see it.
  • Google Buzz
    Go beyond status messages Share updates, photos, videos, and more. Start conversations about the things you find interesting. Watch a video Comments
  • Word of mouth isn't viral
    "Virality is something that has to be engineered from the beginning…and it’s harder to create virality than it is to create a good product. That's why we often see good products with poor virality, and poor products with good virality. The reason that over $150 Billion is spent on US advertising each year is because virality is so hard. […]
  • Lecture overclocking
    overclocking the lecture The growth of both bandwidth and storage mean that in the last few years practically everyone from individuals to large universities have begun putting lectures and talks online. While I can easily pick out a dozen or a hundred videos that that would be fascinating and educational, I am hamstrung by my short attention span, and I dri […]
  • AMD reveals Fusion CPU+GPU, to challenge Intel in laptops
  • Interview with Paul Stamatiou, Georgia Tech Graduate and founder of Skribit
    Today I had the pleasure of doing an interview with someone that is in the early stage of running his startup, Paul talks about graduating from georgia or should i say he linked to it. WOW, I still can’t believe this is my 100th interview, it seems like yesterday i started doing this interview He Talks about the following: How he managed college work a […]
  • An Annual Report on One Man’s Life
    At the end of 2005, Nicholas Felton decided to publish a report that would chronicle his life over the previous year. He looked through his music archives to see how many songs he had listened to. He checked his airline ticket stubs to see how many miles he had flown. He aggregated the number of books read and photos taken. He compiled those and myriad other […]
  • Paying Developers Like Sales People
    Paying Developers Like Sales People The other night I was talking to a co-worker about the difference between developers and sales people. My co-worker said, "I think developers and sales people are different by nature. Developers do their job for the love of coding, sales people work for the money."I disagree. I think the difference is incentives […]
  • "Welcome to the Machine": State monads in Clojure
  • Linode introduces StackScripts - Custom recipes for your Linode
    February 9, 2010 11:33 am Need a way to quickly get a LAMP stack up and running that’s automatically tuned, tweaked and optimized for you? Ever wished there was a way to deploy a Wordpress stack that worked right out of the box? How about an easy way to deploy a cluster of identically configured Linodes? StackScripts provide a flexible way to customize […]
  • Introducing Our Ridiculously Simple Twilio SMS API
  • Screw-in coffin patent issued
    Void your warranty, violate a user agreement, fry a circuit, blow a fuse, poke an eye out. Make: The risk-takers, the doers, the makers of things... Welcome to Make: Online! Check out more videos from MAKE. Connect with MAKE MAKE on Facebook Visit our Facebook page and become a fan of MAKE! MAKE on Twitter Follow our MAKE tweets! MAKE on Flickr Join our MAKE […]
  • Gluing Things Together - Scheme in the Real-time CG Content Production
  • If your product is Great, it doesn't need to be Good.
    So where does this leave the iPad, with it's lack of process managers, file managers, window managers, and all the other "missing" junk? I'm not sure, but one thing I've noticed is that I spend more time browsing the web from my iPhone than from my laptop. I'm not entirely sure why, but part of it is the simplicity. My iPhone is […]
  • Neato's Robot Vacuum Is A Roomba Killer
  • My New Philosophy Website
    Fallible Ideas I named this site ‘Fallible Ideas’ to emphasize that we all make mistakes. It's important to always be learning, challenging ourselves, and trying to improve. By an effort, we can make fewer mistakes. Perhaps you can learn something if you read on. Why is Reason Important? Parenting and Reason Relationships and Reason Why is T […]

RSS I LOVE TO CODE!

  • Senior Software Developer at Bazaarvoice (Austin, TX 78746) February 9, 2010
    Senior Software Developer Location: Austin, TX Job Type: Full-time, salaried with benefits, and stock options Reports To: Director of Development About this Position We're looking for an experienced technical expert in Java enterprise server technologies to join the Bazaarvoice development team as a Software Developer. The team is responsible for all th […]
  • Java Server Side Software Engineer. Leading Internet Company. at adMarketplace Inc. (New York, NY) February 9, 2010
    Java Server Side Software Engineer. Leading Internet Company. adMarketplace is a profitable and fast-growing Internet advertising company. We place ads for our 100,000+ advertisers across our network of over 300,000 websites using our proprietary technology that allows us to run and optimize a real-time auction system to price the ads correctly. We work clos […]
  • Senior WPF, C# .Net, MS Commerce Server at zTradingIndustries (Las Vegas, NV) February 9, 2010
    We are looking for a special person interested in working with a highly talented and experienced team developing the 4th generation Point of Sale product for the Pawn Brokering Industry. We are looking for someone who has talent and passion for creating elegant and scalable software. This highly vetted team has been recruited specifically for the development […]
  • Software Engineer at LimeWire (New York, NY 10013) February 9, 2010
    Software Engineer Lime Wire LLC, maker of the famous file-sharing program and digital music store seeks exceptional SOFTWARE ENGINEERS. Ideal candidates will be innovative, self-motivated, a quick study, and willing to develop new skills while constantly improving existing abilities. The candidate must also be a strong multi-tasker with exceptional time-mana […]
  • ASP.Net Developer at Blend Interactive (Sioux Falls, SD) February 9, 2010
    We're looking for an experienced ASP.Net developer to work on content management projects using EPiServer and Ektron. More information here: http://blendinteractive.com/contact/hiring-aspnet-developer/ This is a full-time, on-site position in our Sioux Falls, South Dakota office. Please DO NOT contact us for outsourcing or tele-commuting. Relocation ass […]
  • Solutions Architect at Cloud Systems, Inc. (San Francisco, CA 94107) February 9, 2010
  • Front-end Web Developer at Second Story Interactive Studios (Portland, OR 97227) February 8, 2010
    Second Story seeks a front-end Web developer to build innovative Web sites using HTML/CSS and JavaScript. The front-end Web developer is an accomplished developer who is passionate and knowledgeable about the opportunities modern Web UI frameworks provide to build informative, useable, and inspiring Web sites. As a core part of the project team the front-end […]
  • Web Developer at Second Story Interactive Studios (Portland, OR 97227) February 8, 2010
    Second Story seeks an experienced Web developer to build the databases, Web services, and content management systems that drive the studio’s various interactive projects. The Web developer is passionate and knowledgeable about building reusable server-side frameworks based on Open Source Web technologies and programming practices including PHP, MySQL, […]
  • Software Engineer - Advanced Infrastructure and Data at Quantcast (San Francisco, CA 94103) February 8, 2010
    At the heart of Quantcast’s revolutionary services is a team of elite software engineers working on a massive data pipeline. This is the core team that sorts though hundreds of terabytes of data each day and builds advanced distributed computing systems to crunch through Everest sized data sets. Quantcast is hiring engineers with experience producing t […]
  • User Interface Engineer at Instructables (Telecommute) February 8, 2010
    Instructables is seeking a talented user interface engineer with a passion for JavaScript and usability. You'll need to be able to make our website lovable, easy to use, and fast to load. You will implement new user-facing designs and features, troubleshoot slow-downs, track down and fix any weird bugs that leave our community members scratching their h […]
  • Web Application Developer at Epernicus (Boston, MA) February 8, 2010
    Epernicus is growing and we're looking for help! We're a Boston-area start-up (Harvard and MIT roots) founded in 2008 by four passionate entrepreneurs with medical and software backgrounds. Our customers are world-class companies and non-profits doing cutting-edge medical research (Genzyme, the Broad Institute and Brigham and Women's Hospital, […]
  • Google Engineering Operations Opportunities at Google Inc. (Mountain View, CA 94043 / New York, NY 10011) February 8, 2010
    Simply put, Google engineers make computers do amazing things. Populated by extraordinarily creative, motivated, and talented people, our Engineering team gets excited by developing new applications that really make a difference and are used by millions of people. We’re driven by Google’s mission to organize the world’s information and make […]
  • Software Engineer at AllscriptsMisys (Chicago, IL 60631) February 8, 2010
    AllscriptsMisys (NASDAQ: MDRX) uses innovation technology to bring health to healthcare. Formed by the merger of Chicago-based Allscripts and Raleigh-based Misys Healthcare, the newly integrated company is one of the nation’s largest providers of healthcare information technology. Our world-class software, services, information and connectivity solutio […]
  • Enterprise Architect at AllscriptsMisys (Raleigh, NC 27615) February 8, 2010
    AllscriptsMisys (NASDAQ: MDRX) uses innovation technology to bring health to healthcare. Formed by the merger of Chicago-based Allscripts and Raleigh-based Misys Healthcare, the newly integrated company is one of the nation’s largest providers of healthcare information technology. Our world-class software, services, information and connectivity solutio […]
  • LAMP Developer (MVC/Agile) at iVoucher (London, United Kingdom) February 8, 2010
  • iphone/Android Developer - Co-Founder Role at Bevo Development (Dallas, TX) February 8, 2010
    Company Overview Bevo is a boot-strapped mobile/social game development company located in Dallas, TX. Bevo is looking to build a unique geo-location based game on multiply platforms (Iphone and Android). Position Bevo is seeking an entrepreneurial minded web/mobile developer who is willing to accept a major responsibility in helping develop and plan a mobil […]
  • Senior Linux Debugger/Software Analysis Engineer at Freescale Semiconductor (Austin, TX) February 8, 2010
    This position is for a Senior Software engineer working on our Eclipse based CodeWarrior C/C++ IDE development tools for Freescale devices. You will be required to take a role in the development of trace and profile tools for CodeWarrior tools to support development of Linux Kernel and Applications that run on various Freescale devices (Power PC, StarCore DS […]
  • .NET Developer at Sonoma Partner (Chicago, IL 60661) February 8, 2010
    About Sonoma Partners Headquartered in Chicago, IL, Sonoma Partners helps enterprise and mid-market companies build and manage their customer database using Microsoft Dynamics CRM (Customer Relationship Management) software. Founded in 2001, Sonoma Partners has completed more than 200 CRM deployments throughout the United States. Based on the success of our […]
  • Java+HTML developer at Garlik Ltd. (London, United Kingdom) February 8, 2010
    Garlik, the online identity company, is seeking to recruit a Java developer with extensive HTML and CSS experience. Knowledge of PHP, C or RDF/SPARQL would be an advantage but what we are really looking for is flexibility and the ability and desire to learn fast. You will become part of an entrepreneurial team based in Garlik's Richmond-upon-Thames offi […]
  • Developer at youDevise, Ltd. (London, United Kingdom) February 8, 2010
    The job: Help us develop our on-demand applications for financial markets. What we do: * We develop and operate web-based applications using open-source technology for top-tier brokers, investment managers, and the alternative investment sector. Our current applications include the Trade Idea Monitor and the Hedge Fund Information Provider. * Our application […]