Delivering a project and presenting to a multi-level audience

Delivering a project to a client is the hardest thing in the real world scenario. One has to make sure that the client meets all the requirements from the deliverables’ as the project would be in a ready state when it is about to be delivered. One should present a project in a way that satisfies the client’s need. So presenting your product or a final project is also a skilled task and a form of art. “80 percent of success is just showing up”(Woody Allen, 2011). improved-project-delivery

http://www.ronrosenhead.co.uk/wp-content/uploads/2012/05/improved-project-delivery.jpg

For a successful delivery of a product, there are many aspects that needs to be adapted. One should have already done a great analysis on requirement gathering, design and development. One of the most important things is to take confirmation from the client about exact requirements to be implemented and delivered which can make delivery process smooth and less contradictory from a product specification perspective.Quality requirements contribute to the success of agile and traditional project management projects. The requirements definition process followed in a traditional project management framework and the features-based story boarding that is typical of agile approaches are different, but they also have many similarities(Nancy Y.Nee, 2009). One should present all the aspects of feature that are developed and delivered by the team and how they are going to impact the business. Presentation should be focused on the impact of the business after the delivery comes into the picture. As for the client, major expectation is to boost their business and that’s the purpose of the project. So rather than going into the technology stuff, relating a delivery to business growth and end user satisfaction is a good bet. There are most likely cases where a client might not like the feature, but one should be prepared for such situations. Make a check list where there is a probability of conflicts. When this kind of situation encounters, one should have a logical and a practical reason to cover those features. At the time of presenting the final delivery, audience can be a marketing team, business team or a sales team. So the presentation should have a content that can cover everyone’s expectation.

Apart from the project presentation, there has to be a list of deliverable including all the documents and the form of deliverable where one can also get the confirmation from the client that these are the things that are delivered for the phase. This is because there are many cases where conflicts are likely to occur about the deliverables. Also, there has to be a document of requirements, that are matched with the client and the requirements which do not get delivered due to a list of reasons mentioned along with it are known as out of scope requirements.


References

  •  Nee, Nancy Y. “Ensuring Requirements Gathering Success in an Agile Environment.” ESI Horizons. July 2009. Web. 15 March 2010.
  • ESI International. Successful Solutions Through Agile Project Management. Retrieved from http://bit.ly/1pMFVgL

Handing off a project to a client; what are the risks and challenges?

After all the discussion, requirement analysis, design, development and testing there comes an important phase known as the Release phase. This phase is the most important because, result is the only thing to evaluate the work done for the client. There are many risk attached to this phase.

What are the risks and challenges of Handing off a project to a client?

  • Meeting all the requirements:

Always make sure that the project delivery meets all the requirements before handing a project.

requirements_toonImage Source

Project delivery should consist of all the requirements given by the client and should be in working condition that is error prone. As clients have an expectation of the requirements discussed before, it should be matched with the delivery. Quality requirements contribute to the success of agile and traditional project management projects(Nancy Y.Nee, 2009).

  • Change of Requirement at last time clashes with implemented requirement:

One should make sure that the requirements are clearer before handing off the project to the client. There are many real world cases where the client would want some feature to be implemented at the very last moment and implementing those features would results in conflicts with the already implemented features.

dilbert_requirements_changehttp://c2reflexions.files.wordpress.com/2011/05/dilbert_requirements_change.gif

There can be a discrepancy on the requirement explained by the client and the requirement implemented by the developer. So it will be a good practice to verify all the requirements before handing off the project.

  • Project should in Scalable Mode for future:

A project delivery should be scalable for the future requirements. In most cases, client will definitely demand more features to be included in the future. If the project is not well developed then one needs to revamp the already implemented working features just to accommodate the next requirements. Next requirements can ideally be new set of features or it can be a demand to support more number of users.

scalabilityhttp://cse360fall13.wikispaces.asu.edu/file/view/scalability.jpg/451163368/scalability.jpg

This kind of delivery can cause a problem for both, especially for the client because updating the existing features can cause a change in the accessibility for an end user.

  • What can be the deliverable:

It is a good practice to make a checklist of deliverable before time and start preparing according to the checklist.

Business man with checkboxeshttps://www.binkd.com/wp-content/uploads/2014/02/Checklist.jpg

