Sunday, November 22, 2015

Simple Steps for Project Delivery

Delivering a project presentation can be a daunting task, but there are ways to make the task less painful. The overall outcome of the project will often depend on how the preparation was executed. In the case of the project presentation, the delivering audience will be at multiple levels of experience. The content must be catered to a non-technical group while still remaining relevant (not boring) to the technical group that is there. Acknowledging this is important when curating the overall information to be presented to the audience. Typically aiming for a middle ground ensures that the majority of the audience is addressed, and will introduce an engagement factor that might be otherwise missed. In the word of Roy Tennant,
"Knowing to whom you are speaking is of the utmost importance. But this goes double for teaching technical topics. If you assume too much about your audience or select the wrong technical level to address, the results can be disastrous. You can actually leave your audience not only just as ignorant about your topic as when you started, but also much less likely to ever attempt learning the topic again. Once burned, twice shy." 

Allowing the presentation to move according to steps or blocks will allow one to ensure that the content is covered in a manor that will make sense to the audience, but more importantly allows one to present the content without getting lost in the details. Once the larger blocks of information are selected, its important to break down the large blocks into smaller points of information. For example on of the first blocks to consider is; an introduction of the individuals whom worked on the project, the title of the project, and for whom the project was done for.  Following this, presenting the core content and achievements of the project would be moving too quickly for the audience. Rather at this conjunction it would be in the presenters favor to show the audience the issues and why the team was contacted in the first place. After the presentation of the problems at hand, there can be a smooth detour into the presentation of the solution. 

Through out the presentation to remain engaged with the audience its highly advised to have an projector that can show images that one can reference to. Doing so allows one to guide the audience in the form of thinking the that project team had. It's important to remember that the client's information should be obscured when showing images. In the best case fake input to the images should be used to prevent a breach of nondisclosure. An example of this can be seen below from Apple's documentation on identifying product registration, note the presentation of the content, however at the same time obscuring the information presented.



By following the steps above, and practicing the presentation before hand. One can be assured that they will preform well during the critical moments before the client is allowed to select if the project continues. Just recall; organization into blocks of information, be genuine to the audience, insure that you are being engaging through out the project. Keeping all these in mind will make the whole ordeal less stressful.

Reference: 

 In-App Purchase Product Identifiers. (2015, November 10). Retrieved November 23, 2015, from https://developer.apple.com/library/ios/qa/qa1329/_index.html#//apple_ref/doc/uid/DTS40009463 

 Tennent, R. (n.d.). Technology in Libraries: Essays in Honor of Anne Grodzins Lipow. Retrieved November 23, 2015, from http://techinlibraries.com/tennant.pdf 





Sunday, November 8, 2015

There are never ending lists of qulaitfication thats employeeers are looking for, however today we will be looking at 10 qualities to make someone competitive in the job market. 
If we break down the qualities into technical skills and non-technical skills there is slight overlap between them, and there should be. The compounding effects of skills can be used to ones benefit to master a particular technique. "Soft Skills also represent of the fundamental attributes that the new knowledge-based economy seems to be demanding of the employers, employees, and organizations" Nitin Bhatnagar.


 A good amount of time will be spent working with others, from collaboration on projects, to delegating tasks, being able to communicate effectively will ensure that the return from the time spent on the tasks will be well worth the investment. However when one is speaking with another, its critical to be able to empathise with others, by placing oneself in someone else's shoes it allows you to not only see their perspective on things, but it also allows a more genuine connection with the person one is communicating with. Maintaining these relationships over the years of your employment will only be of benefit as ones network expands.  

Time Management is a critical soft skill to have, it places it's self high on my list because the range of tasks that it covers. It can be used in both non-technical, and technical tasks. Enabling oneself to balance both the work tasks and life tasks, ensures resilience to becoming burned out. A good time management tool that I've used and shared is OmniFocus. Omnifocus allows one to organize tasks to be completed so that one never has too look for work to do, the next required task is already present. 
If you wanted to learn more about using OmniFocus here is a great overview by David Sparks, https://inside.omnifocus.com/david-sparks

