23 July 2013

A Project Manager Must do...

1. Set the Roadmap
Every Project Manager has to set a clear roadmap for the team. This includes a crystal clear project plan, goals, timeframes and deliverables for the team.
Start by getting your boss to agree on the Project Goals and Timeframes. Then run workshops with your team to plan the road ahead. This gets their buy-in to the timeframes and deliverables at a detailed level. Then present your project plan to your boss or the customer to get it approved. By creating a clear roadmap ahead early on in the project, you'll make sure that you kick-off the project on the right foot.
2. Time-box Everything!
You project plan will describe the general timeframes for the project, but you need to make sure that within this plan, every individual task has a clearly defined start and end date. Then make sure that resources are assigned to tasks and they know what must be complete and when.
Absolutely everything in the project must be time-boxed, and not just tasks. If you run meetings, then set dates for when you expect the minutes to be written up by. If you run workshops, make sure that the actions that were generated have due dates. Anything that isn't time-boxed becomes an "operational task" and you have no way of knowing if it's on time or not.
3. Blow the whistle regularly
As a Project Manager, you need to actually check that everything you delegate is completed on time - otherwise you need to blow the whistle at them! You can't simply trust that people will get work done on time and move on to other things. You need to list everything you've asked to be done, who's going to do it and by when - and then check that it's competed. That way, you can ensure you proceed according to plan.
Also, don't be afraid to be the "busybody" who is "always poking their nose into work that others are doing". In fact, that's actually your job! Find out who is working on what, where they are at and how long it's going to take to finish and compare that to what you expected in the first place. Do this every day, for every member of your team. Remember - you need to control the work, not just monitor it.
4. Be Strong, but Supportive
As the Project Manager, it's your butt that's in the firing range! So don't be afraid to be strong with your team. It's a tough balance to strike (being strong vs. supportive), but all great leaders have found the balance and achieved the right results.
If you need to have a terse word with staff, then do it personally rather than in front of the team. Speak openly and honestly, never "fluff it up". Tell them straight, but always be professional and constructive. They will respect you for it. One great tip is always to start with a positive and end with a positive, to ensure you get their buy-in.
5. Review
Your job is to lead, coach, manage and review. So keep a close eye on progress and where things are at. Use tools to see if you're on track daily and take action if you're not. Review everything - time, deliverables, quality, budget, suppliers etc . You're the watchdog, who makes sure that it's all done according to plan. But remember—the watchdog is always the first in the office, the last to leave and buys the morning tea to keep the team motivated!


25 June 2013

Lord Shiva - A Great Entrepreneur

In every entrepreneur’s life at one point in time, they would play the role of Lord Shiva. Here are few lessons that an entrepreneur must learn from Lord Shiva.

The Fearsome ‘Rudra’
“If a man is doing something but has not the firmness of determination within his mind, then he will never be successful.” Lord Shiva often considered to be the God of Gods also has a very fearsome form which is known ‘The Rudra’.  An entrepreneur must have traits of the ‘Rudra’ as it is the only form that has the courage to face any situation fearlessly. While running an enterprise or a startup the front runner of the company must possess bold qualities which will help in the quicker establishment of the business.

In terms of employee relationship an entrepreneur must closely follow Lord Shiva as he is known to be a ‘Shipra Kobi’ one who does not tolerate nuisance and ‘Shipra Prasadi’ one who loves and enjoys fun along with being kind and good to employees. For an entrepreneur there must be no looking back and he must fire unproductive human resources while still retaining and safeguarding the best ones in business.

Maha Yogi and a Householder
“One must have self-restraint. Eating too much, sleeping too much, drinking too much – these weaknesses will not help the aspirant. One must have a balanced life and one must have restraint.”   It is true and undeniable that an entrepreneur must have good multitasking skills. He must know how to maintain a proper balance with the personal and the professional life. Amidst great responsibilities that include saving the world from evils, he also makes time for his family.  An entrepreneur must have a balanced life and must know how to tackle and navigate between his career and family to ensure both have fruitful results.

Ardhanarishvara
“One must have respect for one’s goal; one must have respect for one’s path.” One of key ways to gain quick success is by treating every individual equally.  When an employee is treated with great respect his morale increases which in turn increases well being of the business.

An artistic creator
An entrepreneur must be an artist in creations and inventions. He must always keep in mind that, with every creation there must be something that is either useful or something that would help an individual in his self development. An entrepreneur must never be self centered and must also use his creations for recreational purposes like what the Lord himself does.

HariHara Avatara 
This incarnation of Lord Shiva is a combination of two Gods, Vishnu (Hari) and Shiva (Hara). Vishnu is considered to be a calm and quiet God who sustains life on earth and Shiva is infamously known to be the destroyer. HariHara avatar is combination of these traits. While one looks at sustaining life on the planet the other focuses on cleaning up the unwanted and beasty to start up something new.