There is always a haste at the last time when the release date/ delivery date is almost due. So there are chances to miss out something that is necessary. Hence making a checklist prior to the delivery will help to manage all the deliverable items to be structured and well-formed without forgetting any important thing. “Good checklists, on the other hand are precise. They are efficient, to the point, and easy to use even in the most difficult situations. They do not try to spell out everything–a checklist cannot fly a plane. Instead, they provide reminders of only the most critical and important steps–the ones that even the highly skilled professional using them could miss. Good checklists are, above all, practical.”(Atul Gawande, 2013).

There is always a risk and challenge attached to a project hand off activity, but to be on safer side it will be a good practice to stay in a good shape to avoid many things. This can be achieved by keeping the important aspect in mind and avoid as much rush as possible at the last time.


References

  • “‘The Checklist Manifesto’ by Atul Gawande”. Newsday. Retrieved 29 March 2013. Retrieved from http://bit.ly/1tIf7tq
  • The Economic Times, “Definition of Risk Management”. Retrieved from http://bit.ly/1wjcchv [accessed on Dec 2013]
  • ESI International. Successful Solutions Through Agile Project Management. Retrieved from http://bit.ly/1pMFVgL

What five technical skills are employers seeking? What five soft skills put you on top?

There are mostly 2 areas where new candidates are evaluated, one is Technical Skills and the other one is Soft Skills. In today’s fast growing Information Technology (IT) world, preference to either of these skills depend on the position that the candidates are looking for.

Let’s start with the most sought technical skills in a candidate.

  • Proficiency in any of the programming languages

There are tons of programming languages which are already ruling the IT world, and tons are introduced every day. So it is understood that a candidate may not have experience with all of them. So in most cases, candidates are expected to be expert in atleast one of the programming languages. Therefore if a candidate is given a problem, he/she can atleast provide an abstract solution in a language of their own preference. These skills will be tested in coding challenge part of the interview.

  • Core concepts of data structure and algorithm

All the candidates who belong to the software development, or core computing field are expected to have the knowledge of atleast the basic concepts of data structure and algorithms. In this way, the employer can evaluate on how a candidate will perform the efficient implementation which requires the knowledge of data structures and algorithm that are best suitable to provide specific solution.

  • Base of mathematics

Candidates are required to have the knowledge of mathematics as it is one of the basics of all the computation and problem solving skills.

  • Technology awareness

Candidates are not required to be expert in all the areas, but they are expected to be updated with what is happening around the IT world i.e. the latest technology which can be any programming language, database technology or any new innovation in the field of computer science.

  • Digital footprints

Now a days, there are so many ways that the candidates are expected to share their in order to get eligibility for interview process due to high number of applicants. Digital footprints come into the picture in this case while presenting yourself in form of GitHub Repository, Technical Blogs, LinkedIn profile.

Top most soft skills that are expected from an IT professional.

  • Good Team Member

Any software product or IT solutions is the result of team efforts. The quality of productivity of a team and a company also depends upon the working environment. So a candidate can be a good fit if he can present himself as a good team member apart from having technical skills.

  • Good Communication skills

IT world has spread across the globe. There are people who come from different parts of the world and work as a team. There are chances of having an international client, so having good communication skills is an added advantage.

  • Complex problem solving skills

One can face many situations at any position where great problem solving skills are required which can be technical or non-technical. One needs to have appropriate skills not only to find the best but the appropriate solution for such a situation.

  • Positive attitude

Attitude of a candidate matters when it comes to a working environment and also when it can impact on the client or company reputation. A positive attitude can help keeping the working environment fresh and positive which is a must for any industry.

  • Working well under pressure

Some of the problems like production issues, client complains and infrastructure issues are likely to be faced by any candidate, so he should be well prepared and should be able to sustain and work efficiently in this kind of situation.

Well, an employee can grasp a remarkable growth with such professional and personal skills. The points mentioned are easy to implement.

Social Media and Branding

2014-05-06-socialmediaImage Source

According to Merriam-webstar social media is defined as:
forms of electronic communication (as Web sites for social networking and microblogging) through which users create online communities to share information, ideas, personal messages, and other content (as videos).

