Tag: software development

A Closer Look at Agile Software Development

January 20, 2010 | By | 2 Replies More

Reading time: 2 – 2 minutes

I have once discussed on this blog the nature of software development processes which includes Royce’s Waterfall Model, a sequential approach to software development attributed to the waterfall because of its steadily flowing progress.

This time, I’ll be talking about a rather different software development process derived from the agile manifesto which was a statement of principles that underpin agile software development.

Significant values are driven by agile software development methods including giving much weight on individuals and interactions over processes and tools on an agile team, creation of working software within weeks time against comprehensive documentation and longer time frame, high importance on customer collaboration compared to contract negotiation on other systems plus a rather responsive outlook to change than strictly following an organized plan.

One of the main important stages of software development is implementation or coding. Continuous integration being a core process during this stage encourages developers to effectively write tests with each piece of code aside from providing immediate feedback to developers and technical leads and teams. It’s vital that a consistent approach to issue tracking is implemented to quickly respond to bug issues and defects, and to all other demands of the project.

While agile software development is more focused on people and interactivity, development teams would not be functional without the use of some savvy agile tools such JIRA Studio or JIRA with GreenHopper plugin for project management, Confluence for agile collaboration, FishEye for code analysis, Bamboo for continuous integration, Clover and Crucible for code coverage and review, respectively alongside an appropriate Pyxis training program.

Although there are advantages and disadvantages on any process or methodology, what matters in the long run is for developers to come up with great software that will provide value to clients and users.

Fact Snippet: Software Development Process

December 12, 2009 | By | 2 Replies More

Reading time: 2 – 3 minutes

Writing software reviews has been a rewarding experience but despite the fact that I’ve been doing it for quite sometime, I think it’s about time for me to dig a little deeper on how a software comes to life after the cunning hands of software developers then afterward gets used by end users and reviewed by enthusiasts like me.

Like any other product, before any software is launched into the market, it undergoes several processes similar to manufacturing of which is often represented by the Waterfall model.

The Waterfall model is a sequential software development process often attributed to a waterfall since its progress is steadily flowing in a downward direction (see figure below).

Waterfall model

Waterfall model

The Waterfall Model was taken from Royce’s article written in 1970 which later became the way to criticize a commonly used software practice.

The Waterfall model is comprised by the following phases:
1. Requirements specification
2. Design
3. Construction (implementation or coding)
4. Integration
5. Testing and debugging (also called Validation)
6. Installation
7. Maintenance

There are many cited arguments though about how the process should be done contrary to the above model and among those are inconsistencies in case clients change their requirements and design which means, one can’t easily move forward to the next step unless the previous ones are perfected which in return immobilize the whole process and thus increasing costs and eating more time.

On the other hand, the Sashimi model by Peter DeGrace allow feedback in between phases although quite similar in scope as the Waterfall model, this method however alleviates the need to modify and correct certain issues before moving forward which is good because this allows ample time to discover bugs and do some fixes whenever it comes between each phase.

Given these facts above, it open up the avenues for understanding how a software is developed before being released and to think that is requires a lot of effort and time to do so, I must say kudos to those guys for creating savvy pieces of tools for today’s computer driven world.