An entrepreneur must adopt these lessons from Lord Shiva because at any point if there is a crisis an entrepreneur must not kill his company but face and deal with all the consequences and ensure that his startup or company is still safe. However, when things go beyond control he must not flinch and step back but must have the courage to kill his startup and begin with a new one to continue the cycle.



21 June 2013

Project Manager Charactersitcs

1. Command authority naturally.

They don’t need borrowed power to enlist the help of others – they just know how to do it.

2. Possess quick sifting abilities, knowing what to note and what to ignore.

3. Set, observe, and re-evaluate project priorities frequently.

They focus and prioritize by handling fewer emails, attending fewer meetings, and generally limiting their data input.

4. Ask good questions and listen to stakeholders.

Don’t just go through the motions. They care about communication and the opinions of the parties involved. They are also sufficiently self-aware to know how their communication is received by those stakeholders.

5. Do not use information as a weapon or a means of control.

They communicate clearly, completely, and concisely. All the while giving others real information without fear of what they’ll do with it.

6. Adhere to predictable communication schedules

Recognizing that it’s the only deliverable early in a project cycle. All this takes place after very thorough pre-execution planning to eliminate as many variables as possible.

7. Possess domain expertise in project management as applied to a particular field.

8. Exercise independent and fair consensus-building skills when conflict arises.

9. Cultivate and rely on extensive informal networks inside and outside the firm to solve problems that arise. Resolve issues as quickly as possible.

They identify any critical issues that threaten projects and handle them resolutely (vs. ignoring them).

10. Look forward to going to work!

They believe that project management is an exciting challenge that’s critical to success. The truly great ones view project management as a career and not a job, and they treat it like so by seeking additional training and education.
---------------------------------------------------------------------------------------------------------

Questions to ask yourself in each project as a project manager

Starting the Project (Initiation)

  1. Are you doing a project?  A project is a temporary endeavor with a specific result or objective. If your project has no end in sight and/or no clear scope, then what ever it is you’re doing may be important, but it’s not a project. You’ll have a hard time showing your team that they’re being successful.
  2. If you’re project has no end in the next 3 to 6 months, can you split it into multiple projects?
  3. Are you thinking about the triple constraint? i.e. cost, time and scope.
  4. Do you have a project charter/project definition? If not, write one for your own benefit.  Having a charter can eliminate many opportunities for confusion during the project.
  5. Who are your primary stakeholders? Who are your other stakeholders?
  6. If you have more than one stakeholder, how will differences between stakeholders in regard to the project scope, timeline, budget or deliverables be resolved? If you’re not sure, then this is a good discussion to have with them.
  7. Do you have a roles and responsibilities chart?  Who’s on the team? Who’s not on the team? If no then just create it right now.
  8. Do all core team members understand their roles and agree to them?

Organizing Yourself

  1. Do you have a portfolio of templates? If not, start one.
  2. Do you keep a collection of really good project documents written by you and others? If not, start one.
  3. How are the project deliverables, documents and notes being managed on your project? Is there one master place where things are being kept? Does everyone on the project team know this?
  4. Are backups being done (documents, deliverables, code, etc.)? When was the last time you tested the backup? Try it today and see what happens.

Cost and Budget

  1. What’s your approved budget? If you don’t know, how can you find out?
  2. Who’s responsible for tracking the budget? If it’s not you, can you negotiate access to invoices as they are submitted and payments as they are made?
  3. What’s your method for reporting spending against budget?
  4. How much have you spent? If you think you’ll be more than 10% over budget by the end of the project, what are you doing about it? Can you get more money? Can you trim scope? Have you told your stakeholders?
  5. Is your budget up to date?

Planning

Project Scope

  1. Do you have a signed project scope?
  2. Does your scope include what’s not in your project?
  3. Is the scope written in language that anyone of reasonable intelligence can understand? Are all acronyms explained?

Risks (and issues)

  1. Do you have a risk log or register?  This is one place where you are tracking potential events which would have a positive or negative impact on the project if they were to occur. If not, why not?
  2. Are you spending a few minutes with your team every week or two identifying new risks and working to mitigate or otherwise handle the existing ones?
  3. Are you communicating significant risks (high likelihood, high impact) to your stakeholders well in advance so that they are never surprised?
  4. Are you keeping records of everything you and your team plans to do, is doing, or has done in regard to the risks and issues on your project? This is extremely valuable information for use on future projects.

Schedule and Work Breakdown Structure (WBS)

  1. Have you identified all of your deliverables for the project?
  2. Are you including your team in identifying the steps needed for each deliverable?
  3. Did you come up with time estimates? Did you validate them with the people who will actually do the work?

Project Management Plan