Social media can be considered to be of an opportunity to express oneself with the liberty of thought and expression. In today’s’ tech savvy world, such a platform can be beautifully used to brand oneself on a global scale within a short time frame. By branding a person I mean to advertise or to market a persons’ skills, expertise, knowledge, ethics and goals on a public domain. This type of communication can also be considered as a better means for communicating, sharing and interacting with people. Social media is generally considered to be an informal way of creating a brand image either of a company or an individual, however, popular websites like LinkedIn, have made a significant change in this viewpoint and made social media to be a professional hub. Social media gives you the power to advertise yourself in a global scale. It broadens a persons’ marketability and reach in today’s’ highly competitive market.

What is Branding?

In my perspective branding is something which lays or pins a mark in the minds of people. Branding is spread widely irrespective of the social barriers and cultures as portrayed by the image below. Successful branding on a social media platform means to become omnipresent in the mind of the user. It is important to catch the attention of the user and divert the traffic towards the targeted brand (not necessarily a company!).

154901Image Source

Why does one need branding?

Whether you are a multimillion dollar firm or a farmer back in India, social media can still affect the nitty gritty of how your business or professional career goes ahead. For example, consider yourself as the owner of a food truck in San Jose serving the best Tacos and Burritos of the city. You may very well be famous in the area that your truck is placed and most of the time rely on ‘word of mouth’ to spread the name of your brand, however, with a simple page on Facebook or Twitter, people may start tagging themselves or their friends on their status updates which in turn motivates their friends to come and check out your place. This is the power of branding on a social media platform!

The question now arises is that why does an individual need to brand himself?

  • Stand out from the crowd:  Establishing relevant and highly valued differentiation from the rest of the crowd by unique creativity and personal style.
  • Market his skills: Branding on a social media can be used to market ones skills in a broader sense. The aim is to let people know what all you have done in your professional life as well as your personal life. This is how a future employer may decide whether to hire you or not.

How does one do that?

Creating a personal brand starts with some research into your talents and interests, and how you can make a unique contribution.

  • Through Networking: Creating a human network on any social media will require time and effort on your part but the benefits that you will reap would be priceless. As you keep on connecting with people and building relationships, you increase your brand name and make sure that people remember you and you brand (in case of a firm).
  • Be Interesting: Nobody likes to read a 10 page technical paper that has words that go over your head. Branding is more of an art form and as in any art form, it is important to keep the readers’ attention focused on what you want to say. Keeping the blog or status update interesting does the trick.
  • Be innovative: If you keep on putting up something that others have already posted then your readers may end up getting bored. Being innovative in your posts or feeds makes your readers keep following you. Moreover, this keeps you motivated to follow your passion keep on working to innovate. For a working professional this may mean publishing a new IEEE paper now and then or patenting some kind of a new technology, this will definitely get the attention of recruiters and may very well end up getting the individual a job offer!

References

  • Social media. (n.d.). Retrieved December 2, 2014, from http://bit.ly/1moRKYK

 

LinkedIn Etiquette and How to network?

What is LinkedIn?

how-to-use-linkedin-for-businessImage Source

At certain point of time, every one need a big platform either to expand their business, either to grab the best opportunity available in the world, either to get inspired by the great business mind or to keep themselves updated with the market, business world. “You have to perform at a consistently higher level than others. That’s the mark of a true professional”(Joe Paterno). So to sum everything up, a professional needs network to connect to the business world and the great mind behind the business around the world. LinkedIn is the network that satisfy the each and every aspects explained above. LinkedIn is the one of the biggest professional network that is used by huge crowd of professionals from the biggest to smallest companies.

LinkedIn is the mirror of your professional persona. So use of LinkedIn also comes with some etiquette that a person should adopt. These starts with your profile picture in LinkedIn considering you are using a good email address. Profile picture should be a smiling photo that conveys your energy and penchant. Due to the mind set of other social networking sites, one should not put any random profile picture on LinkedIn.

598235-1119-22Image Source

Another thing that should not be carried from other social networking sites is the number of connections. It is not about the popularity but it is about your professional network and people of your professional supports. Linked In team has provided many section that can make your professional image popular. Headline, location, Summary, Experience, Honors & Awards, Educational Background with detail up to courses and project description, Certification, Skills, Recommendation, Publications etc. One cannot find any relevant category that do not cover professional aspects of any person from any field.

linkedin-info-graphic1-how-to-build-linkedin-profileFacebook-profile

