In speaking with a web application developer, Mike, we had a conversation about a couple past products that are now in the process of being redeveloped. Both are applications based on proprietary systems that are getting rewritten using an Open Source LAMP architecture. Neither has a strict set of requirements. What does this mean for a developer and is it a bad thing?
Here is a brief portion of our instant message conversation.
me i think having a process and good requirements trumps technology though. so as long as it accomplishes the goal and isn’t to scary on the back end, your good.
mike yeah, the requirements are what are driving me crazy todaywe’re rewriting [the Web App] (finally), but i’m halfway through the project and i don’t have a defined list of requirements
me that’s part of what messed things up in part last time. a moving target. hopefully if you don’t have good requirements your at least getting constant feedback.
mike sure. we’re meeting with these guys once a week
When you are rewriting an application you essential have a blueprint or prototype to work from, which is the existing application. The important thing is to not repeat the same mistakes, “it’s a bit of a mess to begin with. you remember how that project started off back in the day…”
One way of doing this is to make sure the stakeholders are involved and have weekly meetings with them to insure that the process is going smoothly. This is essentially is the evolutionary or agile programming methodology. It enables a more creative process and a constant feedback loop from the client.
This can be a good thing if the client understands that their feedback and management of the project is essential to its success. For the developer they also need to solicit feedback and be forthcoming about any issues that occurred in the previous week and set clear goals for the following week. Also scope creep, extra features not contracted, can be a major issue, so it is better to either have such a project on a time and materials basis or provide some other agreement setting a strict scope or project budget. For an application being redeveloped, this creative process can exceed where the previous plan did not.