PRINCE2 (Projects in controlled environments) defines the project management plan as, “a statement of how…a project’s objectives are to be achieved.
  1. How will important project information be collected? Disseminated? Email? Meetings? Wiki? Twitter? Casual conversation? This is sometimes known as a communications plan.
  2. How will risk be identified, quantified, monitored and managed on your project? Will you have a risk log? When will you inform others? How will they be informed? This is sometimes known as the risk management plan.
  3. How will changes to the project requirements or scope be handled? If there is an overall change management process, how do changes to the project relate to that process? This is sometimes known as the change management plan.
  4. How will purchasing decisions be made on your project? How will you identify potential sellers? Will you use a Request for Proposal (RFP) process? Does your organization have a set standard? This is sometimes known as the procurement or vendor management plan.
  5. How will team members, clients and stakeholders be brought to competency level on project’s product? Do any team members need support to complete their project responsibilities? How will training be delivered? Online? Through printed guides or manuals? Train-the-trainer? Classroom training? This is sometimes known as the training plan.
  6. How will the solution be moved to production or otherwise delivered? Will there be a go/no go checkpoint? What are the steps? Who does what? What other groups or organizations will need to be involved? Are there time windows which must be honored? This is sometimes known as the implementation plan.
  7. How will ongoing support be addressed after the project has completed? Who will be responsible to maintain the project’s product? Who will help with any user issues or concerns? How will enhancements or fixes be reported and incorporated? What preventive maintenance will be needed? This is sometimes known as the maintenance transition plan.
  8. What issues are likely to arise after the product is deployed? Are there any steps which can be taken to minimize likelihood and/or severity of these potential issues? This is sometimes known as the disaster recovery plan.

Requirements

  1. Do you have some sort of grouped requirements for your project?
  2. Do you know when what you are expected to deliver expands? How do you handle this natural event?
  3. Are these requirements used as the basis for design and testing? If not, why not?
  4. Is the whole project team involved in and kept informed about the requirements? How can you involve development? How can you involve testing?

Doing the Project (Execution)

Execution is the third phase of the Project Management Life Cycle. This is where the actual work of the project gets done. This is the longest and most costly phase (or should be).
  1. Are you keeping your meetings as small as possible? Past a certain point, the more people, the less work gets done. Do you schedule meetings for 30mins?
  2. Do you allow people the right to opt-out of meetings?
  3. Do you have a clear agenda for every meeting? Do you send it out in advance, include the purpose of the meeting, intended outcome, expectations of participants, content and reference info (if needed)?
  4. Do you make sure everyone understands the purpose of the meeting?
  5. Do you make it easy for people to participate?
  6. Do you take notes of each meeting for any needed points?
  7. Are meeting notes sent out within 3 days. A week? Ever? Do they include all decisions reached and tasks assigned? Are they sent to everyone in the meeting and who will be impacted?
  8. Do you always start on time? Starting late rewards latecomers and disrespects those who arrive on time.
  9. Do you always end your meetings on time? If not, why not?

Status and Communication

  1. Does your status reporting communicate anything of value?
  2. Is your status report read? How do you know?
  3. If you have one status report, is it aimed at the level to satisfy your project team, your active stakeholders, or executives? Would it make sense to create different reports for different groups?
  4. If you expect reports from your team members, vendors or others, are you getting them?
  5. If you’re getting them, do they tell you anything of value? If not, how can you change them such that they are of value to you?
  6. Do you have weekly status meetings? Can you structure them such that people can be released without staying for the whole meeting?

Testing

  1. Are your test cases completed prior to development beginning? This can greatly shorten the test cycle. If not, are you willing to try this on a future project?
  2. Do your stakeholders know how to conduct user acceptance testing? What are you doing to facilitate a speedy UAT?
  3. Can you outline the testing strategy and work with them to define exactly what will be tested?
  4. Can you agree with your stakeholders as to specifics needed for a successful UAT before UAT testing begins?
  5. Do your developers communicate with your testers? (This applies even if you have an outsourced test team.) In the least effective software shops quality assurance (QA) and development never communicate before testing begins. Don’t let this happen to you.

Closing the Project

Close is the last phase in the Project Management Life Cycle. Here you formally close your project and report the overall level of success to your stakeholders.
  1. Do you look at lessons learned as a means to improve future project efforts? Or rather is it a way to get justice by beating up on the guilty parties?
  2. Can you create an open, safe place for people to give honest and sincere feedback on the project? If not, is there someone else in your company or outside who could do the lessons learned for you?
  3. When was the last time you did a lessons learned?

Customer Satisfaction Survey

  1. Do you ask for feedback from your customer, client or stakeholder? An example question might be, “What could have been done better on this project?”
  2. If you ask for feedback, are both basic and loyalty questions included? An example of a basic question is, “How satisfied are you with what the project team delivered?” An example of a loyalty question is, “How willing would you be to work with this project team again?”
  3. Would you be willing to send out an anonymous survey to your project team?  Some questions to ask: What went well on the project? What could have gone better? What would improve your experience on future projects? How could the project leader be more effective?

Project Closeout

  1. A project closeout document is a formal, signed email or one page document which officially closes the project and releases the team. Have you ever seen one? What will you do to make sure that you use one on your project?

The Only Way To Raise Your Salary