Image Source                                                             Image Source

All categories that mentioned above is to putting your work and education in words. LinkedIn has introduced new features to let you display your work that you have done. One can show off with either in form of presentation (using SlideShare), blog post, videos, eBook on the LinkedIn profile itself. Your visual portfolio speaks more words than actual words in your portfolio. One thing that also needs a special attention is the endorsement part of LinkedIn. One should not ask endorsement from random people who have never worked with you or are not from the same professional back ground. Again it is not social network where getting more likes makes a person popular.

Apart from filling up and maintaining the content of your profile, one should also adhere some etiquette for making new connections and growing networks. One should be clear on the industry, profession, location, organizational role, gender, company size and other demographic data before searching for the connections and groups on LinkedIn. LinkedIn has provided advance search to make sure people’s search falls into specifically to their domain of interest. Even one should make sure to add meaning full message to connect someone rather than using default message template provided by LinkedIn. (ex. “I’d like to add you to my professional network on LinkedIn”). Growing your network has to be in some manner. One should not ask for a job an hour after meeting them at a networking event.


References

Agile tasks lists, what does “Done” mean in Agile?

In Scrum and Extreme Programming, a unit of work which is measured in Hours. Agile has user stories which can be considered or decomposed into the number of tasks. A task should take four to sixteen hours. Some user stories can also be considered as a separate task. The definition of a task may vary from practitioner to practitioner. Task should not be very short to take less than a day and it should not be very long to take more than 3 days. So if a task is very short then similar short tasks are grouped together and if it is very long then they are broken into the reasonable ones.

Just like the user stories, tasks are also written down on the cards. User stories are in a language that a customer can understand. Whereas tasks are written in a technical language that a developer can understand. All task lists are the detailed plan for the iteration.

Task is assigned to a developer and for doing that a developer needs to give an estimate to complete the task. So all the tasks have its estimated time limit assigned to the developer.

simple-kanban-boardImage Source

After the estimation and assignment of the task is over, all the task cards go to the Task Board. Task Board also has some type of column structure to keep the track of the status of the tasks. In a broader manner, it has “To Do”, “Doing” and “Done” columns. The task board can be a physical thing or an online application. So a “To Do” column contains cards of the task that are to be done. They are not even in the progress mode. A “Doing” column contains cards that are in progress and it means there is someone who is working on it. So any card that is being worked is placed here. A “Done” column contains tasks that are done. So it leads to a discussion that needs to be considered as “Done”.

3219513356_b6e69748a3_z-514x385Image Source

There has to be some kind of checklist that is specific to a project. So when this checklist is completed, the task should be considered as “Done”. This checklist is not only for focusing the development part. This checklist contains an item for which you considered that work to be in a state of ready to be shipped. There are items like “code review done”, “test cases executed”, “documentation done” etc.

So with the use of task cards and the stages, it is easy to manage tasks, assign tasks and track them.


 References

  • [1] Layton, Mark. Agile Project Management for dummies. [2] http://www.mountaingoatsoftware.com/agile/scrum/task-boards
  • Maiden,N , Wever,A. (2011). Requirement Analysis:The Next Generation. IEEE Software, pp. 22–23. doi:10.1109/MS.2011.41

What is an Agile Sprint Retrospective?

For any solution, there is a need for a better evaluation and a better plan for activities in order to achieve the final goal. Sprint retrospective is about this. It is a meeting where scrum master, product owner, and development team start evaluating about the last sprint. They discuss the work done by the team, analyze it and discuss the way in which it is done. After getting enough insight into the past activities from the discussion, they will have more knowledge about things that went wrong and corrections that needs to be made.

These meetings are meant for discussing actions but not the justification. As a result of these meetings they can improve or change their future plan accordingly for the next sprint. Scrum retrospective meetings force every one to know where the sprint status stands and how well it is being carried out. It also forces how to incorporate future change with current status.

A retrospective meeting takes place after the sprint review meeting. There are many things that need to be focused, but among them the basic three things are:

1) What went well during the spring?
2) What would like to change?
3) How can we implement that change?

So, to cover all of the above questions everyone has to go through almost every aspect of sprint activities. These aspects consist of results, people, relationships, processes, tools, and require improvement of future road map.

RetrospectiveImage Source

