Delivering a Project and Presenting to a Multi-Level Audience

Delivering a project to the client involves many substantial tasks such as client training and presenting the project functionality and details in front of multi-level audience. When I was working on an Oracle based project, the release process generally used to involve signing off the project agreement document, project presentation, client training and post-release support.

Delivering a Project

Software firm and Client organization or individual client will have an agreement document that will state the requirements, budget and schedule of the project. As a part of release process, representatives of both Software Company and client will have to go over the agreement document and sign it off. Any issues related to budget, functionality or schedule are supposed to be addressed when the product gets released. The process of resolving the issues if any will continue throughout the support phase of the project.

Effective Project Presentations. Egeland (2010). Retrieved from Retrieved from http://bit.ly/1v2vBgb

Effective Project Presentations. Egeland (2010). Retrieved from http://bit.ly/1v2vBgb

Delivering the project also entails functionality support and accommodating changing requirements. Functionality support involves the support from software firm with respect to functionality that is not working or is expected to work in a specific way. If functionality is not meeting the Client’s requirements, the software company is held liable for making the necessary changes.

Presenting to a Multi-Level Audience

During my tenure as Oracle Apps Technical Consultant I offered many technical presentations. The audience for these presentations used to be multi-level ranging from project manager to representatives from Sales team. Needless to say, software developers and representatives from testing and QA teams were also used to be part of the audience. In order to make such kind of multi-level audience presentation work, I developed a strategy after giving the entire process a serious thought.

In order to make multi-level audience to understand the project, the presentation should not include only the technical details. Of course the technical aspects should be put forward but one needs to use layman terms. The presentation should cover technical, business and functionality aspects of the software project.

Presenting to Multi-Level Audience. Hodge (2014). Retrieved from http://bit.ly/1vGTWMt

Presenting to Multi-Level Audience. Hodge (2014). Retrieved from http://bit.ly/1vGTWMt

The target audience may include COO, CEOs. It may also include recent college graduates who are more interested in understanding how stuff works. CEOs and COOs might just expect the speaker to present the business directions and client representatives might just expect the functionality side of it.

The Speaker has to maintain the balance in order to make the effective presentation. The speaker needs to explain the functionality of the project not going into unnecessary technical details. At the same time he needs to touch the business benefits the product is going to give. For a layman to understand the project, speaker also needs to summarize is non-technical terms. The functionality can be effectively explained with the help of diagrams, charts.

References

Hodge (2014). Excellent project scope in five easy steps. Retrieved from http://bit.ly/1vGTWMt

Egeland (2010). Effective Project Presentations. Retrieved from http://bit.ly/1v2vBgb

Advertisements

Risks and Challenges after Handing a Project to the Client

I think handing a project to the client is just a beginning phase in life-cycle of that project. I have worked closely with all the SDLC phases of software development. I have observed that once a project is handed over to the client, the first and foremost challenge is client training.  Client needs to understand the usage pattern of the project. The next challenge is deployment. Developer develops the product keeping in mind a certain way of deployment configuration. Client environment might not support all those configurations. When I worked as software developer for more than three years I would say, following are the risks and challenges after handing a project to the client, which I came across.

Project Release Management. Special Purpose Equipment (2013). Retrieved from http://bit.ly/1z7i0IP

Project Release Management. Special Purpose Equipment (2013). Retrieved from http://bit.ly/1z7i0IP

Client Training: May it be an encryption product, may it be a game on android store, clients need training as to how to use the product. Though software best practices suggest on writing elaborate functional and technical specifications and user guides there remains some gray area which clients are unsure of. Client training is one of the most challenging part after handing over the product to the client. Client can fully make use of the product only if client gets to know how the project works thoroughly.

Changing Requirements: After the project is handed over to the client and client starts using it, client might come across some of the requirements those are no longer valid. Some of the requirements those were stated earlier might have been changed for client. In case of these changed requirements, the developer team should support these requirement and try and modify the code accordingly. Technical support team for a project does this job of taking care of changing requirements.

Risks and Challenges. Image created using Microsoft Word

Risks and Challenges. Image created using Microsoft Word

Technical Support: Once the users start using a product they might come across some issues with respect to functionality. If the product is released recently, some companies try to extend the infant support. In the infant support period, the issues need to be taken care by the technical support team of the company. Depending on the priority of the issues, issues get addressed within the time frame ranging from one day to six months. Product developed by one software firm might be supported by another software firm after it is released to the client. This is called product lifetime support wherein, the supporting team takes care of customer issues if any.

