Angel “Java” Lopez on Blog

February 4, 2009

Introducing the PairOn

Filed under: Agile Software Devevelopment — ajlopez @ 8:12 am

Thanks to @MartinSalias, I found this chair, for every XP fan:

http://www.cenqua.com/pairon/

So you do XP huh?
Introducing the PairOn
sit tight for eXteme XP
Welcome to Extreme XP

Cenqua have partnered with Herman Miller, makers of the legendary Aeron, to produce the ultimate must-have for Extreme XPers: The PairOn.

Key Features:
  • Fully unit-tested in our ego-free ergonomics lab
  • Essential office furniture for any eXtreme XP Pair (XXPP)
  • Fully adjustable via individual or pair control
  • can be levered to standup-meeting height
  • 40-hour-week alarm buzzer built in
  • Available in a range of attractive colours
Update: Order Now to avoid eXtreme disappointment*

The deluge of orders we’ve had for the PairOn since it’s launch this morning has been staggering. So much corporate money, so easily well spent! Unfortunately we’ve sold out of our initial batch of 5000 to ThoughtWorks. But fear not! We’ve doubled our manufacturing capacity and hope to fill all orders placed in quick time.

*Orders taken only on April 1.

I like the 40-hour-week alarm… ;-)

Angel “Java” Lopez
http://www.ajlopez.com/en
http://twitter.com/ajlopez

November 25, 2008

Agile Java Development with Spring, Hibernate and Eclipse

Filed under: Agile Software Devevelopment, Java — ajlopez @ 9:04 am

I’m reading the book Agile Java Development with Spring, Hibernate and Eclipse, by Anil Hemrajani. About the author:

Anil Hemrajani has been working with Java Technology since late 1995 as a developer, entrepreneur, author, and trainer. He is the founder of Isavix Corporation, a successful IT service company (now Inscope Solutions), and isavix.net (now DeveloperHub.com), an award-winning online developer community that grew to more than 100,000 registered members. He has 20 years of experience in the information technology community working with several Fortune 100 companies and also smaller organizations. He has published numerous articles in well-known trade journals, presented at conferences and seminars around the world, and received the “Outstanding Contribution to the Growth of the Java Community” award from Sun Microsystems, the “Best Java Client” award at JavaOne for BackOnline, a Java-based online backup client/server product, and was nominated for a Computerworld-Smithsonian award for a free online file storage service website. His more recent project is the visualpatterns.com website.

It’s an impressive book, covering logging, remote debugging, agile practices, JMX, JUnit, Ant, POJOs programming, JSP tag libraries, and more. But now, I’m interested in commenting some paragraphs from the preface. Hemrajani wrote:

I began working with Java technology in late 1995, shortly before the Java Development Kit (JDK) 1.0 was formally released. Prior to that, I was programming in C and C++ for many years. I was truly excited about the features that Java offered, such as cross-platform portability, simpler syntax (simpler than C++, for example), objectoriented, secure, rich API, and more.

I have a similar career. At some point at 1995, I learnt the Java language and part of the library, becoming a fan of the language. It was a relief of C++ programming (plagued with new vs delete issues), and Visual Basic (no inheritance, no real objects). But I must admit the GUI interface was based on an ugly AWT implementation .

Over my 20-year career, I have learned a few things. Among these, my favorite is simplicity; anytime I see complexity, I begin doubting whether the solution is correct. This is how I had begun to feel about Java right around 2000, when the Java 2 Enterprise Edition (J2EE) started becoming mainstream. Note that from this point on, I will refer to J2EE as JEE because the “2″ was recently dropped from the name by Sun Microsystems.

I agree. When Sun launched J2EE, it was a mess. For years, I thought they were right, but I didn’t understand the reasons for the underlying complexity of Enterprise Java Beans. Until I read Rod Johnson books on Java Enterprise development: then, I confirmed the crazy thing called EJBs.

