Programming made agile
Developers have many tools to choose from. Business requirements should guide their choice3/6/2007 9:56:00 AM By: Sarah Lysecki
Choosing how to develop an application is almost as much of a personal preference as the type of music you listen to. One programmer might prefer simpler, cleaner methods of writing code such as Python or Ruby while another might prefer more complex, in-depth ones such as Java or C#. Whatever approach is taken, most developers or vendors agree on one thing - meeting the needs of the business is paramount to everything, including the technology itself. Then again, there are nuances or limitations in each language or development method that can make one better-suited to creating certain apps than another. But you can't strictly do an apples-to-apples comparison of languages in terms of their suitability for a particular application. There are other factors involved, such as what type of infrastructure a business already has in place and the level of education of a business's employees. Here's a look at two development models.The agile software development method has become popular recently due to, in large part, to its emphasis on putting the customer at the centre of the development team as opposed to the software itself. The Agile Software Development Manifesto, which was published by a group of software consultants and practitioners in 2001, emphasizes four core values - individuals and interactions over processes and tools; working software over comprehensive documentation; customer collaboration over contract negotiation; and responding to change over following a plan.
A Sequential approach
The waterfall methodology, on the other hand, is a sequential software development model in which the development phases - requirements analysis, design, implementation, testing, integration and maintenance - are seen steadily flowing downwards. W.W. Royce, the creator of the waterfall model, however, referred to the development method as an iterative approach to software development, which is actually closer to the agile or extreme programming methods. But the waterfall method came to be associated with his sequentially ordered model. Unlike more dynamic methodologies such as agile, the waterfall method is more rigid and subsequently requires the developer to move on to the next phase only when the previous one is completed.
While the waterfall methodology has been around for decades, the newer agile approach has slowly been gaining ground. Even upper management is starting to talk about it.
Mike Bowler, who founded Ajax, Ont.-based Gargoyle Software Inc., says the agile approach to software development can save businesses time and money compared to often drawn-out software projects. “An agile project is capable of developing something shippable every two to four weeks,” said Bowler, who develops software for his clients using an agile-based method called Extreme Programming or XP.
XP is based around agile principles - communication, simplicity, feedback and coverage.
Longer development time frames could cost them extra money if clients change their strategy, Bowler said. “Instead of building for eight months, you're only throwing away two weeks of work. Often agile projects come in earlier and cheaper than traditional ones.”
Better adaptation to change also means that more features in agile-based programs are used by the client than traditional software builds. With agile, the development team is always working on the features that are most important for the end user. “They won't build things that don't get used,” Bowler said.
Programmers can approach agile through a variety of platforms, including Microsoft's .Net.
.Net provides developers with quite a bit of flexibility in terms of what kind of language they want to use. Developers, for example, can implement agile-based programs using .Net. But there are cases where .Net might not be as useful. If an independent software vendor has a mandate to write an application that runs on Unix, Linux, IBM mainframe and Windows, then writing in .Net wouldn't be the framework of choice for it because .Net doesn't run on the mainframe, said Microsoft Canada's senior product manager of development tools, Jeff Zado.
In general, Zado said, the software methodology that an organization uses is often team-independent. It's also largely a function of the skill sets of developers inside an organization. If there isn't anyone in-house that can maintain the software or a business has to outsource external support, then the project quickly becomes cost-prohibitive. In some cases, companies can be forced to re-write applications or do other development paradigms if the language disappears because of a lack of support to extend it.
Page Navigation 1) A Sequential Approach
2) That's history
3) Ease of programming
| Bookmark: delicious | Google | Technorati | StumbleIt | Yahoo! |
| Related Articles | |
|
Old-school apps get a Web 2.0 makeover Zip.ca shows off the IT behind Canada's answer ... Autodesk says it won't leave 2-D users behind |
blog comments powered by Disqus
Line of Business