Operational Risks: After the project is released to the client, there are many operational risks involved as far as the support team is concerned. Some of these risks are: (software-testing-help, 2013)

  •  Failure to address priority conflicts
  •  Failure to resolve the responsibilities
  •  Insufficient resources
  •  No proper subject training
  •  No resource planning
  •  No communication in team

References

Software-testing-help (2013). Types of Risks in Software Projects. Retrieved from http://www.softwaretestinghelp.com/types-of-risks-in-software-projects/

Special Purpose Equipment (2013). Project Management. Retrieved from http://bit.ly/1z7i0IP

Top Five Technical and Soft Skills

Software industry is growing rapidly so are the programming paradigms and languages. One needs to keep one’s skills up-to-date in order to sustain and grow in this industry. Soft skills are also very important part of career growth. When I was working with Infosys Limited in India, I experienced the importance of soft skills. I learnt that for a project to succeed, all SDLC phases must succeed. Requirement gathering phase needs the developer to have excellent communication skills. Coding and Testing phases need the developer to have outstanding technical skills. Let us first talk about the technical aspect of it.

Technical skills are the most highlighted subject in the resume of a software developer. Knowledge of programming languages, software development life cycle, hardware, operating systems and other computer related terminologies come under technical skills. Since different companies use different programming languages for software development, specializing in specific programming languages is usually the trend (thinkvidya, 2014). Technical skills of a software developer are constantly assessed and tested by their managers and also their co-workers.

I believe that following technical skills are needed for a student to have in order to get a job with good profile.

  1. Java/JavaScript: Java being the platform independent language, comes with vast capabilities. It is a very elastic language and has a wide range of applications. Java is being used in almost every company and Java programmers are needed worldwide. JavaScript is a scripting language and is also being used worldwide.
programming languages

Popular Programming Languages. Lap-Trinh (2014).Retrieved from http://laptrinh123.com

  1. C/C++: System level programming is predominantly completed using C and C++. These two languages are needed worldwide. These languages are basic skills to have for any programmer to grow in software industry.
  2. Hadoop/Map-Reduce: In modern era the data storage and processing requirements are growing exponentially. Hadoop/Map-Reduce skills are required for handling and processing.
  3. Spark-Shark: This is an in-memory big data processing system which can handle specific applications not being handled efficiently via Hadoop/Map-Reduce.
  4. I-OS / Android: With mobile gaming industry flourishing, I-OS/Android development skills are needed for one to have.            Along with technical skills, developers should possess soft skills. Soft skills are really necessary for developers to have in order to complete a software project successfully. I found following soft skills to be extremely important.
Soft Skills

Soft Skills. Image Created using Microsoft Word

  1. Adaptability: Diverse environments demand adaptability. One day you are working in in enterprise software domain and next day you are working on open source. According to me, one needs to have adaptability.
  2. Zeal to keep learning: One should have zeal to learn new things in order to grow in career.
  3. Business Skills: Marketing and business skills are really helpful for career growth.
  4. Initiative: I think taking lead and initiative is what makes you different from other people. (Crain, 2013)

In conclusion, one needs to have outstanding soft skills and relevant technical skills in order to succeed in career and life.

 References

Thinkvidya (2014). Top five skills every software developer must have. Retrieved from http://bit.ly/1yt9Met

Lap-Trinh (2014). Popular Programming Languages. Retrieved from http://laptrinh123.com

Crain (2013). Top 5 soft skills for success. Retrieved from http://bit.ly/1CxkzcY

Social Media and Branding

Social media is essential for business these days. Social media and branding go together like peanut butter and jelly.Branding on social media isn’t just about setting up your accounts and getting a pretty design across each one. Every single post you make, every single reply you post, every single piece of content you share is building your brand. Your social media personality should be a reflection of your business personality, and that should stay consistent from day to day (Gilbert, 2014).

 Fig 1.1 Brands and Social Media [3]

Fig 1.1 Brands and Social Media. Clark (2013) Retrieved from  http://bit.ly/1yany89