Technical Literacy important for a technical job, but its also useful in non-technical fields because it promotes a method of thinking that builds on itself, and encourages someone to be able to understand how they should be attempting to locate answers for the questions they have. Asking co-workers how to complete a task might be the easiest, but sometimes it wont be the most convenient for either party. Technical literacy breaks us into one of the best skills to attempt to develop, which is critical thinking. This is a skill that will take several years to develop, however its the gift that keeps on giving. Critical thinking, when tied to the other skills up here, allows one to have this hawk-eye view of what is going on, and why certain things are being completed as they are. All the other skills mentioned before provide more skills to become a better critical thinker, which in the end becomes one of the most desired skills to have.

 Regarding technical skills that are important to have, one of the most is to be comfortable in the various crosses of platforms and ecosystems. This enables one to work on a variety of systems without having to worry about running into issues of not being able to understand how tasks should be completed. A very large target to hit when going into the technical employment is a basic understanding of Linux/Unix systems, a skill that I often see missing in most classmates, this is important because a very wide variety of electronics use Linux as their operating system, and not knowing this can come back to bite someone. A good way to learn these systems is taking online classes at a local community college, within a year these skills can be developed, and will allow one to work on a good majority of platforms.

When someone asks me to do a task, i frequently think if there was a way to automate the task so i dont have to spend so much time and energy  on it. Knowing a scripting language is important to automation of simple tasks, but it also allows one to think of way to make their usage of time more effective, and plus if you're like me, doing repetitive tasks is not a good use of time. If one takes up learning Linux/Unix, a good branch from there would be learning Bash scripting. 

An ability to use emails effectively is often overlooked. However emails remains to be an industry standard in communication. Being able to organize, sort, flag, prioritize emails in the beginning of your job ensures that one does not end up with a big pile of mail, with no hope to cleaning it call. Having a good communication soft skill allows one to be very effective in what is communicated, consider working on them together. 

Data Security is something that's often over looked, but if compromised there are many negative impacts that can ripple through out the user base and company. In order to protect both the clients but also the company, one should be familiar with ways to prevent data breach, some examples would be; use of password managers, being able to identify phishing emails, understanding and implementing protections to user data, and limitations of employee access to data. 
Lastly would be Data Analysis, the ability to extract important information in the ocean of data is critical. What often is overlooked is the ability to take the information, extract the useful aspects of it, then translate the data into objectives that can be used. This can often be a difficult skill to have because of the overshadowing soft skills that are also required. However this makes the skill that much more marketable once achieved.

It's important to remember that often these goals are being worked on over a longer period of time. There is no way to get the skill down instantly, that would remove from the refining process of becoming skilled in something.

Reference:

 (n.d.). Retrieved November 9, 2015, from http://www.genreceng.co.za/pics/skills-development2.jpg
 
 Bhatnagar, N., & Bhatnagar, M. (n.d.). Effective Communication and Soft Skills (p. 448). 

Tuesday, October 27, 2015

Live Sessions

" At any given moment every group has a particular participation pattern. For instance, it may be all one-way, with the leader talking to the members; or it maybe two-way, with the leader speaking to the members and the members responding; or it may be multidirectional, with all members speaking to one another and to the group as a whole... The studies do not indicate that any one given participation pattern is always best; it depends upon the requirements of a given situation. But many studies show that on the whole, the broader the participation among the members of a group the deeper the interest and involvement will be" - David Jaques, Learning in Groups

Small trivial questions that come up during group projects have the ability to set the project off course. In effort to address these questions quickly, a solution that the GSN Team has implemented is having live coding sessions. While these sessions were originally implemented to take care of smaller questions, there are other benefits that also came out of them.

Not only is the team able to get answers and solutions for these smaller questions, but the amount of time that we spent waiting for a response is rapidly reduced. Previously when we had an issue, we would either email, or attempt to call others in the group in effort to get to a solution. However the delay in response sometimes went from bad to worse very quickly, with some questions being on hold for hours, or days. 

The overall sessions don't last for more than 3 hours, however the output of work that we completed in the time, had put us ahead for the rest of the week. In scrum terms, our teams velocity was increasing due to the meetings this meant that we can spend more time refining what we have completed in effort to get the product closer to what the client requires. 
The last benefit of working in these live sessions is that it allows us to gauge the strengths of our teammates, and leverage those strengths, while still working on the areas of improvement. This learning aspect of the session is very useful, and allows the team to grow at a much quicker pace. However it also alleviates any issues where one individual is doing the majority of the work for the project, the tasks can be divided in real time, and any objections can be addressed right away. 


