Tuesday, September 15, 2009

Why Agile Methods Are Better (And More Successful) Than Traditional Software Development Methods

Much has been said on how agile development processes has brought a lot of success and ease with which teams perform their software developments. A lot of companies have adopted agile methodologies in their organizations, ensuring that each member of their software development team adhere to the teachings of agile.

Success stories range from faster delivery of projects, better software applications and a higher return on investment (ROI) for the business. A lot of these stories are all documented and turning up to Google searching "Agile Success Story" would yield a lot of results giving backing this up.

A lot of agile advocates have stated the reasons why agile is way more successful than the traditional development method (particularly waterfall). But I believe all these advocates are missing what actually makes agile tick for the organization.

So what makes it better? What is it in Agile that organizations and people should embrace in their practices to reap its benefits?

The answer is C-O-M-M-U-N-I-C-A-T-I-O-N. Yes, you read it right, COMMUNICATION.

I have yet to read and see an article attributing the tremendous success of Agile directly to COMMUNICATION, with some of them only giving focus on the practices emphasized by Agile.

The missing ingredient in traditional software methodologies is apparently the lack of communication which Agile methods have overturned. In the traditional manner, most of the communication is done during the inception of the software project and after coding and development has been done, where the project is ready for deployment or implementation. Ertswhile in agile, communication between the development team(s) and the business is encouraged and facilitated, thereby ensuring that each process is aligned with the objectives of project. Communication bridges the understanding each person with a stake on the project the questions hounding its success - What, Why, How and When - on time and everytime. Traditional methods answers the first three questions (What, Why and How) initially and the last question is only answered rightfully when the end of endeavour is being realized.

I am unsure how to answer when people would ask if facilitating communication on their traditional software development methods would provide a greater degree of success in their projects since I think communication compliments those methods inherent in agile methodologies, while the same cannot be said to how it is done in traditional methods.

But if people would ask me why I believe agile is successful, I got only one answer.

Thursday, July 23, 2009

If Agile Really Delivers The Goods, Why Ain't Everyone Adapting It?

In the software development industry, a lot has been said about the benefits of transforming the process from the traditional waterfall to any of the agile methods. Better execution of software projects, realistic schedules, happy teams and customers and a whole lot more have been preached about agile. Summing up, it simply emphasizes to be the better (best?) way of developing softwares.

But why is it REALLY not accepted by organizations which employs software development as part of their business?

I'd like to sum up some reasons based on what I have observed for the years I had being involved in software development:

1. Lack of Understanding on How To Implement Agile Methodologies
Perhaps this is by far the biggest obstacle which keeps agile from being embraced. Apparently, in most organizations where Agile is not practiced, it is noticeable that nobody actually knew how to implement it. Sure, agile brings a lot of benefits but the typical software lead or PM who does not know how to bring it to the table will not be able to bring it to the organization.

2. Change is Painful
Most of these organizations have experienced success in the way they have developed software for their business needs, regardless whether they experienced a lot of the problems (time, resources, schedules) with which Agile solves in the first place. To them, changing this time-tested process is quite hard and an ardous process (especially if the old methodologies are deeply embedded in their culture).

3. Environment Does Not Permit Them To Practice Agile
Of course, one team can successfully apply Agile but unless the organizational environment would be molded that would enable agile to thrive, then no amount of benefits that agile brings would be enough.

4. Management
I believe that for Agile to fully prosper and be adapted into an organization, the will should be initiated by the management. In the ideal settings, it is actually the common developer who would be wanting to practice and employ agile but in the real world, developers lack the will of simply saying: "Hey, let's make sure we do this the Agile Way.." because they tend to simply follow what the PMs and Management would assign them to do.

Although growth of agile has been tremendous in the past few years, I'd still believe that it is only adapted in around 10% (or maybe less) of business organizations. Of course innovative and progressive software houses and businesses tends to be the leading proponents of agile, still, the big chunk of organizations are not too tech and process-savvy to realize the potentials of agile in their organizations.

So what other reason could you think why agile is not embraced and adapted all across organizations? I would love to hear your thoughts.

Monday, June 1, 2009