Personal branding is merely a way of selling your skills, and it’s never been more important, thanks to social media. Social media has given us a platform to broadcast our personal messaging to accomplish our goals. For professional purposes, we have LinkedIn to connect with others in our industry. For sharing with friends and family, there’s Facebook. Pinterest is where we show off our passions. Instagram is for visual self-expression (Gilbert, 2014)

What are the benefits of social media? The first notable fact is the large market share. Social networking websites contain the largest amount of connections and command the most attention from their user-base.

Now, Lets look at some strategies for reaching mass audiences through social media branding: (Carol, 2014)

  • Develop a Social Media Platform Strategy: brands should identify which platforms their target audiences frequent most. For example, Pinterest has a predominantly female user base, and therefore, if a brand is trying to attract a male consumer, then a different platform should probably be prioritized.
  • Create Captivating Content with High Share Value: Content with high share value is more likely to create a viral effect, exposing brands to wider audiences. Users tend to share content that is less promotional and more personal. Therefore, brands need to look for content inspiration beyond the products.
  • Optimize for Mobile: Business should ensure that all content looks great and is easy to share on small screen devices such as iPads and smart phones. The number of people accessing social platforms via mobile devices continues to increase rapidly.
  • Get Influencers and Users Involved: Influencers and bloggers tend to have a lot of social clout. Brands should partner with the ones who are on-brand for them, and create interesting content and initiatives, utilizing the influencers’ large audiences to create buzz and awareness. For example, an influencer’s involvement can be extremely helpful in the case of a brand hosting a contest or giveaway around a key sales period (Carol, 2014).
 Fig1.2 Personal Brand

Fig1.2 Personal Brand. Osborne (2014). Retrieved from http://linkd.in/12d49qe

My Experience with Social Media and Branding:

Well, I am a very close witness to a success story about Branding on Social Media. One of my very close friends recently started a start-up.

They work on big-data security. The founder used LinkedIn, Twitter and Facebook to catch an eye of potential investors. With the strategy they followed regarding branding through social media, they not only were able to get good investments but also to hire top talent.

Gilbert, S (2014, June). 7 Rules for Social Media Branding. Retrieved from http://bit.ly/13D4R0i

Carol, H(2014, Nov). How Older Brands Can Reach New, Younger Audiences Through Social Media Branding. Retrieved from http://huff.to/PtAz9y

Clark, D(2013, June). Open View Labs. Three Tips for Making Time for Social Media. Retrieved from http://bit.ly/1yany89

Osborne (2014)(LinkedIn). 5 Tips to Build Your Personal Brand. Retrieved from http://linkd.in/12d49qe

LinkedIn profiles : How to use them to market yourself and to network?

With over 300 million members, LinkedIn is the world’s largest professional networking site. When searching for a new job, having a strong LinkedIn profile is very important for enhancing your visibility, networking with other professionals and building your own personal brand.(Christine, 2014)

Fig 1.1 Tips to create a great LinkedIn Profile

Fig 1.1 Tips to create a great LinkedIn Profile Christine (2014). Retrieved from http://bit.ly/1yWOMwg

In this blog, we will talk about few tips to build a good LinkedIn profile, to use the LinkedIn profile to network and to market yourself.(Christine, 2014)

To Build an Effective LinkedIn Profile

1.  Include a professional picture: LinkedIn profiles with pictures are more likely to get clicked on than ones without a photo. Your LinkedIn photo should be a professional head-shot that accurately represents you.(Christine, 2014)

2. Use a strong headline: The headline is the most important part of your LinkedIn profile. It should grab the viewers’ attention and make them want to find out more about you. State your specialty, include important keywords and be specific and creative. Example Headline- A person who likes to work in systems and love to do coding.Dream project is a system project from scratch development.

LinkedIn-profile

Fig 1.2 LinkedIn Profile .Osborne Tom(2014). Retrieved from http://linkd.in/12d49qe

3. Detailed summary section: Having a detailed summary section in your LinkedIn profile helps increase the chances that your profile will pop-up in search results. Make sure to include key words in your summary section that are closely related to the job that you are currently in or the position you are currently seeking out.(Christine, 2014)

4. Ask for recommendations from colleagues: Recommendations give recruiters and hiring managers a sense of your work ethic and your ability to work well with others. Well-written recommendations will help boost your reputation. One way to secure recommendations is by offering to write one in return.(Christine, 2014)

5. Join LinkedIn groups to improve your visibility:

 Fig 1.3. LinkedIn Groups [2]

