Thursday, September 27, 2012

Cloud Foundry

Are you a developer and want to concentrate on coding rather than working with the infrastructure, setting up required services like Database, Webserver and Messaging server? Then Cloud Foundry is a one stop solution.

Cloud Foundry is an open-source PaaS. It commoditizes the stack. In practical terms, Cloud Foundry makes it very easy to get things like databases (MySQL, PostgreSQL, Redis and MongoDB), messaging (RabbitMQ) and web servers (Tomcat) up and running quickly. All you need to do is register with Cloud Foundry; install Micro Cloud Foundry (for local use). Yes, you heard it right. All the services required to run your web application will be handled by Cloud Foundry, it will bind all the required services and run as a single service.

Cloud Foundry gives you the ability to write your application once and deploy it to any Cloud Foundry instance; it could be public or private or even on to Micro Clouds (local). At a later stage if you decided to run the application on other DataCentre or on some other Cloud Foundry provider you can do it with ease.

Even before deploying your application to the cloud, you can use Micro Cloud to deploy your application to run and test it in your local machine using Micro Cloud. Deploying code to Micro Cloud Foundry or Cloud Foundry is hassle free. All you need to do is pass through the wizard (don't worry, not the Microsoft way with too many Next and other buttons) by making few selections or you can use your terminal (if you are a Linux guy). Micro Cloud Foundry automatically detects the database required, frame work used etc. The beauty is that you can deploy your application directly to any database, irrespective of which database you have used to create your application. For instance, you have developed an application using MySQL, during deployment you need to just select the option of PostgreSQL, that's it, nothing else. I have tried this and it worked fine. Try it out yourself!!!

Procedure to deploy an application to the cloud is similar to deploying an application to Micro Cloud Foundry with the exception that you have change the pointing to Cloud Foundry instead of Micro Cloud Foundry.

Supported Languages:  Java. Node.js, Scala, Ruby
Framework: Spring, Rails, Sinatra, Lift
Database: MySQL, PostgreSQL, MongoDB, Redis
Messaging Application: RabbitMQ

ActiveState has contributed Python and Django support for Cloud Foundry.

PaaS start-up Appfog is contributing PHP as a language to the Cloud Foundry project. Appfog is launching a new service, Appfog.com, based on the Cloud Foundry open source code.

Thursday, May 7, 2009

Project Management Methodologies






According to Jason, "A methodology is a set of guidelines or principles that can be tailored and applied to a specific situation. In a project environment, these guidelines might be a list of things to do. A methodology could also be a specific approach, templates, forms, and even checklists used over the project life cycle."

Managers say that "Adopting an incorrect methodology or having no project framework in place can very easily cause you to have:

• Schedule and cost slippages
• Miscommunication within the team
• Wasting [of] time on administrative tasks that have no purpose
• [Reliance] on technical wizardry to get projects done [and]
• Project management burnout"

Methodologies

1. Rational Unified Process (IT/software development methodology)
2. Rapid Application Development (RAD)
3. Agile Software Development
4. Extreme Programming (XP)
5. PRINCE2
6. TenStep Project Management Process
7. SCRUM
8. Waterfall
9. Spiral
10. Joint Application Development (JAD)


1. Rational Unified Process (IT/software development methodology): The Rational Unified Process attempts to capture many of modern software development's best practices in a form suitable for a wide range of projects and organizations.

2. Rapid Application Development (RAD): Name itself says Rapid; this methodology is used for fast development and deliver of a high quality system at a relatively low investment cost.

3. Agile Software Development: Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a shippable increment of work.

Most agile methods attempt to minimize risk by developing software in short timeboxes, called iterations, which typically last one to four weeks. Each iteration is like a miniature software project of its own, and includes all the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation. While iteration may not add enough functionality to warrant releasing the product, an agile software project intends to be capable of releasing new software at the end of every iteration. At the end of each iteration, the team reevaluates project priorities.

4. Extreme Programming (XP): Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation.

The main goal of XP is to lower the cost of change in software requirements with traditional system development methodologies.

5. PRINCE2 (PRojects IN Controlled Environments): It’s a Process-based approach; PRINCE2 is a de facto standard used extensively by the UK Government and is widely recognized and used in the private sector, both in the UK and internationally.

PRINCE2 focuses on the products to be produced by the project no the activities to produce them. Process, Components and Techniques form a structure for this methodology.

6. TenStep Project Management Process:




Tom Mochal is the owner of TenStep Project Management. TenStep Project Management Process suits for all types of projects varying small to large. It is designed to be as flexible as you need to manage your project.

7. SCRUM:
Source: Daffodil software
//
SCRUM Process flow diagram

SCRUM Principles:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan

8. Waterfall:


Waterfall Principles:
• Project is divided into sequential phases, with some overlap and splashback acceptable between phases.
• Emphasis is on planning, timely schedules, budgets and implementations of an entire system at one time.
• Tight control is maintained over the life of the project through the use of extensive written documentation.


9. Spiral:

The spiral model was defined by Barry Boehm in the year 1985. Spiral model is also referred as spiral lifecycle model. The spiral model is favored for large, expensive, and complicated projects.

The spiral model is actually a risk-driven process model generator

Source: http://accuracyandaesthetics.com/


Major steps:

1. Determine Objectives--- Objectives are determined
2. Identify and resolve risks--- Identify the possible risks and resolve them
3. Development and Test--- Development and Testing is done in this step
4. Plan the next iteration--- Next phase planning will be done here

10. Joint Application Development (JAD):
The Joint Application Development (JAD) methodology aims to involve the client in the design and development of an application. In contrast to the Waterfall approach, JAD is thought to lead to shorter development times and greater client satisfaction, both of which stem from the constant involvement of the client throughout the development process.

Thursday, December 4, 2008

DO I NEED A PROJECT MANAGER?

Think twice before you announce NO! Yes, I am sure! Managing a Project without a Manager is like flying a Plane without a Pilot. Could you manage a flight without pilot? (assuming you are not a professional pilot)none will dare to risk their lives, the same is applicable to Projects. You need a Manager who could manage the Project.

Do small and Trivial projects need a Manager? Yes at least a Manager who could set a process to be followed by his team members.

Project Manager can have a profound effect in the juggling of multiple projects, especially when there is little or no staff to spare. Project Managers are a special breed that look at projects from a different perspective.

Project Managers are too expensive!!!

While having a dedicated Project Manager may incur costs in the beginning, it is an investment that will result in more satisfied clients, referrals and testimonials. What is the value of that? Priceless!

You think cutting the role of project management will save on valuable resources, consider project management as a direct investment in the growth of your business.

Still thinking not to employ/fire a Project Manager?

"Trying to manage a project without project management is like trying to play a football game without a game plan."- K. Tate

Wednesday, October 29, 2008

Project Management Tool

Project Management Tool, is this vital for a project? By all means Yes, PM tool(s) are desirable. Visualize yourself managing multiple projects or multiple tasks, could you memorize all of them? If your answer is yes, you are the finest! Else you need 'Someone' who could keep in mind what you are doing, and remind you what needs to be done; That 'Someone' is Project Management tool.

Project Management Tool could be separated into two categories

Online

Standalone

Online Project Management Tool (OPMT)

It is also referred as Web Based Project Management Tool. In a business you will probably be working with project team with members scattered around different geographic locations. For instance, few at customer site and others work from office.

You can access your projects online, through your favorite web browser. All you necessitate is an Internet connection and a PC/Laptop to access your PM tool.

By using an OPMT you can enable each team member to examine their own progress against objectives. With Online system you can control the project better from a central location. Even you can cut down the cost of traveling.

Standalone Project Management Tool (SPMT)

Could be accessed only on the system installed. You can have a server edition installed at a remote location and client at multiple systems.

Are you bewildered with Online Project Management (OPMT) tool to prefer? I’ve listed down few of the tools which I prefer.

Basecamp is subscription-based online project management software. There is no set-up fee and you can upgrade or downgrade at any time.

Basecamp software is hosted on reliable web servers and is supported by most popular. Basically, if you have a PC or Mac and an Internet connection, you’re good to go. Your Basecamp account is password protected and several of the plans include SSL security.

AceProject is a tool to manage multiple projects within one single account. AceProject is easy to work with compared to many other PM tools. Each resource can visualize his/her assigned tasks as well as other tasks of the project.

EnterPlicity is used by organizations such as NORCAL Mutual Insurance, Xerox, and the US Army. It has features like Portfolio Management, Work Breakdown Structure, Gantt View, Resource Management, Time Tracking, Issue Management etc.

DotProject is an open source software program. It allows for project managers to plan and monitor their projects online. It is one of the best free tools we have found, with an excellent layout and design and fast page loads. The only thing missing from this excellent project management tool is a time logging module. Initially you will have to struggle to get used to the interface.

The Trac Project is a tool with best documented help and support sites available. It has enhanced wiki and problem solving system. It has cross platform compatibility, being able to run on Windows, several versions of Linux and Unix as well as Mac. It runs on an SQL back end, where the data is stored, and this can be published to the web allowing access from anyone, anywhere, allowing a global team of project members.

Below is the list which I prefer as a Standalone Project Management Tool

Microsoft Project has good Resource, Project Management system. Microsoft Project makes project creation extremely easy. You can also integrate your projects with some of our other top-ranked project management. Its collaboration features are above average.

Intellisys Project manufactured by Intellisys, Inc., Intellisys features a wide array of collaboration features. It also includes team calendars and timelines. The functions you need to make your project a success are easily accessible and simple to use. The project management software has a learning curve.

RationalPlan Multi Project specifically designed for project managers that need to handle the company's projects and resources in a centralized way. Greatest features are its capacity to manage resources and budgets. RationalPlan Multi Project runs on Windows Vista, XP, Mac OS X and Linux.