Book Reading - About Scrum

In my quest to further learn the intricate and complex nature of software development, I started reading books on Scrum, particulary:


Both were written by Ken Schwaber. Ken Schwaber is one person highly regarded in the software development industry due to his contributions on the field of Agile and Scrum.

Both book presents good examples on how to apply Scrum on software development projects. Different cases are also being tackled and most of the conventions on the book will enable those (like me) who are starting on exploring different agile methods in software development get up and running using this methodology. Although emphasis of the book is for software dev managers and leads, I think even the junior programmer wanting to embrace and know more about scrum would learn a thing or two in the aforementioned books.

The benefits presented by the book in employing Scrum in software development will surely entice management and organizations in employing the said methods on how companies and businesses could run and operate software development projects in their Information Technology structure. Although some of the process may be too trivial for those office(s) where traditional methods have been employed in the past, the book gives a refreshing new look at how a new methodology which provides better results can be absorbed and embraced by the company.

I stil got a lot of other books which I am planning to read which specifically tackles Agile and Scrum. Most of these books I have found on Jurgen's blog post on his blog www.noop.nl:


My learning does not stop here. Reading is just one part, applying and doing is another (but that is for another post).

Wednesday, April 29, 2009

Questions from a Developer to IT Project Managers

I have recently sent out emails to project managers whose blogs I follow closely. There's a lot of blogs on software development, but most of them are focusing on codes, methodologies, processes, practices, and technologies. I was trying to find out some understanding on complex relationshionships that IT project managers and software developers develop on the course of project(s) that they both work on but was unable to find some good answers. Rarely does a software developer asks their PMs so I am posting it here. With the nagging questions in my head, I ventured out on sending emails to PMs (which I hope they won't find obtrusive). I hope that I do get some replies.

Below are the questions which I sent out.

Question List
Q1. How do you select/choose the best possible candidate of your technical team? Do you have some sort of criteria / selection process which you may want to share?

Q2. How do you ensure that each person on your project team is highly motivated?

Q3. How do you cope when one (or some) of your project(s) is/are getting way behind schedules and upper management is pinching you on the matter?

Q4. How do you decide on the methodology with which to apply on your project?

Q5. Best advice (or something learned) ever from a person on your project team?

For PMs, feel free to comment out, or send your answers to angelo dot anolin at gmail dot com.
Thank you.

Thursday, April 9, 2009

Datawindow.NET Crosstab Garbage Display

I came across a problem where my crosstab datawindow reports when rendered in my web application displays garbage:



The workaround for this is to limit the number of records that your datawindow would display by enabling paging of your crosstab datawindow. This can be done through code or the markup of your aspx page. (Preferably, I limit the number of records displayed per retrieval to 30).

Code Behind
WebDW.RowsPerPage = 30;
WebDW.PageNavigationBarSettings.Visible = True;

Running the application, the web datawindow now displays correctly:



Sybase on the other hand notified me that apparently, Datawindow has limitations on crosstabs where it could only manage to display a maximum of 300 columns on each report (no limit on number of rows), else, the data when rendered would show garbage. As of current, I am still liasing with their technical support on this matter since I have a crosstab datawindow which only displays a few columns albeit a lot of rows but the rendered web datawindow still does not display properly.

Migration of Powerbuilder Applications to .NET - Part 5

This is part 5 of a series of posts concerning my experiences with conversion (and migration) of Powerbuilder applications to Microsoft .NET (specifically ASP.Net). Following gives the link to previous articles:

Part 1
Part 2
Part 3
Part 4

Take note that these posts relates mostly on the experiences I had during the migration process. Some technical details may be contained but I would only limit the same to those which I can disclose relative to the project.

In this post, I am going to focus on the datawindow objects that were utilized in the application.

The application I have converted (and to some extent, still working on) contains more than 200 datawindow objects - 243 to be exact. Some people I worked with previously on similar projects got lazy and what they did was to simply re-use the existing Powerbuilder Library (PBLs), and simply stripped off the library list all those non-datawindow objects. In my case, what I did was to only export, import and regenerate the datawindow objects which I know would be used by a specific page of my application.