Fig 1.3. LinkedIn Groups. Osborne Tom(2014). Retrieved from http://linkd.in/12d49qe

Joining LinkedIn groups helps increase the visibility of your profile. It increases the chances that your profile will be viewed by the right audience. A good place to start is by joining your Alma mater’s official group and monitoring the discussions that are taking place. Also consider joining groups that are related to your field.(Christine, 2014)

6.Posting Status Updates: keep in mind that LinkedIn is a “social” network. Use LinkedIn to share articles that you find interesting, or things that your company is doing and that you are proud of. This will help position you as an individual who not only understands how to use LinkedIn as a professional platform, but also to connect with others in your network on a more personal level. (Christine, 2014)

To Use LinkedIn for Building Your Personal Brand

To effectively use LinkedIn for building your personal brand, I will share five useful tips (Osborne, 2014)

  • Profile Pictures: People are a lot more comfortable interacting with accounts that feel human so add a photo that is 70-85% your face.(Linkedin Inc, 2013)
  • Bio-data:Try to keep opening sentences across all social profiles the same. It’s good when people try and find you and also for search engines.Try to keep things short and to the point. Too often you see people’s life stories on LinkedIn and people simply just click away when presented with lines of text so cut the fluff.
  • Banner Space: Be sure to use Banner space on company pages and personal profiles to create your brand online. Again great from when people are trying to recognize you and can also give a more professional feel. Banner space on your personal profiles can highlight achievements or projects. Again adding a personal touch here works wonders.
  • Backgrounds:Change the background where possible. When you click a profile the ones that stand out are the ones without standard backgrounds, some can be great and include logos, links etc, but a simple color change still makes a profile stand out.
  • Branding and Links: Top three free websites that help you brand yourself are: About.me, Flavors.me, Brand Yourself.com

Christine P(2014). 5 ways to improve your LinkedIn Profile. Retrieved from http://bit.ly/1yWOMwg

Osborne Tom(2014)(LinkedIn). 5 Tips to Build Your Personal Brand. Retrieved from http://linkd.in/12d49qe

LinkedIn Inc.(2013). Top 10 LinkedIn Business Marketing Tips. Retrieved from http://bit.ly/1rKTAWK

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

Agile Task

Figure 1.1 Agile Task.Admin (2013). Retrieved from http://bit.ly/1ytj36v

So far we discussed until Agile Sprint Retrospective. Now lets discuss Agile Tasks Lists. A task communicates the need to do some work. Each team member can define tasks to represent the work that they need to accomplish. For example, a developer can define development tasks to implement user stories. (admin, 2013)

A tester can define test tasks to assign the job of writing and running test cases. A task can also be used to signal regressions or to suggest that exploratory testing should be performed. Also, a team member can define a task to represent generic work for the project.

A task list consists of various tasks. A task can be associated with A User Story or A Bug. A task can be explained better by adding hyperlinks, attachments explaining the task to it.(admin , 2013)

Agile_Task_List_Users

Figure 1.2 A Tasks List in Agile.Microsoft (2013). Retrieved from http://bit.ly/1A6DEgU

Lets look at a sample Agile Task List. Here, the tasks have been associated with product backlog items.For each product backlog item, tasks will be listed. For each such task, task owner will be associated.(admin, 2013)

My Experiment with Agile Tasks Lists: Let me give you an example where I could make use of Agile Tasks List. Recently, during my internship I was working on an encryption related project wherein I was supposed to develop AES-128 encryption algorithm. So I decided to make use of Agile Tasks Lists. Following is the task list I came up with. (Waters, 2007)

  • Read and understand how AES works : 1 Day
  • Chop down the implementation into encryption and decryption algorithm implementation :  3 Days
  • Develop each module :  5 Days
  • Test with plain text and cipher text : 5 days
  • For each of the items on this list I was the owner. With the help of this list I could manage my time wisely and could come up with a viable solution for my project. (Waters, 2007)

Now let’s look at a typical task life workflow. Typical workflow progression is explained below.

Task State Diagram

Figure 1.3 Task Work Flow.Waters (2007). Retrieved from http://bit.ly/1nM9bRn

  • A team member creates a task in the Active state with a default reason of New.
  • A team member changes the state from Active to Closed indicating that the task has been completed.
  • A team member determines that the task is not relevant and changes the state from Active to Closed.
  • A team member determines that the task was closed in error and reactivates the task, changing the state from Closed to Active.Active :The task remains in the active state as long as it is being implemented. The team member who has been assigned the task tracks the level of effort of the task by updating it with Completed and Remaining hours. From Active to Closed: When you close the task, you must specify the reason for closing it.(Waters, 2007)

