YOUR FEEDBACK
AJAX: XMLHttpRequest Vs. iFrames
Kenneth wrote: You forgot to mention a disadvantage of xmlHttpRequest that i...
AJAXWorld RIA Conference
$300 Savings Expire July 25
Register Today and SAVE!


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
POWERBUILDER LINKS YOU MUST CLICK ON


The Sixteen Stages in the Evolutionary Cycle of a Software Project
Software Takes Stamina

Digg This!

Page 2 of 2   « previous page

  • Chasing and groking the latest software methodology/technology (e.g., JPA, PMP, Spring JMS, Ruby, AJAX, etc.) making them more marketable (and better positioned to pay their bills!)
  • Creating software products and libraries (open source included) that can be reused (the DRY principle) by other technologists
  • Building and deploying software projects that are successfully used by their business customers.
As we mature, we tend to stake more and more effort in this third item for two main reasons: 1) because that's what we're paid to do and 2) we have a duty to our business customers to "see it through." The evo-cycle and the lack of stamina to fight it is what typically work against this.

The Evo-cycle
The evolutionary cycle of a software project generally involves discrete stages. And it's important to note that these stages can occur multiple times (and not just because of an iterative approach) and brutally transition without any downtime (often times the biggest test of our personal and professional stamina). The Evo-cycle transcends methodology and iterations, but can be contained within iterations. What is depicted here is a general ordering; specific ordering can vary/overlap.
1)  Planning
An implied stage of all software approaches, planning involves considerations of money, resources, prioritizations, and scheduling. Failure here is not uncommon, although we can't directly attribute that to a lack of stamina (but other words come to mind).

2)  Starting Over
The evo-cycle usually involves starting over at some point. Either it's a redo of an already attempted redesign or a redo of a chosen technology or the prime contractor was let go because the customer was uncomfortable with the results. Doing things over again takes a toll on people.

3)  Requirements
This is a traditional stage that involves sifting though customer needs and wishes, often times resulting in an ever apparent need for Business Process Management (BPM) to affect a more cost-efficient customer.

4)  Design
In another traditional stage, design is focused on the scoped items for the planned iteration/release. This involves professional collaboration, white boarding (in some shops if you stand still long enough they'll attach a white board to you), and formal artifact creation in the chosen tool. Typically during design resources are fresh, however in subsequent iterations the quality of the design may degrade because of a failure in oversight or general overconfidence.

5)  Implementation
We all know this one, the traditional "rubber meets the road" stage. This is where software developers (including specialized consultants) focus on the intense development of scoped (and hopefully already designed at a high level) requirements. This stage takes a tremendous amount of focus and, at times, overtime hours (sometimes paid, sometimes not). The amount of effort and teamwork to reach the end of this stage is usually worth a celebratory lunch, formal recognition, or at least a "pat on the back." Reality often means no recognition because in the grand scheme of things, the hard work is yet to come. (How can you say still to come? Didn't I just stress out getting these crazy requirements implemented?)

6)  In-fighting
This happens with all human interaction,. In stressful situations in-fighting happens in varying degrees (depending on the team's professionalism). Sometimes it's employees versus consultants. Sometimes it's developers against management. Sometimes it's consultants versus consultants. The point is that when this happens and is not managed or arbitrated, it weakens the team and the stamina of those involved.

7)  System Testing
Metaphorically speaking, this traditional stage is a battle (and requires that kind of mindset). The reality is an unanticipated amount of system defects that must be resolved. The testing team works extremely hard to exercise all system paths. Just coming off the tiring implementation stage, the development team frantically tries to fix problem areas (especially their own). Problem areas range from easy to so complex that they have to be completely refactored. Probing questions of system stability and performance begin to surface. Developers start growing weary.

8)  Stability
Here it is. The first big impact of the evo-cycle. All the professionals involved have exerted tremendous efforts to get to this point. But the entire project is at risk. The system isn't stable and grows unusable. How can so much effort still result in an at-risk project? People feel they need a vacation (and it's not the best time for one). Many times this stage is quickly resolved internally by using system monitoring tools (e.g., JProbe detecting a memory leak or dangerous non-thread safe code). Other times outside consultants are brought in to assist. Depending on the visibility of the project, the stress this brings is unmeasurable. I was even on a project where legacy stability problems were documented in the Washington Post. That's stress. Got stamina?

9)  Politics
Politics plays a nasty role, another stage unique to the evo-cycle. It's inevitable though. Customers reorganize because of a new CIO. Developers blame each other. Consultants cover their tail and try to get a bigger piece of the pie. More in-fighting ensues. People lose their commitment to the project.

10)  Performance
To get to this stage, a lot's gone on. The system's been built, refactored, tested, and stabilized. Multiple times. However, now it's not performant (does it meet the performance requirements of the customer) with a customer's message/usage load. It's too slow. People start blaming everything. Hardware. Implementation. Architecture. Java. You name it. To address the performance problems of a system requires a specialized toolset and mindset. By this time, many original consultants have jumped to the next great technology in preparation for their next gig. Employees are tired of working unpaid overtime. The team isn't the same as when the evo-cycle started. Software professionals must rise to the challenge to scale the system. Some of my proudest moments are when a system is stabilized and performant. It's even more satisfying when there are still folks (like me) on the team who've made it this far without dropping off.