My growing lack of interest in Java was a result of what I saw as unnecessary complexity in JEE introduced by layers of abstraction. I began to believe that Sun Microsystems (inventor of Java) was focusing Java and JEE on solving the most complex enterprise applications, but somewhat ignoring the relatively less complex, small- to medium-sized applications. Furthermore, I saw the hype take over people’s common sense because I ran across projects in which Enterprise JavaBeans (EJB) were used for nondistributed processing, such as local logging. I felt strongly enough about this subject to write a short article for JavaWorld.com in 2000 (http://www.javaworld.com/javaworld/jw-10-2000/jw-1006-soapbox.html) titled, “Do You Really Need Enterprise JavaBeans?” (About five years later, we saw EJB 3.0 specifications being rewritten to become more simplified, to ease the development.) This brings us to this book and the reason I wrote it.

EJBs are the works of devil. POJOs programming, Hibernate ORMs, and Spring framework, are examples of good design created by the Java community. Sun people saw the light, and adopted many ideas in the EJB 3.0 specification, but I think “too few, too late”. EJBs programming was a nightmare, that deserve to be erased from humankind memory.

At the beginning of each chapter, there is an illustration, describing a fictional story throughout the book. I can’t resist to include one from chapter 2 (more at visualpatterns.com):

More info about the book, at

http://www.visualpatterns.com/agilejava.php

That page has the TOC, and forewords by Scott W. Ambler, and Rod Johnson.

Another book aligned to these ideas:

Better, Faster, Lighter Java O’Reilly Media

Angel “Java” Lopez
http://www.ajlopez.com/en
http://twitter.com/ajlopez

August 15, 2008

Agiles 2008 in Argentina

Filed under: Agile Software Devevelopment, Software Development — ajlopez @ 10:37 am

A group of people and companies, agile practicioners and enthusiasts, are organizing (in agile way, what else?) the forthcoming:

First Latin-American Conference on Agile Development Methodologies

 

Among the international experts that have already confirmed their participation in Ágiles 2008 are Mary and Tom Poppendieck, Matt Gelbwaks and Tobias Mayer.

Tobias Mayer is an agile coach, that teach agile methodologies to most of us, here, in Buenos Aires and in other cities of Argentina. He is a kindly man, with great abilities to inspire and engage people in agile way. He could be considered the “godfather” of agile movement in this country… :-)

The organizers are calling for papers, ideas, proposals for activities:

Attending a conference without saying a word is too boring! We welcome your ideas to actively take part in Ágiles 2008. We have three kinds of activities in mind: Talks (the usual slideshow, people seated, Q & A at the end), Interactive Sessions (people standing, moving around, talking, doing) and Panels (subject open to discussion, format to be defined). But fear not: we are eager to receive your craziest idea! Just write us and we will try to find its place in the world.

Slots are 45 minutes long, but you may take more than one for a single activity.

Deadline is September 1st. You may leave us your proposal filling the form in http://www.agiles2008.org/en/call4papers.php

Ágiles 2008 Organization Team

For years, agile methodologies were gaining acceptance in my country, Argentina, and in Latin America. And now is the time to show to the rest of the industry what is all that agile movement.

Just do it (with a backlog… ;-)

Angel “Java” Lopez
http://www.ajlopez.com/en

January 18, 2008

QCon London 2008

I’ve received an email, from Floyd Marinescu, announcing this “mega” conference. They’ll cover all-about-software-development: agile, DSLs, SOA, SaaS, Cloud computing (I guess grid computing related), .NET, Java, Ruby, Rich Client, Scrum, XP, F#, REST…. It will be the DisneyWorld of all software developers! ;-)

Here’s the announce:

You are receiving this email because you opted-in to receive notifications related to QCon London, from the QCon London website. QCon London is taking place in just 8 weeks, March 12-14 and the conference editorial is nearing final. Since our last update in December, a number of important changes have been made to the conference:

  • Google, Yahoo!, Amazon, Salesforce.com now presenting in the Cloud Computing Track
  • MySpace.com, eBay, Magus confirmed in the Architectures you’ve always wondered about Track
  • XP founder Kent Beck, and Analysis Patterns & Refactoring Author Martin Fowler keynoting
  • Banking Architectures Track adds sessions from Merrill, Betfair, Credit Suisse
  • GoF Patterns Author & Eclipse Architect Erich Gamma presenting
  • and much more…

QCon is an enterprise software development conference for team leads, architects, and project managers covering Architecture & Design, Java, .NET, Ruby, SOA, Agile methodologies and other timely topics such as DSLs, cloud computing, and bank/finance architectures. Last year’s QCon London had almost 500 registrants, and was covered very heavily in blog space see QCon London blogger coverage & key take aways).  