The only way you can command a higher salary is to make your employer more money than anyone else who could do your job.

You make money for your employer by producing profitable goods that will be bought by his customers (who are also his employers).

Who’s Your Employer?
To be successful in selling your products or services to your customer, you need to make your customer successful in selling his products or services to his customer.

Value
Your employer’s alternative is to hire the most valuable person, where “value” is the difference between the extra gains he could make by hiring minus compensation. 

So for your employer to hire you and keep you employed, your compensation must be in line with that of anyone else who could do as good a job for him as you can.

Go the extra mile

Anticipate needs. Don't wait to be told what to do. Engage your brain and be proactive

Make improvements

Bring solutions

Go out and make some personal relations

Don't make your boss a mediator

Try giving your boss the benefit of the doubt - Of course, if you ever see a pattern that concerns you, speak up! But start by giving your manager the benefit of the doubt, and you might find that you're happier and the relationship is a better one

Give honest feedback

Ask for feedback and be prepared for it

Tie your work, projects and direction to your boss's goal.

Learn from them

27 December 2012

PMO - Programme Management Office Functions



Programme management office functions:
 
  • Prioritisation of new projects: Organisations have limits and do not have finance or resources in place to run every project that comes along. Therefore guidelines and processes need to be in place to ensure that the organisation only takes on board projects that best fit their strategic objectives. The PMO puts a criteria in place to evaluate potential projects and give the projects with the greatest benefit the priority to move forward.
  • Standardisation: A PMO puts a standard project management methodology in place to ensure that there is a consistent approach taken to ensure successful project results.
  • Reviewing: A PMO is consistently reviewing ongoing projects to ensure they are meeting any baselines or standards set against it. By reviewing the ongoing projects the PMO can highlight any problems areas that would otherwise go unnoticed.
  • Reporting: The PMO will generate consolidated programme progress and status reports with information sourced from the projects that make up the programme. These reports are distributed to senior management and as well as status and progress will often include on costs and benefits.
  • Learn from mistakes: A PMO can hold “lessons learned” from previous projects so project managers can learn from past failures and also successes, and apply this knowledge to future projects.
  • Resource and time allocation: A PMO monitors both resource demand and allocation to ensure that the right people are allocated to the right project and also that a sufficient amount of time is assigned to the project.

Overall having a PMO in an organization will provide a clear and consist process for all projects and programmes to follow through standard practice, methodology and keeping in line with the organisation’s goals.

Project Management

Some of mistakes MUST be avoided

Unrealistic deadlines

Failure to get executive buy-in
 i.e. have someone from upper-level management actually own the project

Scope changes

No system for approving or tracking project changes

Failure to manage risk

Poor communication and collaboration

Uninvolved stakeholders

Undefined goals and objectives

To Do WHEN project requirement Change

Keep your project requests separate from your scope requests

Implement a change approval process and keep a scope change log

Use online collaboration and communication  tools

 

Motivating Project Management Teams

Keeping your team focused and moving forward with your project is vital, but it can be hard to do. Motivation is the key here, and a lack of it can spell doom for any project.


Communicate - Good communication is vital for a number of things, including ensuring that your team members all understand their roles and responsibilities, as well as for providing encouragement and feedback throughout the duration of the project. Communication with team members and with stakeholders is of immense importance.

Educate Them

Offer Rewards

Be Informal

Foster Creativity - Let share ideas, brainstorm and try new things to see what works

Give Your Project a Reality Check

Does the Project have Sufficient Team Resources to Meet Deadlines?

Is the Project Budget Still on Target?

Has the Scope of the Project Changed?


19 November 2012

MySQL - Another way to build RAND() query

select name from random join ( select ceil(rand() * (select max(id) from random )) as id) as r2 using (id)

15 October 2012

Manager - Project/Weekly Meeting Agenda


  1. Agree on your goals.
  2. See what good behavior looks like.
  3. Write out each of your goals on a single sheet of papeRead and re-read each goal, which requires onlyyou do it.
  4. Take a minute every once in a while out of your day tand
  5. See whether or not your behavior matches your goal.

02 October 2012

Importance of Code Review


Being a developer, all know the pain of silly or mistakes  for which we are not aware on ourselves. For ex., A wrong attribute here, a misspelled property there, an accidentally duplicated line of code which we missed or even a simple $ before the opening PHP tag which you accidentally put there because IDE was not started and you spend an hours to find this issue and fix it.
Code review can be very difficult to implement/follow, especially in a team those who aren’t used to it. But once done, it will not only decrease the number of defects in your code, it will also increase collaboration and help team building, improve team spirit amongst developers and will help best practices and improvement of skill in entire  department. Any type of code review is better than none.

Wikipedia says that Code review is systematic examination (often known as peer review) of computer source code. It is intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers’ skills. Reviews are done in various forms such as pair programming, informal walkthroughs, and formal inspections.
The Types of Code Review
  1. Personally assisting developer line by line about their code and getting it fixed. It is best for small team size and small size projects.
  2. Tools - there are some tools available but these are paid but we can try their free versions. For ex.,PHPUnit
  3. Interchanging code files for code review and getting their review observed.