11)  Out-fighting
Another item that affects our mental state is when other organizations "pick fights" with a weary group of software craftsmen. This can take the form of an internal standards body, external consulting organization, or audit-natured groups. Extreme cases can bog a project down for months on end. As much as it can sap stamina, passage through this stage often increases team camaraderie.

12)  Funding
Funding issues can swirl around a project for its entirety or doom a project that's under-planned. More attrition occurs as consultants leave because of the uncertainty. This is one issue that most developers have no control over, but it occupies their minds.

13)  Natural Attrition
People leave companies, change projects, or just get bored. It happens. Management attempts to plan for this. But sometimes it's management that leaves. This can cause discontinuity. However, I've seen this have positive results when a bad apple leaves or a new person fresh with stamina and ideas comes on board.

14)  Final Installation
By the time a system is deployed, many people have matrixed to other releases or projects. They'll need to be pulled back (if still accessible) to support the final stretch of deployment. If the system goes to deployment quickly after system testing then it brings with it a support team of tired humans.

15)  Reality
Reality is the evo-cycle's last pass at breaking the back of the organization and software professionals. The system is finally in production. The client is starting to use it (and, if the process was intelligent and agile enough, the system has already been completely indoctrinated and acceptance-tested by the customer). Something isn't right though. The benefits aren't quite as expected. The requirements load was understated. Key personnel sour on the new system. Are you kidding me? The team must once again rally to address any and all of these issues.

16)  Warranty
Software is a product. Like all products, it should come with a warranty. In software that warranty is a support team of system operators, system administrators, and software engineers. They must maintain the overall health of the system, triage production issues, and coordinate point release updates to the system for any production defects that have been found. Initially, this stage takes a toll on the folks involved. Pagers are handed out. Critical issues are immediately brought to high-profile stakeholders (sometimes even a U.S. Congressman!).

Summary
Are you exhausted just reading about the evo-cycle? Keeping a heightened awareness of the evo-cycle and knowing its debilitating affect on our collective stamina will better equip a software shop and professional to stay in the game mentally and "see it through." To do software the right way is very hard and complex, especially in large enterprise endeavors. Besides the well-known items such as resources, experience, professionalism, and expertise, both personal and collective stamina plays a vital role in software success. It's my hope that raising awareness of the software evo-cycle can help us all succeed in our respective engagements. Expect these stages, mentally prepare for them, and do all that you can to sustain your own stamina.


Page 2 of 2   « previous page

About Gregory Bohmer
Gregory Bohmer is a seasoned architect/implementor of JEE/JSE and open source initiatives on a wide range of enterprise-level applications. Clients include various branches of the U.S. Federal Government. He is currently the president and principal architect at Tactical Trust, Inc.

PBDJ LATEST STORIES . . .
Adobe's Kevin Lynch and Microsoft's Scott Guthrie to Keynote AJAX World RIA Conference & Expo
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe launched AIR 1.0 in February '08 and Microsoft launched Silverlight (September '07). At the 6th International AJAXWorld RIA Conference & Expo in October SYS-CON Events is delighted to be
PowerBuilder and EAServer: Uniting the .NET and J2EE Communities
In PowerBuilder 11.2, .NET meets J2EE head-on with the capability to deploy .NET Windows Forms and Web Forms applications (as well as assemblies and Web Services) that access Enterprise JavaBeans (EJBs) in Sybase's own EAServer. As you'll see over the course of this article, integratin
HarPB Tool Review
HarPB is a specialized utility for checking PowerBuilder source objects in and out of AllFusion Harvest. It handles the special requirements of checking objects out to PowerBuilder Libraries (PBLs) and checking objects in from PBLs. These operations are non-standard to most source cont
PowerBuilder Editorial: The State of the State
Back in 2002, Sybase announced their four-phase approach toward adding .NET support to PowerBuilder. Phase 1 was the implementation of web services in PB9 and Phase 2 was the release of DataWindow.NET, which was packaged with PB 10. Phases 3 and 4 were the more significant phases. In P
PowerBuilder History - When Did Sybase Develop PB and How Did It Evolve?
I have been asked many times by various clients, students, and the IT curious about PowerBuilder: When did Sybase develop the product and how did it evolve? I keep telling this story and answering e-mails on the subject. I am now to the point where I have decided that I should have PBD
PowerBuilder 11's .NET Interoperability
PowerBuilder 11 deploys entire applications as .NET Windows Form or Web Form applications and deploys individual components as .NET Assemblies and as .NET Web Services. Version 11 consumes resources of the default .NET framework as well as resources of custom developer-defined .NET res
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE
BREAKING POWERBUILDER / SYBASE NEWS
Sybase Reports Record Second Quarter Results, Driven by 15% Revenue Growth
Sybase, Inc. (NYSE:SY), the largest enterprise software and services company exclusively