Reference:

Jaques, D. (2000). Learning in Groups: A HandBook for Improving Group Work. Retrieved October 28, 2015, from https://books.google.com/books?hl=en&lr=&id=EbWA1qSGQ20C&oi=fnd&pg=PR5&dq=group work&ots=nI-9pDz9ZR&sig=d_9aYatgzqlSR8pkmbx_ilAmFrE#v=onepage&q=group work&f=true
>
Learning Lab. (n.d.). Retrieved October 28, 2015, from https://emedia.rmit.edu.au/learninglab/content/groupwork-tutorial



Sunday, October 11, 2015

identifying clear objectives.

When first meeting the client it can be difficult to understand what it is that they exactly require from the project, and while the "user stories" offer a good way to get a grasp of how it looks like from the outside. As the product develops, its important to be able to see if the goals are being objectively met, and how the dynamic of introducing new goals into the project, will change the outcome of the product. A very effective way to establish these goals is through asking open ended questions to ensure the client is able to speak their mind about a subject. Qualitative Social Research has established that,"Furthermore, the information gathered thereby and especially in combination with open-ended questions can facilitate starting a conversationIn reference to interviewing individuals to extract more information in regards to subjects that they have spoken about.

Which bring up a very good point, which is starting a conversation around what are the direct implications of the subjective goals that are brought up. Without doing this one will run into the issue of fragmented ideas that come up in the production of the finalized product. 
An example would be that our client, wanted us to create a site that was cleaner, and had more organized content. However after running into unexpected issues in regards to accessing source code, we had essential started to rebuild the site from ground-up in order to achieve a viable product to show the client. Now going back to the original goal, of making the website more clean and organized, has the mark been hit? Does it still need further optimization? To attempt to see if the project has taken the correct direction in course, it often has to be directly asked to the client, "Hey in what ways can this be improved?" Often times when asking this question the client can point something out that was previously missed, and can be added to the product backlog. This act of working, then getting feedback from the client allows for a more refined, and personal project for the client.
Asking these types of questions will not only lead to an easier understanding of what is to be done with the project, it also ensures that the direction of the sprints are headed toward that goal. By not asking these types of questions, it only creates more work toward the end of the project when things need to get ironed out. Check to see if the question asked to the client hits one of the points in the chart below, if it does thats a good direction to start gathering more information.















Reference:
Open Ended Questions. (n.d.). Retrieved October 12, 2015, from http://www.creducation.org/resources/triad_meeting/threegameboard_r.png


Witzel, A. (n.d.). The Problem-centered Interview | Witzel | Forum Qualitative Sozialforschung / Forum: Qualitative Social Research. Retrieved October 11, 2015, from http://www.qualitative-research.net/index.php/fqs/article/view/1132/2522

Sunday, September 27, 2015

Issues, communication, and repositories

   Communication is key when working in groups or projects. At times members might go into a "ghost" mode where they are no available. Damon Poole states
"Developers often put off checking in ... But this leads to other problems such as losing work..."

   Today are going to look at a good method for communication regarding issues (or enhancements) for a project. Within our bitBucket/github project repository page there will be an "Issue" page, were we can raise flags for other team members to take a look at.
*Note that in the above posting, I'm able to select which team member needs to be alerted about the issue (perhaps if its their domain of the project), as well as alert them about the priority of the issue.

   Posting Issues is very straight forward and team members are even able to vote for issues that come up in regard to how to address them, which is very helpful when the team is larger than 2-3 members. By maintaining a check on the issues that are brought up during the scrum period, it allows for a quick response to keep the tasks rolling, and active communication through out the team. Which in the end will allow for the team to work in a manor that fosters their ability to work with velocity.

References:
 Atlassian Documentation. (n.d.). Retrieved September 28, 2015, from https://confluence.atlassian.com/bitbucket/use-the-issue-tracker-221449750.html Poole, D. (2005, July 25).
Do It Yourself Agile. Retrieved September 28, 2015, from http://damonpoole.blogspot.com/2005/07/check-in-early-and-check-in-often.html