Best Practices for Code Review
  1. Try to identify common mistakes and start reviewing from those points/areas.
  2. Keep code reviewed at the end of each milestone.
  3. Be good while finding bugs. It is for improvement of application only and not blame anything.


    Based on agile method, we can utilize a day once in a week or bi-week for SVN/backup, Code review.

30 September 2012

Get yourself valued at WorkPlace

Making yourself valuable at work is not only important during times of layoffs and downsizing but during times of prosperity and abundance. It isn’t rocket science, it doesn’t involve going back to school, and it isn’t difficult. If you follow these simple steps, you will become the “go to person” at your job.
Some simple tips to make you valuable at your job:

•Focus on being the solution and not the problem. You need to be the person that people go to for the two “As”–answers and action.

•Anticipate what your boss wants and provide what he wants before he even asks for it. Remember, the old saying, “Be proactive.”

•Make yourself visible, speak out, generate ideas and participate.

•Volunteer for any new activity or assignment even if it directly does not fall in your KRA. Don’t try to be safe by focusing on just the expectations as per KRA. Remember – if you need the extra edge, you have to put in some extra effort as well.

•Have the facts and information at your fingertips. Be organized and prepared to present the facts via reports or charts on short notice.

•Build and develop relationships, with people across functions, with your bosses, senior colleagues. You never know, when a good word or reference can come to your rescue.

•Have a great attitude, learn to listen and to get along with everyone. This doesn’t mean you can’t have an opinion or that you can’t express your opinion. What it means is that you are a listener and that you are open to hearing opinions other than your own.

Weekly Status Report

Writing effective status report is as important as the actual work you did! How to write a effective status report of your weekly work at the end of each week?
Here I am going to give some tips. Weekly report is important to track the important project issues, accomplishments of the projects, pending work and milestone analysis. Even using these reports you can track the team performance to some extent. From this report prepare future actionables items according to the priorities and make the list of next weeks actionable.
So how to write weekly status report?
Follow the below template:
Prepared By:
Project:
Date of preparation:
Status:
A) Issues:

Issues holding the QA team from delivering on schedule:
Project:
Issue description:
Possible solution:
Issue resolution date:
You can mark these issues in red colour. These are the issues that requires managements help in resolving them.

Issues that management should be aware:
These are the issues that not hold the QA team from delivering on time but management should be aware of them. Mark these issues in Yellow colour. You can use above same template to report them.

Project accomplishments:
Mark them in Green colour. Use below template.
Project:
Accomplishment:
Accomplishment date:

B) Next week Priorities:
Actionable items next week list them in two categories:

1) Pending deliverables: Mark them in blue colour: These are previous weeks deliverables which should get released as soon as possible in this week.
Project:
Work update:
Scheduled date:
Reason for extending:

2) New tasks:
List all next weeks new task here. You can use black colour for this.
Project:
Scheduled Task:
Date of release:

C) Defect status:
Active defects:
List all active defects here with Reporter, Module, Severity, priority, assigned to.
Closed Defects:
List all closed defects with Reporter, Module, Severity, priority, assigned to.
Test cases:
List total number of test cases wrote, test cases passed, test cases failed, test cases to be executed.
This template should give you the overall idea of the status report. Don’t ignore the status report. Even if your managers are not forcing you to write these reports they are most important for your work assessment in future.
Try to follow report writing routine. Use this template or at least try to report it in your own words about the overall work of which you can keep some track.

24 September 2012

Importance of multi tasking

I am mainly into Project management of Web Development industry and during my day, I have to switch to many tasks to take care / attend. Hence I have found that multi tasking is a must for my field but it has to be with some preplanning or else it can mess you up. Here are some tips to make multi tasking more effective.


1. Schedule Everything

After the initial "Yes" you need to send the contract. Did you remember that? Good… But before you send it over for the client to sign, you need to fill out the time frame that you'll take to complete the work. You should ask a simple but very important question: When do you need this project completed by?