Done means DONE!: In agile development, “done” should really mean “DONE!”[3]. Features developed within an iteration (Sprint in Scrum), should be 100% complete by the end of the Sprint. So, in agile development, make sure that each feature is fully developed, tested, styled, and accepted by the product owner before counting it as “DONE!”. And if there’s any doubt about what activities should or should not be completed within the Sprint for each feature, “DONE!” should mean the feature can actually be shipped. (Waters, 2007)

Admin (2013). Responsive Business Service. Retrieved from http://bit.ly/1ytj36v

Microsoft (2013). Microsoft Developer Network. Retrieved from http://bit.ly/1A6DEgU

Waters, K(2007). Agile Principle 7 : Done Means Done. Retrieved from  http://bit.ly/1nM9bRn

What is an Agile Sprint Retrospective ?

At the end of the sprint review, before planning the next sprint, the team meets to review its own processes and methods. The Sprint Retrospective is inward looking (Martin, 2014). The Sprint Retrospective is time-boxed to 3-hours. The Scrum Team, the Scrum Master and optionally the Product Owner attends the meeting. The Sprint Retrospective is intended to answer two fundamental questions:

  • What we should continue to do
  • What we should stop doing
Sprint retrospective

Figure 1.1 : Sprint Retrospective. Martin, 2014. Retrieved from http://bit.ly/1v2LVh4

Managers and observers may not attend. It is reflective, looks inward and is intended to be honest so that process improvements result(Martin, 2014).The meeting is usually facilitated by the Scrum Master who will also take notes. The meeting must end with a list of action items that have been agreed upon and that will be implemented. Those changes may be added to the Product Backlog. (Babinet &  Ramanathan, 2008).

The Sprint Retrospective meeting has following key practices(Google sites(2012)) :

Key Practices

  • Meeting Customer satisfaction: The Sprint Retrospective can be used to reflect on how well the Scrum Team is addressing the customer satisfaction
  • Understanding Changing requirements: The Sprint Retrospective is a good place to assess if the Product Backlog is evolving and therefore the Scrum Team and Product Owner are flexible enough
  • Delivering working software regularly: The result and feedback received during the Sprint Review can be analyzed during the Sprint Retrospective to assess this element. The problems associated with the element can be resolved at this point.(Ambler & Holitza (2012))
  • Working with each other: Business and technical people should work together in order to achieve great results. Reflection on how well the business and technical people are working together is a good activity to ensure that the environment fosters communication between those two groups
  • Giving support and trust: Scrum Team can self-assess and also assess if management has provided an appropriate infrastructure
  • Involving in face-to-face conversation: The quality and frequency of the face-to-face conversation is a point that can be analyzed during a Sprint Review 
  • Delivering working software: Assessing the quality of the key deliverable to date is of essential value
  • Having a sustainable structure: Signs that could conclude that the project is not sustainable must be discussed
  • Technical excellence:  Quality is a non-negotiable aspect of Scrum and should be reviewed during the Sprint Retrospective
 Figure 1.2 : Sample Retrospective

Figure 1.2 : Sample Retrospective . Retrieved from http://bit.ly/1rKzVlN

  • Keeping the system simple: Signs of an unnecessary complex system should be discussed. Efforts should be made to keep things as simple as possible
  • Working in self-organizing team: Scrum Team should be self-managed. Any evidences that Scrum Team is hindered because not self-managed should be analyzed
  • Regular reflection: The Scrum Retrospective is a regular reflection activity. Hence, this will always be true.Google sites(2012)

References

 Martin (2014)(White Paper). A Quick Primer on Agility and Scrum. Retrieved from http://bit.ly/1v2LVh4

Babinet &  Ramanathan(2008). Dependency Management in Large Agile Environment. Retrieved from http://bit.ly/1rKzVlN

Ambler & Holitza (2012). Agile For Dummies®, IBM Limited Edition.  Hoboken, NJ : John Wiley & Sons, Inc.

Google sites(2012). Scrum Project Management. Retrieved from http://bit.ly/1CxtvyY