Moving the datawindow one by one, although tedious ensures the following:

Migrate Only the Datawindows Which are Going to be Used
I have seen a lot of PB projects and most of them contains unused datawindow objects. Part of the migration process I believe is to "clean up" the application as well and this can only be done by ensuring that those items which are going to be used in the new application is included and those not being used be eliminated.Another reason for this is that if you are working on a single project with other developers and your colleagues migrated all the datawindow objects including the ones which you know are exclusively to your assigned task, problem would arise especially if you have made some changes in the datawindow objects. Unless you specify the library to use specifically, the datawindow used is always the first instance found on the libraries and the one which you have modified may not be the first instance found.Moreover, thinking on the future of your application, the support would have a hard time figuring out the datawindow object you used for that particular screen especially if there are duplicate datawindow objects in the application's different libraries.

Ensure that the Old Datawindow Get New Functionality Offered by DW.Net
Migration effort would surely point that the datawindow being used would be of lower version than Datawindow.NET. To verify this, compare the source files of your old datawindow to the source files of the datawindow when you have imported it to DW.Net (Ensure that you make some minimal changes to ensure that DW.Net updates your datawindow objects). You would notice that a lot of datawindow functionality has been embedded by the Datawindow.NET.

Easier Maintenance
Since you are well aware that the library you are working on contains only those datawindow objects that the application is using, there would be no need second guessing some datawindow object entries in a library. I have encountered libraries containing a lot of unused datawindow objects and managing them is quite a pain.

Some may have different methods on how the incorporated their 'old' datawindow objects to their new applications and it would be great to hear them here. I shared here what I have used and have grown particularly confident because this method has worked for me quite well.

Tuesday, February 17, 2009

My Book Slide (In Response to Jurgen's Post)

Jurgen on his latest post titled My Book Slide asked his beloved readers what books they are reading. Being a fan of his blog, I ventured into enlisting my book slide in response to some queries he posted there.

By the way, I always had interest in books but have found renewed passion in reading after being influenced by Jurgen's book Top 100 lists. He actually recommended to me some books to read (which I already did) and still look forward to the kind of books that he reads and shares to his readers. Believe me, the books that he read can have PROFOUND positive impact in your way of thinking and doing things.

1. How many books do you read (on average)?
I usually find time to read around 2 books in a month. Although I want to read more, some of my reading time is spent reading through blogs which I subscribe and current news from my home country, technical matters and other areas of interest (sports, carbon capture and storage, environment, facts, etc.)

2. Which books did you read lately?
Recently, I've read First Break All The Rules (Marcus Buckingham & Curt Coffman) and Everyday Greatness (David Hatch)

3. Why did you choose to read those books?
One was recommended, by a manager so that I would gain a more understanding of some manager's radical ways of management and at the same time, know how I as an individual stand from the perspective of a manager. The other caught my attention one day when I was on a bookstore. It really caught my eye that I felt the urge to buy and read it.

4. What is your (brief) opinion of those books?
First Break All The Rules - although intended for managers, I suggest that even those people not yet on the management level take a peek. This gives insight on how great managers select, harness and motivate people in their organization.

Everyday Greatness - I loved reading those short essays and anecdotes of people who may seem just as ordinary as you and I but made profound impact in their society by discovering the goodness of themselves.

5. What book are you reading now?
Egonomics (David Marcum & Steven Smith)

6. What is your opinion of that book so far?
So far so good. Clear insights and cases makes for interesting reading and how one can apply the practices preached in the book. First impressions is that it is quite remarkable - given the emphasis on one's personal ego. Especially how it can be used constructively and when overlooked can be very destructive.

7. Which books are you planning to read?
Next book I am going to read is The Speed of Trust by Stephen M.R. Covey

8. Why do you intend to read those books?
I have always been fascinated by the insights provided by both father and son (Coveys) about life, relationships, work and priorities. They always gives you a clearer picture of what personal characteristics you may be overlooking that could help you profoundly become a better person.

On my planned vacation next month, I am planning to get as much book as I can to read and experience. Perhaps you may share some books which you find noteworthy to share.