Once you have that answer, pull up your calendar app (I'm an all Apple girl, so I use iCal, but you can use your favorite app or a desk calendar) and start looking at your next two working months. Mark the due dates for each project. Some of the projects may be able to wait a week or two, even a month. You'll be surprised on how one simple question makes things easier on you and your schedule.

2. Break them up into Tasks

You most likely have other projects already going on. So, instead of thinking big, try to break them into tasks and milestones. This will make it much easier to achieve success. Just like in my previous article, I have a suggestion of an app I use and find a perfect fit to keep track of it all. For breaking projects down into tasks,


3. Outsourcing / assign

Sometimes multitasking projects by yourself can be overwhelming. It is important to know your industry, network and find designers, coders, photographers who have the same idea of business that you have and connect with them. What should you do if you have more work than you can handle? Or something that is out of the range of your expertise? First, take a step back and figure out what you may need to have completed by some one else. Yes, you read right. Sometimes as freelancers we forget that we can go to other freelancers and collaborate to complete a project.

For example, I am not a flash animator, but I know some pretty cool designers that would give me great results if I sent a project their way. Make sure to network and get to know the industry professionals in your area, the strengths of each group and you'll have plenty of help when you need it. It goes both ways though.
Be ready to step up and help a fellow freelancer when the opportunity presents itself. Pay it forward. It is all about working together and helping each other.

4. Group them into Milestones

The entire purpose of breaking down big projects into smaller tasks is to create milestones. This is how you really know you are getting things done. So let's look at one of your 6 new clients. For this client it is actually 3 projects: Logo, Business Cards and a site.

You might think that everything is for next week but in reality it is not. You need to first develop a general understanding of the business so you can develop the logo, then create a "Coming soon" splash page on the site, followed by business cards and finally the site. See what I mean? This client has several steps or “Milestones” that need to be completed.

You need to date them all… Why? So you can keep a tight schedule and still be able to handle more than one client, not just more than one project.


5. Arrange and Meet the Deadline

The most important aspect of being a freelancer is meeting the deadlines you and your client set for each project. One of the most common mistakes of the Freelancing community is not meeting them, hence the client is dissatisfied and thinks all freelancers are unreliable. By meeting your deadlines and possibly beating them, you create a much better relationship with your client. This can lead to referrals and more work for you.

All around, the most important thing is that you set up everything on a calendar so you can keep track and still have balance time for family and friends. Writing things down makes them more real and it will help you to keep in mind what you need to do, even if you don't look at the calendar that often (though you should).

6. When You Miss the Deadline


Not everything goes as planned. The day will come and you will have to face it. You will miss a deadline. The most important thing here is that you keep your client updated on where you stand with meeting the milestones.

When something (big) gets off track, make sure you are upfront and honest with your client. You will be surprised at how understanding clients can be when something gets pushed back because of elements out of your control.
 
 

22 September 2012

Online wireframe tools - FREE

During our project planning, we might need to have a tool to draw something and share with client. There are plenty of tools for this but what I am going to share is online i.e. no dependency or need to carry all files every time and FREE !!!



  1. https://moqups.com/#!/, 
  2. http://lumzy.com/app/, 
  3. http://www.gliffy.com/gliffy/#templateId=blank&signup=1, 
  4. Google Drive-Drawings
  5. http://my.lovelycharts.com/
  6. http://builds.balsamiq.com/b/mockups-web-demo/

Cheers,

24 July 2012

Performance Optimization Steps

Here is the list of 43 short tips you can use for writing an optimized and more efficient PHP code:
  1. If a method can be static, declare it static. Speed improvement is by a factor of 4.
  2. echo is faster than print.
  3. Use echo's multiple parameters instead of string concatenation.
  4. Set the maxvalue for your for-loops before and not in the loop.
  5. Unset your variables to free memory, especially large arrays.
  6. Avoid magic like __get, __set, __autoload
  7. require_once() is expensive
  8. Use full paths in includes and requires, less time spent on resolving the OS paths.
  9. If you need to find out the time when the script started executing, INSERT:CONTENT:END SERVER['REQUEST_TIME'] is preferred to time()
  10. See if you can use strncasecmp, strpbrk and stripos instead of regex
  11. str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4
  12. If the function, such as string replacement function, accepts both arrays and single characters as arguments, and if your argument list is not too long, consider writing a few redundant replacement statements, passing one character at a time, instead of one line of code that accepts arrays as search and replace arguments.
  13. It's better to use select statements than multi if, else if, statements.
  14. Error suppression with @ is very slow.
  15. Turn on apache's mod_deflate
  16. Close your database connections when you're done with them
  17. $row['id'] is 7 times faster than $row[id]
  18. Error messages are expensive
  19. Do not use functions inside of for loop, such as for ($x=0; $x < count($array); $x) The count() function gets called each time.
  20. Incrementing a local variable in a method is the fastest. Nearly the same as calling a local variable in a function.
  21. Incrementing a global variable is 2 times slow than a local var.
  22. Incrementing an object property (eg. $this->prop++) is 3 times slower than a local variable.
  23. Incrementing an undefined local variable is 9-10 times slower than a pre-initialized one.
  24. Just declaring a global variable without using it in a function also slows things down (by about the same amount as incrementing a local var). PHP probably does a check to see if the global exists.
  25. Method invocation appears to be independent of the number of methods defined in the class because I added 10 more methods to the test class (before and after the test method) with no change in performance.
  26. Methods in derived classes run faster than ones defined in the base class.
  27. A function call with one parameter and an empty function body takes about the same time as doing 7-8 $localvar++operations. A similar method call is of course about 15 $localvar++ operations.
  28. Surrounding your string by ' instead of “ will make things interpret a little faster since php looks for variables inside ”..." but not inside '...'. Of course you can only do this when you don't need to have variables in the string.
  29. When echoing strings it's faster to separate them by comma instead of dot. Note: This only works with echo, which is a function that can take several strings as arguments.
  30. A PHP script will be served at least 2-10 times slower than a static HTML page by Apache. Try to use more static HTML pages and fewer scripts.
  31. Your PHP scripts are recompiled every time unless the scripts are cached. Install a PHP caching product to typically increase performance by 25-100% by removing compile times.
  32. Cache as much as possible. Use memcached - memcached is a high-performance memory object caching system intended to speed up dynamic web applications by alleviating database load. OP code caches are useful so that your script does not have to be compiled on every request
  33. When working with strings and you need to check that the string is either of a certain length you'd understandably would want to use the strlen() function. This function is pretty quick since it's operation does not perform any calculation but merely return the already known length of a string available in the zval structure (internal C struct used to store variables in PHP). However because strlen() is a function it is still somewhat slow because the function call requires several operations such as lowercase & hashtable lookup followed by the execution of said function. In some instance you can improve the speed of your code by using an isset() trick.

    Example:if (strlen($foo) < 5) { echo "Foo is too short"; }



    vs.

    if (!isset($foo{5})) { echo "Foo is too short"; }

    Calling isset() happens to be faster then strlen() because unlike strlen(), isset() is a language construct and not a function meaning that it's execution does not require function lookups and lowercase. This means you have virtually no overhead on top of the actual code that determines the string's length.
  34. When incrementing or decrementing the value of the variable $i++ happens to be a tad slower then ++$i. This is something PHP specific and does not apply to other languages, so don't go modifying your C or Java code thinking it'll suddenly become faster, it won't. ++$i happens to be faster in PHP because instead of 4 opcodes used for $i++ you only need 3. Post incrementation actually causes in the creation of a temporary var that is then incremented. While pre-incrementation increases the original value directly. This is one of the optimization that opcode optimized like Zend's PHP optimizer. It is a still a good idea to keep in mind since not all opcode optimizers perform this optimization and there are plenty of ISPs and servers running without an opcode optimizer.
  35. Not everything has to be OOP, often it is too much overhead, each method and object call consumes a lot of memory.
  36. Do not implement every data structure as a class, arrays are useful, too
  37. Don't split methods too much, think, which code you will really re-use
  38. You can always split the code of a method later, when needed
  39. Make use of the countless predefined functions
  40. If you have very time consuming functions in your code, consider writing them as C extensions
  41. Profile your code. A profiler shows you, which parts of your code consumes how many time. The Xdebug debugger already contains a profiler. Profiling shows you the bottlenecks in overview
  42. mod_gzip which is available as an Apache module compresses your data on the fly and can reduce the data to transfer up to 80%

01 June 2012

Getting 110% out of wordpress

Reference: http://www.hotscripts.com/blog/110-wordpress/


Today, WordPress powers over 72 million different websites around the globe. At the end of 2011, it was estimated that around 20%-25% of all new websites published were built using the WordPress platform. Throughout the 98 version releases that WordPress has gone through since 2003, it has morphed from a simple blogging tool to a rather capable CMS. This makes WordPress the most widely used and popular CMS in existence with a 53.8% market share.
This high affinity for WordPress as a CMS is attributed to its ease of use, flexibility, and extensible core. Given that WordPress excels at handling content, it can be easily tailored to accommodate non-blog-focused sites with custom content types — and usually that’s just a plugin or theme away.
If you use WordPress or are planning to use it, it’s time to do the happy dance. This month our featured article — Getting 110% out of WordPress — takes a look at some WordPress plugins and themes that can transform your WordPress site from a simple blog to a totally different web application experience. You will learn how to use WordPress as a framework to power classified ads, social networks, questions/answers, and ecommerce sites.

bbPress – WordPress as a Forum

bbPress is a WordPress plugin from the creators of WordPress. It allows you to create a simple and engaging community to compliment your WordPress powered website. bbPress is focused on web standards, ease of use, ease of integration and speed.

WP-Invoice – Web Invoicing and Billing with WordPress


WP-Invoice lets you create and send web invoices and setup recurring billing for your clients. It is ideal for web developers, SEO consultants, general contractors, or anyone with a WordPress blog and clients to bill. The plugin ties into WP’s user management database to keep track of your clients and their information.

Casual – A WordPress Tumblog Theme

Casual is a free WordPress tumblog theme with infinite color options and a friendly yet personal layout. You get to use all the benifits of Tumblr wrapped in the extensiveness of WordPress functionality. It supports various post types including images, videos, audio, text, links and quotes.

Prospress – Make a marketplace with WordPress


Prospress harnesses the wonder of the WordPress publishing platform to create a marketplace tool like nothing seen before. With Prospress, registered users can post auctions, place bids, provide feedback and make payments. It has everything required to create a many-to-many exchange that differs to the one-to-many exchange of a store.

s2Member – Turn WordPress into a membership site


s2Member is a plugin for professional WordPress membership management, integrating seamlessly with user roles & capabilities for WordPress. You can protect your content including downloadable files and force user to register or pay to access these content. It supports PayPal, Authorize.net and other popular payment gateways.

WP-CRM – Customer Relations Management for WordPress


WP-CRM extends the basic user management functions that come with WordPress to offer an elegant way of organizing your users with custom attributes. You can search for these users using filters and keep track of correspondence in one central place. This is a handy plugin for you to use to track your customers, vendors, partners and affiliates.

ALO EasyMail Newsletter – Send Newsletter using WordPress


ALO EasyMail Newsletter is a plugin for WordPress that allows to write and send newsletters, and to gather and manage the subscribers. It supports internationalization and multilanguage. Some of its features include: collection of subscribers’ information on registration, AJAX widget subscription box, mailing lists management and CRON batch sending.

CollabPress – Collaborate on your next project with WordPress

CollabPress is an all in one project and task management plugin for WordPress.  It transforms a standard WP installation into a full-featured project management application in a single click. With CollabPress, you can easily create unlimited projects, task lists, and tasks with all of the features you would expect.

BuddyPress – Social Networking with WordPress


BuddyPress lets users register on your site and start creating profiles, posting messages, making connections, creating and interacting in groups and much more. A social network in a box, BuddyPress lets you build a social network for your company, school, sport team or niche community.

WP-Property – WordPress Powered Real Estate Management


WP-Property is a property and real estate management plugin for WordPress. It allows you to create a directory of real estate and rental properties and integrate them into WordPress for you. It has an extremely flexible interface that lets you list products of any kind – vehicles, hotel reservations, etc.

Lifestream – Stream your life with WordPress


Lifestream is a plugin built on top of the WordPress platform. It allows you to effortlessly integrate your social network activity across the web with your blog. Out of the box, Lifestream is just streams in RSS/Atom feeds and prettying them up, but deep down it’s a very flexible platform allowing developers to integrate any kind of activity they desire.

Connections – Directory Plugin for WordPress


Connections is a directory plugin for WordPress. Its simplicity in design and function, vast array of unique features and versatility are the reasons more and more people are turning to Connections for their directory needs. You can use Connections to create a simple address book, maintain a staff directory and even run a business or link directory.

Quick Chat – Turn WordPress into a self-hosted chat platform


Quick Chat is WordPress chat plugin with support for private chat, live message translation, chat rooms, avatars, participants list, words filtering, smilies and much more. Quick Chat is self hosted chat solution. This means that your chat messages are stored inside your local WordPress database and are totally under your control.

WordPress Download Management – File Repository with WordPress


WordPress Download Manager plugin will help you to manage, track and control file downloads from your wordpress site. You can set password and set access level any of your downloadable files from your wordpress site. You can add/embed downloadable files anywhere in the post just pasting the embed code inside your post content using WordPress Download Manager.

Jihosshop – Start selling with WordPress


Jigoshop is a feature-packed e-commerce plugin built upon WordPress core functionality to ensure excellent performance and customizability. With the option to create a multitude of product types and apply detailed attributes customers can easily refine your catalog, ensuring they find what they’re looking for in just a couple of clicks.

WordPressWiki – Your own KB application built on WordPress


WordPressWiki is a theme that transforms WordPress into a custom knowledge Base application to power your company’s documentation needs. You’ll be able to add articles and frequently asked questions, rate content, show related articles, and much more!

Booking Calendar – Availability Booking for WordPress


Booking Calendar will enable online booking services for your site. Visitors to your site will be able to check availability of apartments, houses, hotel rooms, or services you offer. They can also make reservations and appointments with the ability to choose from multi-day, single day, or by the hour booking. Your clients can even view and register for upcoming events.

P2 – Microblogging with WordPress


P2 is a theme for WordPress that transforms a mild-mannered blog into a super-blog with features like inline comments on the homepage, a posting form right on the homepage, inline editing of posts and comments, real-time updates so new posts and comments come in without reloading, and much more.

Event Organiser – Create and maintain events using WordPress


Event Organiser is a WordPress plugin that allows you create and maintain events, including complex reoccurring patterns, venue management (with Google maps), calendars and customizable event lists. This can all be done through an intuitive user interface, which allows your to view your events in the familiar WordPress list or view all occurrences of your events in a calendar page in the admin area.

WeReview – WordPress Review Engine


WeReview turns your WordPress site into a powerful review platform. By leveraging WordPress custom post type feature, it allows you to create review pages for products and services with stars-ratings. It comes with multiple review page style, which will give your review page a different and exclusive look.

Yet Another Photoblog – Photoblogging with WordPress


Yet Another Photoblog is a non-invasive plugin that converts WordPress into  a full-featured photoblog system. It supports on-the-fly thumbnail generation, EXIF data processing, and works with nearly every theme.