These retrospective meetings are of shorter span, but they should be carried out after every sprint review meeting. All team members should participate and give their input during the meeting. Sometimes the scrum master has to take the initiative to make every one participate as more views and inputs can make the process clearer which results in better planning for the next sprint.  It’s an especially important opportunity for the team to focus on its overall performance and identify strategies to improve its processes. The retrospective meeting is not considered to be healthy if the outcome of this meeting does not have a plan to improve.

For a healthy meeting, there should be a participation from all the team members in the discussion, the results of the last meeting should be discussed, the list of action plans should be created and all the action plans should be for a team and not for an individual.

There are many good practices that one can follow to make the retrospective meeting meaningful and interesting.

Some of the examples are as follow:

  • split teams in small groups and keep changing the group member every time
  • have a backlog of retrospective actions with done/ not done
  • write output at some place so that every one can see it or also one can send email to everyone so that it is available to everyone
  • try to change the flow of retrospective each time and add new flavors to meeting.

So Retrospective meeting is all about analyzing the past, plan the future and encourage everyone for the next sprint.

 


References

  • Scrum meetings, Scrum Basics. ( 2011, Aug 20). Retrieved September 24, 2014 from http://scrummethodology.com/scrum-meetings/
  • Maham, M. “Planning and Facilitating Release Retrospective”,  Agile , 2008 Agile’08 Conference, 4-8 Aug. 2008. doi:10.1109/Agile.2008.60
  • Agile Management and the Sprint Retrospective By Mark C. Layton from Agile Project Management For Dummies

Agile Team and the effectiveness of Backlogs

One does not experience the effectiveness of the Agile Team if the team has a hierarchical structure led by a manager having a multiple layer of such authority. Traditional software development teams are considered to be command and control patterned structure. Traditional team has roles defined as per their functional tasks. You can easily see roles based on their functional tasks like programmers, testers, analysts, etc. The manager assigns the work to the respective team members according to their roles. Communication between many layers are indirect which lacks involvement of every member in an overall project.

Overcoming the flaws of traditional team formation, Agile Team formation emphasizes on the people and social interactions. The charm of the Agile team is that all the members are at the same level in a team. A team member can actively go across their skills and can participate in all activities as a part of the project development. Management layer is considered to be a facilitator and coordinator rather than a controlling entity.

Below is an image will explain that you read above.

Image Source

Sharp and Robinson have conducted study of five mature XP teams. Their major focus was on characteristics of XP teams, collaboration and coordination in XP teams, the effect of different organization cultures on the practice of XP and the social aspects of XP’s technical practices. Their study has described five characteristics possessed by an Agile Team.

  1. Respect both, an individual and team level
  2. Responsibility on both an individual and team level
  3. Maintaining a quality of working life
  4. Confidence in their own abilities coupled with constant re validation and reaffirmation
  5. Trust, that underpins the other four.

Scrum is among the best Agile practice that has adapted Agile Methodology. SAF (Scaled Agile Framework) is based on Scrum. Prototype of SAF Agile Team roles and responsibilities are:

  • Product Owner : Define and prioritize the product backlog, elaborate requirement to a team, accept completed stories to baseline
  • Scrum Master : facilitates team interactions, helps drive the team’s efforts to continuously improve
  • Agile Team Member : Developer, tester, Analyst, System Architect, Technical lead etc.

Lets look at Scrum Practice in more detail. The product backlog is an important artifact of Scrum. All the requirements of product are converted to an organized list which is called a product backlog. These requirement lists contain all the requirements for the product. It is a kind of a to do list which is ordered based on some factors like priority and product development flow. In each iteration of Scrum, the scrum team with a product owner determines a specific list from a backlog list to get it done for the iteration.

BacklogsImage Source

A backlog can be written on board if team members are working at the same work place and there are many tools to keep track of the backlogs for the team whose work place is not at the same geographical area.

Product backlogs provide more visual information and accurate information to a team member. The use of backlogs encourage more collaboration and feedback. This feedback can be from technical personal or it can be from any businesses personal. This way everyone can provide their input and make process more clear to everyone. More clarity surely delivers an effective product. A backlog can also help a team member to discuss more about plans and strategy to meet the requirements. So accurate planning leads to full-fill all deadlines in a timely manner. So backlogs play a major role for effective product delivery in a timely manner following Agile Methodology.

 