The track themes for QCon London & track hosts are as follows:
Architectures You’ve Always Wondered About -  Hosted by Redmonk’s James Governor
The last 2 QCon’s featured: Amazon, Linked-In, Yahoo!, eBay, Second Life, and Orbitz architecture case studies
Domain Specific Languages in Practice – Hosted by ThoughtWorks’ Neal Ford
Takes DSLs to the next level by practical applications and tools that are useful today.
Effective Design
Translate a set of abstract ideas into working and functional software in an effective way.
Architectures in Agile – Hosted by POSA author Kevlin Henney
How to integrate the trade-offs related to aspects such as performance, security, scalability and modifiability into an agile process
Banking: Complex high volume/low latency architectures  – Hosted by John Davies & Alexis Richardson
The latest innovations as well as time-proven best practices that architects of banking & finance systems need to know.
The Cloud as the New Middleware Platform – Hosted by EAI Patterns Author Gregor Hohpe
Is the internet becoming the computer?
Implementing Scrum and XP- Hosted by Patterns Almanac author Linda Rising
Leading practitioners will present and explain how Scrum and XP are implemented in the most effective way.
Java Emerging Technologies – Hosted by Java Concurrency Author/spec lead Brian Goetz
The previous QCon covered: JRuby, Grails, Server-side OSGi, DSL development, Batch Processing
.NET in the Enterprise – Hosted by Matt Deacon
.NET has brought Microsoft’s platforms into many business-critical applications, back-office, and server-side solutions.
Programming Languages of Tomorrow
Erlang, F#,, Intentional and Scala. How can we best leverage them in our next software project?
SOA, REST and the Web – Hosted by InfoQ’s Lead SOA Editor Stefan Tilkov
REST & SOA, Internet Scale Integration, REST & WS Myths
Browser & Emerging Rich Client Technologies – Hosted by InfoQ lead RIA/Java editor Scott Delap
Silverlight vs. JavaFX/Consumer JRE vs. Adobe Flex/AIR vs. Google’s Ajax RIA stack
The Rise of Ruby
Learn how to best take advantage of what Ruby has to offer
The first two QCon were well received, below are some comments from bloggers who attended our most recent QCon:

  • David Forbes – Exhilirated after gorging on brain candy this week, I have a moment to reflect on what just happened. QCon was the right place to be. I can’t imagine where else I would have rather been. If I had the week to do again, I would probably march right down to the Westin…again.
  • Denis Bregeon – I was very happy with it. Most of the talks tickled my imagination and that is the primary thing I was looking for. Many others gave me details on more technical subjects that I wanted to learn about.
  • Srini Penchikala – I was at the QCon conference in San Francisco last week. It was a great experience to be there. I learned a lot not only from the presentation speakers and panelists but also from the attendees who came from different countries (England, Syria, Australia to name a few) and companies.
  • Alex Olaru – Great conference: excellent speakers, very relevant topics, just enough product pushing without it becoming annoying. All in all a conference I would highly recommend to any architect or project manager.
  • Ola Bini – Last week I attended QCon San Francisco, a conference organized by InfoQ and Trifork (the company behind JAOO). It must admit that I was very positively surprised. I had expected it to be good, but I was blown away by the quality of most presentations.
  • Martin van Vliet – All in all, this was a good conference and more than enough reason to look forward to the next QCon, next year in London.
  • Pete Lacey – A wonderful conference made better by being able to meet many people face to face for the first time…

See also past QCon/JAOO talks available online on InfoQ:

Registration for the 3 day conference is 1180£ until Feb 22nd, and 1220£ after March 11th. The conference will be held at the Queen Elizabeth II Center, like last year.  Join us at QCon London!

Angel “Java” Lopez
http://www.ajlopez.com/en

December 27, 2007

Lessons learnt from an agile year

Filed under: Agile Software Devevelopment, Software Development — ajlopez @ 8:44 am

Recently, my team shipped a product, working at Southworks, after hard work. There were interesting and intense days, and now, I want to write down some lessons learnt from that project, and from others works, during 2007 (and part of 2006).

Architecture decisions must be taken by only one person. This is a lesson that not all my coworkers share, but for me, it’s clear that too many hands on that decisions, could produce a suboptimal result. The member that decides on architecture must hear the other members opinions, actively asking them about problems to resolve, but the final cut on architecture must be made by only one person. I’m skeptic on emergent design, at least on some kind of projects that involves new challenges.

