30 years ago I had my first introduction to fire ants in Dallas, Texas. I decided to get on my shorts and sandals, get a good book and head down to the local park to spend a few hours reading. Within minutes of sitting down I felt as if I was attacked by an invisible army of porcupines! The piercing pain and swelling did not subside for days. Who knew such little creatures could cause so much grief. I was later to learn that these insects were so dreaded that they have been the object of a nation-wide, 60-year strategic extermination effort. Let me give you some brief background before I tell you what ants have to do with software development.
The first fire ant arrived from South America after World War II. Since that time, their astonishing array of survival strategies have fueled their proliferation from their initial beachhead in Miami to occupy 300 million acres over thirteen states (including Texas, obviously). I personally experienced why they want to exterminate these because the fire ants, with their venomous sting, tend to bite in teams. Though the venom from a single fire ant is milder than a bee sting, the stings tend to come in dozens. The ants, believe it or not, are actually self-organized enough to send a signal to all sting at once! They are swift to respond and can swarm any living creature within minutes. They have been known to kill calves, fawns, and even human toddlers. They have threatened pelican colonies and in some areas have diminished the population of nesting birds, reptiles, mammals, and other ants by as much as 90 percent! In the state of Texas alone they spend over $400 million a year to battle these enemies. Can you imagine what has been spent by all 13 states over a period of 60 years?
Suffice it to say, their model of existence allows them to thrive. They are responsive to the environment, self-organized, maximize team effort, and are highly effective at what they do…survive and grow! Now, to answer the question, “what do ants have to do with software development?” and the corollary question, “so what?”.
I recently sat with a seasoned consultant that worked with one of the top consulting firms in the world as a project manager and was impressed with his perspective on developing business software. While at first his approach seemed to be a bit unrealistic, it definitely resonated with me and forced me to grapple with my own views of how a software development project SHOULD unfold. For decades software development projects were managed with a rigid model where a detailed specification was drawn-up, a budget was approved, and developers went about creating what the project specification document dictated. The emphasis many times was on the completion of the project (within budget, of course) rather than the actual usefulness of the software to the end-user.
So what of this new approach? In the last decade there has been a shift from traditional methods to a more “fire ant” like approach to software development. With this vein of thinking, emphasis is on a cooperative approach among business people and developers. Projects are built around self-organized, motivated individuals equipped with technical excellence. It is progressive, adaptive and dynamic and welcomes changing requirements with the end in mind that a useful software would be rapidly delivered to customers. Though I am sure there may be pitfalls to such an approach, traditionalists like myself have experienced first-hand the frustrations of failed development efforts and have longed for a better way. Like fire ants, this model seems to leverage individual talent while placing a high value on team effort and results. The litmus test has to be if the model truly works and useful software is getting in the hands of the customer.
I have had the privilege lately of experiencing this refreshing approach at Alpine Technology Corporation. The project manager has a team of talented developers all over the world. They each bring a different flavor to the development effort but in the end software is being created that is useful. Visual RAMS-Pro (the core software of Alpine) continues to be created with the coordination of hundreds of companies within the waste industry. It was not created and spec’d out in the minds of one or two individuals, but took a village of participants, incrementally over a period of 30 years. The crowning stroke of RAMS-Pro is its ability to be flexible. The customer actually has the ability to augment the code to fit their unique business needs not just to choose from a list of “customizable” features. Talk about cooperation!
Though I have painful memories of 30 years ago when I was introduced to that first fire ant bite, I have grown to appreciate the resolute, coordinated and effective efforts of those menacing insects. I also now have greater appreciation for the approach to software development that best ensures the customer is going to get what they paid for…a workable application! Thank you Alpine.