References

  • Agile Teams, Scaled Agile Framework. (2014, July 15). Retrieved September 28, 2014 from: http://scaledagileframework.com/
  • Hoda, R., Noble, J., Marshall, S. (2013) Self-Organizing Roles on Agile Software Development Teams. Software Engineering, IEEE Transactions on (Volume:39 ,  Issue: 3 ) pp. 422 – 444. doi:10.1109/TSE.2012.30
  • The Scrum Backlog, Scrum Basics. (2011, Sep 5). Retrieved September 18, 2014 from: http://scrummethodology.com/the-scrum-backlog/

 

 

 

WHAT IS AGILE AND WHAT ARE USER STORIES?

For every software product/IT solution, there has to be some planning and management activities to be carried out to meet requirements in a timely manner. This activity is called methodology which has seen many changes from the past based on ever changing IT world.

Before going into Agile lets look at few earlier approaches so-called methodologies that major software development companies follow with their brief (kind of dis advantages).

  • Code-and-Fix
    It is a risky methodology in which developer has to code without having a separate design phase. They have to find bugs and then the whole product would get shipped.
  • Waterfall
    In the waterfall model, all the phases are precisely defined and separated. There are mainly 6 stages for the life cycle of software development.
    Requirements->Design->Development->Integration->Testing->Deployment
    It is one of the widely used methodology in IT industries. The major drawbacks with this model are difficulty in moving from the current phase to the previous and the isolation between these levels. The following image will illustrate the same.

 

WaterFallShortComingsImage Source

  • The spiral model
    It is an incremental and iterative approach. Delivering small chunks of code in an incremental manner and planning according to the feedback given on delivery in an iterative manner. The spiral model comes with different vision in software development which is kind of changing the old methodology.

There are many light weight methodologies which were introduced like “Unified Process”,  “Extreme Programming” , “Rapid Application Development”. They all promoted iterative delivery and incremental changes based on feedback. All of the above methodologies gave rise to a new methodology known as “Agile Methodology”, which is more flexible, efficient and team-oriented.
Agile Methodology has a charm of accommodating the requirements that were not discovered before development. It also capitalizes on taking feedback from the delivery and change of design in the next delivery which was not before in conventional methodology.

Image Source

Agile methodology can accomplish this kind of things that has high probability in the real world scenario. Also, the interaction of business people and the developers happens on regular basic which clears out the gist of requirement understanding in perspective of a client as well as developers. In agile all the phases of waterfall model are mixed together and performed for each iteration all together.

AgileImage Source

Due to the flexibility of agile methodology, it is easy to apply in any kind of systems like web application, mobile application, business intelligence systems, life-critical systems, embedded systems, etc. also in the domain like finance, retailers, health care, government, defense, etc. Many companies commonly use selected agile techniques such as unit testing, pair programming, and iterative development even if a complete methodology is not yet embraced.

In conventional methodology, many times the developers are stuck in analysis phase, and they have to wait for it to finish in order to begin development. This “Analysis paralysis” phase is discarded in Agile as development can start while they are gathering requirements. One more thing that comes with Agile is called User Stories which has really made documentation quite an interesting task. In conventional methodology all product with their requirement will have a heap of documents. Agile has reduced the overhead of documentation and maintaining importance at the same level by introducing User Stories. The user stories form a set of work that should be followed in order to complete the development process. User stories are the requirements, descriptions or explanation of feature that a client/customer wants in their product. User stories are kept to be as simple and short as possible.
User stories are of the following form :
Title< a name of the user story> As a <type of user>, I want <some goal> so that <some reason>.
Consider these user stories like sticky notes arranged on the walls. These notes makes everyone to discuss about every feature which according to me is the best efficient way of product/software development.

user-story31Image Source

In conventional methodology, documentation focus was more on writing them down and keeping them in many forms of files. This became difficult to understand. In Agile, these stories are short and is written in a layman’s language making them easy to understand.


References

  • Maher, P. (2009). A weaving Agile Software Development Techniques into Traditional Computer Science Curriculum. IEEE Software, pp. 1687–1688. doi:10.1109/ITNG.2009.175
  • Rees, M.J. (2002). A feasible user story tool for software development. IEEE Software, pp. 22–30. doi:10.1109/APSEC.2002.1182972