You must be aware of the status of the whole project. As a team member, you must not forget the full picture. It’s your responsability (and the responsability of each member) to keep an updated vision of the advance (or lack of advance) of each committed final deliverable, not only yours, but the other members too.

Don’t hesitate to rise a red flag. At any moment, if you feel that something is out of track, or if you see a potential problem, you must rise hands, and communicate clearly and firmly that problem to the rest of the team. If they were a problem, don’t forget call Houston.

Pursue visibility of what you are doing, and demand the same from the rest of the team.

Practice your communication skills. Give presentations about the advance of the project, lessons learnt, to your peers. This activity increase the team understanding of the project. If you understand something, you can explain it. This is a test of your grasp of the project ideas.

Write down vision and mission for the project from the very beginning. You can have an internal and external mission and vision, but your team must write down those items, and must have a clear understanding of them.

Minimize risk. You must resolve the riskiest part of the project, or be early aware of where risks could rise, and manage to minimize its dangereous influence. Write down proof of concept apps, or take time to spike on ways of doing things, but don’t hesitate to assign resources on those risk management activities.

Every deliverable must be important to you. If you are a coder, don’t forget documentation. If you are a writer, don’t miss the graphic appearance. The process should produce a whole product. You and your team are in charge of the full final result.

Don’t live with broken window. It’s a concept I learnt from “The pragmatic programmer” book. It means that you must not leave open little holes, incomplete work, hand-wired implementation. You must proud of the final product. Any quick hack must be avoided, as it usually spread its influence, as a rotten apple. More on the concept at:

Don’t live with broken window, a conversation with Andy Hunt and Dave Thomas

Get the right people in the team. A team must be composed of different personalities, with complementary skills. If they all were coders, nothing of sustained value could be produced.

Write down a glossary. This is a task that is frequently forgotten. If you don’t have a glossary, explaining the main concepts involved in the project, your team won’t grasp the key ideas and problems that compose the solution to build. The lack of glossary could lead to miscommunication and confusion, inside the team, and in its relation to customer and stakeholders. 

Draw a conceptual map of the whole project, and discuss it with the team. Use an initial meeting to talk about the full model, vision of the project.

Write down a clear list of the final deliverables to produce. Specify a clear contract with the customer, setting his/her acceptance criteria of those deliverables.

Talk the customer language. This could be related to the glossary item. You must understand and use the customer language. You must frequently communicate with her/him, and take account of his/her necessities and problems to resolve.

I didn’t follow all these recommendation all the time, and then, I suffered the consequences of not adhere to this list.

I can think of a few more lessons learnt, but the above list is good enough for now.

Angel “Java” Lopez
http://www.ajlopez.com/en

August 26, 2006

Agile Methodogies

Filed under: Agile Software Devevelopment — ajlopez @ 9:07 am

The past 22 June, Martin Salías gave an excellent conference on agile methodologies, at the University of El Salvador, Buenos Aires, organized here by the Club de Programadores. I have taken some notes, that I will publish and comment when I get some time. Today I want to write down a list of agile methodologies and its connections, according to Martin´s lecture:

Crystal

of Alistair Cockburn

http://alistair.cockburn.us

Cockburn is one of the more philosophical founders of the agile stuff. Crystal aims at small groups.

Feature Driven Development 

www.featuredrivendevelopment.com 

It aims to think the things on the basis of characteristic, it decompose a problem in features.

Adaptive Software Development 

www.adaptivesd.com 

It puts the emphasis in the short iteration.

Scrum

www.controlchaos.com

It is a methodology of control of projects that can accomodate any of the others ….. A people group said: “this is fantastic… agile is terrific…. but as it costs to put this in the head of the managers”. They generate products to calm that anxiety.

Agile Modeling 

www.agilemodeling.com 

Invention of Scott Ambler, he is a guy that models much, he dominates several subjects, and he invented this method: “I recognize that there is value in the UML layout, but all that becomes too heavy, we use it, but using paper and pencil, we remove the formal question”. Let us return to which really the diagram must contribute.   

Extreme Programming

www.ExtremeProgramming.com 

Most well-known, Beck´s method.

Angel “Java” Lopez

http://www.ajlopez.com/

Blog at WordPress.com.