Alexandria Le's CS100w Blog!

Sharing what I know, while I learn.

Category: Uncategorized

Delivering a Project and Presenting to a Multi-Level Audience

So now we’ve finished our project. Besides handing it off, we also have to present it to an audience. With our poster expo coming up on December 5th, I have a lot to learn about presenting my project in a successful and meaningful way. However, I plan to share everything I learn with my very own readers!

For starters, we have to have visuals. Visuals for selling our product and ourselves. No audience member wants to see text or the actual coding behind a project. The secret is that they do not really care how you got there, they just want to know the end result and how it will benefit them. It does not mean that the process and journey spent getting to the end does not matter, it just means that when you are presenting, it does not matter at that moment. So let me share with you, our cs180i visual, our poster:

10394006_311530829046922_4042478235279221668_n

Great! So we have our visual, now I need to know how to present it. Thinking about current day, successful presenters, the first person that comes to mind is Steve Jobs. If there was one person that convinced me that I needed things that I really did not, it would be Steve Jobs. The way he presents things is magical. It convinces people that they need this object without really knowing its full purpose. So that is exactly who i want to be like for this upcoming poster expo: the next Steve…

Now the question is how. How does Steve Jobs do it? Honestly, there is an entire list of how he does it, but I am going to choose the ones that I personally want to aim for:

  • Focus on Benefits
  • Sell Dreams, not Products
  • Create Visuals
  • Reveal a “Holy Smokes” Moment
  • Practice, a lot!

So I have to convince people that the CS180i Website has benefits, which it does; It creates an online student center and a connection between students and potential employers. Check. Sell dreams, not products. Personally, I think any computer science major’s dream is to get an internship at a company that they enjoy and eventually, be hired full time, and be successful. Visuals: the poster and the actual website itself! Check! “Holy Smokes” moment, that one is a little more tough… However, I think the “Holy Smokes” moment that the CS180i Website provides is that anyone can be a part of this website: students, partners, and employers. Even though I have all these factors, I know that my presentation and delivery will not be amazing as it should without practice!

Now that we all know what makes a good presentation and delivery, it is time to stop reading about it and time to start practicing!

References

Gallo, C. (2010). The presentation secrets of Steve Jobs. Retrieved from http://bit.ly/1zPQfF7

McMinimee, J., Schaftlin, S., & Warne, T. (2009, October 1). Best Practices in Project Delivery Management Supported by the National Cooperative Highway Research Program . Retrieved November 29, 2014, from http://onlinepubs.trb.org/onlinepubs/nchrp/docs/nchrp20-68A_07-01.pdf

Handing Off a Project to a Client: What are the risks and challenges?

As our semester is coming to a close, our CS 180i Website is almost complete and ready to give it back to the client! Our baby has grown into a toddler and into an adult in our very own hands! Well, our website baby. Here’s before and after photos of our home page:

Front_Page_Before Front_Page_First_Draft

Excuse me as I wipe my figurative tears, they grow up so fast! If you want to check out the rest of the website, click here!

Now, handing off this project is not an easy task. We have to teach and show our client how to use it properly. We have to make sure that this website will be okay when we set it free. Basically, in order to have a successful project, the website must be able to run efficiently without us. In the “For Dummy’s Handbook”, it states that when handing a project back to the client: “Put all the materials together and keep them for your records. Too, sometimes clients will come back to you for follow-up work, so having everything from the first project on file and readily accessible will make the follow-up work flow much easier.” So great, now we know: you have to make sure you explain to your client how the website will work and teach them how to maintain it as well as keeping copies for yourself just in case anything goes wrong.

That ties into the risks and challenges involved: What if the client doesn’t know how to use it? What if they don’t like it? What if you and your team have to placed more time to the project even after handing the project off to the client?

How can we prevent these risks and challenges?

  • If the client doesn’t know how to use the project properly, make sure you set up proper time for a training period. This training period will teach the client how to maintain and run the website when we’re away.
  • In order to prevent a sudden dislike over your project, make sure you’re consistently communicating with your client. With Agile methodology, this helps this challenge as well. With consistent communication, your client will have a constant understanding as well as visuals with each deliverable. So that they will know exactly what they are getting by the time they get the entire project back.
  • With proper timelines and sprints, there is no reason why you should be spending any more extra time on the project once you’ve handed it off. With proper management and team skills, your project should be 100% done by the time you give it back!

So, goodbye project! It’s been a good 10 weeks! It’s time to hand you to our client. Our sweat, tears, love, and figurative blood as been placed onto you. Be a good website and bring in the internships!

References

Anyangwe, E. (2012, February 9). HE in FE: Top tips and resources to promote collaboration. Retrieved November 29, 2014, from http://www.theguardian.com/higher-education-network/blog/2012/feb/09/he-in-fe-colleges

How to Hand Off a Project to a Client. (n.d.). Retrieved November 29, 2014, from http://www.dummies.com/how-to/content/how-to-hand-off-a-project-to-a-client.html

What Five Technical Skills are Employers Seeking? What Five Soft Skills Put You on Top?

As a computer science student at San Jose State University, eventually I plan to venture the tech world in search of a good career for my future. As I search I know a few things that I need to have in order to find the perfect job for me; I need to be able to have good coding skills as well as people skills. I must be able to confidently complete my work. Most of all, I need to be ready and able to do anything the work place throws at me. But besides that, I need to know the technical and soft skills that will give me that extra edge against my peers (like the ones below)!

What are technical skills exactly? They’re the skills that are related to the job at hand. It is our abilities and capabilities when it comes to the computer and coding itself. It’s the skills that we learn at school today such as coding languages, development methods, hardware, software, and all those technical, on hand goodies. So here’s the top five that employers are seeking for:

  1. Programming Languages
  2. Data Structures
  3. Software and Mobile Designing
  4. Database Management
  5. Data gathering and analysis

Great, so we learn these skills at school and maybe even outside on our own time. But is that all? Grant Gordon, a hiring manager at Intronic Solutions Group states, “Rarely do they want people buried behind the computer who aren’t part of a team,” he says. “They want someone with Java who can also be a team lead or a project coordinator” (Brandel). So the answer is no. Technical skills aren’t the only thing employers are looking for! You could have all the technical skills, but that only makes you half the person that employers are looking for (actually, to be exact 15% percent according to the picture before). They want more, 85% more. Luckily for you, I’ll tell you exactly what the other 85% looks like:

So, that 85% accounts for soft skills. The people skills, the not-coding skills, but also known as the “you” skills. Here are the top five soft skills or “you” skills:

  1. Leadership
  2. Conflict Management
  3. Coaching
  4. Team Player
  5. Decision Making

Essentially, employers are looking for people who are more than just mean, strong coding machines. They want you to be leaders, friendly, and ready to own the work place. In order to be successful, you have to be well rounded, you have to be 15% technical and 85% “you”. As I am getting closer and closer to graduation, I aim to be a full 100% of what employers are looking for. I strive to be a strong competitor against my peers and to be successful within my own working environment and with these skills, I believe that I can one day achieve true sucess.

References

  1. Lethbridge, T.c. (1999). What Knowledge Is Important to a Software Professional? Computer: 44-50. Web. 27 Nov. 2014. Retrieved from http://courses.utep.edu/portals/870/lethbridge_WhatISImportant.pdf
  2. Brandel, M. (2007, July 11). 12 IT skills that employers can’t say no to. Retrieved November 27, 2014, from http://www.computerworld.com/article/2542247/it-careers/12-it-skills-that-employers-can-t-say-no-to.html
  3. First Image. Retrieved from http://www.bu.edu/met/files/2009/11/computer-science.jpg
  4. Second Image. Retrieved from http://www.monarch.edu.au/wp/wp-content/uploads/2014/03/soft-skill-saavy.jpg

Social Media and Branding: CS 180i Website

As my team and I are currently working on our CS 180i Website, we’ve run into a few dilemmas:

  • How do we want to brand ourselves?
  • How can we create our website and turn it into an online social networking place for internships, an online student center?

studentcenterfinal

(Our Website, so far!)

We have had experience with LinkedIn and branding ourselves as professional people to recruiters. However, now we are given the task of finding a brand for our very own website! Before finding out a brand, we have to learn what branding is. According to the dictionary, a brand is an identifiable entity that makes specific promises of value” (Dolak). Okay, now we know what a brand is, now we can get started with finding a brand for us.

With the growth of technology and social media, branding is extremely important. It lets people know who you are and what you can do! For example, on LinkedIn, you want to brand yourself in a way that is fit for future jobs. You even put in your skills and people can endorse them! However, it’s important to have an awesome header, which is another type of “catch phrase” or a tag line for people to remember you by. For example:

“The snack that smiles back! ________!”

Goldfish! I know, you got the answer right, almost everyone does. But why? It is because of branding! So with our CS 180i website, that’s what we want to do! Find a tag line or even an icon that is memorable.

Say Hi! That is Goldfish’s mascot and icon, Finn! We are looking for our very own Finn. We have brainstormed a couple of ideas so far, but nothing concrete unfortunately. Some tag lines that we have thought about are:

  • “Finding the intern in you”
  • “Computer Science in the real world”
  • “Help us, help you find an internship”

So far, we are not loving what we have come up with. Hence, we are still brainstorming, but at least we know what we are aiming for! We are aiming for a brand that is memorable, creates trust in the users, and one that connects to people. Eventually, we hope that our website will even implement using twitter, Facebook, and LinkedIn to improve our brand on a larger social media scale.

Overall, we want to create a brand that is successful and one that we will always be proud of. Personally, I think this website is going to be a great beginning to our long term careers in Computer Science and a great way to get out there on social media. We are looking for you, our very own Finn, and we will find you!

References:

Dolak, D. (2010, January 1). Building A Strong Brand: Brands and Branding Basics. Retrieved November 4, 2014, from http://www.brandframe.no/files/Fagartikler1_50/36BuildingAStrongBrand.pdf

Mattero, A. (n.d.). How to Leverage Social Media for Effective Business Branding. Retrieved November 5, 2014, from https://blog.shareaholic.com/social-media-business-branding/

LinkedIn profiles, how to use them, how to market yourself, how to network

As a college student, I am an avid Facebook user. I like to receive updates and see what my friends are up to. However, it isn’t a very professional platform to present myself on. Employers aren’t looking for where you’ve been, what you’ve been eating, or even photos of your recent beach trip. They want to know what you can do professionally in the working world. Hence, I have created a LinkedIn profile:

Screen Shot 2014-10-19 at 10.38.55 PM

Hi! That’s me up there and that’s my new Linkedin profile! So for a similar explanation of what a LinkedIn profile is, it is a professional version of Facebook. Your profile is meant to show all and any career related information you might want to share such as: experience, skills, awards, education, and many other customizable things that you think will benefit you during your job search. Many new companies today use LinkedIn for resumes and recruiting new and potential employees. For example, I recently applied for an internship and instead of asking for a resume, they asked me to submit my LinkedIn profile link. With the way hiring processes are going, it is a smart move for you to create your own LinkedIn Profile as soon as you can!

Now, before you panic and rush your way into making your profile, let me explain to you how to use one. If you have a Facebook and a resume, you’re already almost done! All you have to do, is create and edit your profile as you would with your Facebook and fill in everything your resume has and more! Once you’ve completed your profile, you are ready to use it to help you network and search for potential careers. You can use it in replace of a resume, like me, by sending your profile link to those hiring managers and employers. On top of having a sweet, new, online resume, you now have a social networking platform to connect with other people! LinkedIn helps you connect with job recruiters and even people you would like to know on a more professional level. LinkedIn has made its way to the top for recruiters to find new employees. So you never know when a recruiter has looked at your profile and decided that you might be there next new employee, so your profile better be in tip top shape!

What would you consider tip top shape? In order to consider your profile to be effective, you must know how to market yourself. Sell! Sell! Sell! Sell yourself in a good way and make yourself desirable for potential employers. How? Well LinkedIn makes it incredibly easy to connect with others. “LinkedIn makes it easy to search for other LinkedIn members who share your interests, for example, the company your work for (or worked for), as well as the people you went to school with” (BUTOW). By connecting with any one of those people, you’ll be open up to connect with the people that they know! Eventually your pool of eligible connections will grow. LinkedIn also helps companies seek employees that fit within their criteria. So it is always good to keep your profiled updated. But a huge way to market yourself is through connections and networking.

linkedin

How do you network on LinkedIn? Well it is just like adding friends on Facebook, but instead it’s called connections. Once you create a connection with someone, their connections will be available to you as well. Your connections will also have an effect on your profile as they will be able to give “points” to your skills and make you more appealing to employers. It is always important to branch out and network because you will never know who you might meet!

So, get started and make your LinkedIn profile! As a new LinkedIn user, I believe that it has become an extremely useful and necessary social networking tool to have. Every college student, every person searching for a job, for an employee, should learn how to properly use LinkedIn. Especially since we are heading towards a paperless type of environment in the workplace, it is only due time until resumes become obsolete and it becomes all about your LinkedIn Profile!

References:

Butow, E., & Taylor, K. (2009). How to succeed in business using LinkedIn making connections and capturing opportunities on the web’s #1 business networking site. New York: AMACOM ;.

Fitzpatrick, E. (2012, November 15). Social Media for Garden Businesses: LinkedIn and Networking. Retrieved October 19, 2014.

Viveka. (2013, April 29). LinkedIn’s New Contacts Feature. Retrieved October 19, 2014.

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

According to Merriam Webster, done is defined as adjective that describes something as arrived at or brought to an end. Although for Agile, there is no clear, pin-point definition for a project being “done”, but rather having “one common definition” of a finished and shippable product. In order to consider something “done” in scrum terms, it would be logical to use a “done thinking grid” like the image below:

As stated in previous blog posts of mine, Agile is a process where a large project is broken down into small tasks, and those small tasks are broken down even further, and overall, all these tasks are placed on a time line of when they need to be completed. Each task is placed into a section of the Sprint for the team to accomplish sprint by sprint. Once they complete all their task and complete the final needed sprint, the project can be considered to be DONE! This overall process would be shown on a task list, like the one below:

An agile task list is also known as a backlog, which I explained about in my blog 3. Now back to talking about what we consider “done”. When a team member completes a task, they can check it off the list, or move it to the next section of the task list. If we use the photo above for an example, the task would be moved from “in progress” to “ready to QA” and eventually to “validated”. Once a task gets to the end of its task list or “validated”, it can be considered done. It has been throughly checked and considered usable for the end of the sprint and even used for the shippable product.

However, just because a certain task has been completed or marked done, it does not mean that the team does not go back to it. By using Agile for their product development process, the team has given itself room to constant improvements; it has made itself flexible. Which means that if necessary, a team can go back and place a once finished task, back on the task list to be worked on again and most likely improved.

In the end, it is up to the development team to come up with their own definition of done. With the help of the sprint retrospective and experience, the definition of done will become more clear with every sprint completed. Overall, the most important factor to insert into your definition of done is to make sure you have produced a shippable and worthy product to your users.

Reference List:

Black, S., Boca, P., Bowen, J., Gorman, J., & Hinchey, M. (2009). Formal versus agile: Survival of the fittest. Westminster Research. Retrieved fromhttp://westminsterresearch.wmin.ac.uk/7162/1/Black_et_al_2009_as_published.pdf

Gupta, M. (2008, September 3). Definition of Done: A Reference. Retrieved October 13, 2014.

Blog 3: What is an Agile Sprint Retrospective?

In Agile, scrum takes place in sprintsSprints are little periods of time where the Agile Scrum team has designated for certain tasks to be competed. Every software development project is broken down into sprints. And each sprint is broken down into four main periods: sprint planning, sprint execution, sprint review, and retrospective (Drury 2011). Although all four individual periods of a sprint are equally important, the one that we will be discussing is the Sprint Retrospective.

6005504-fig-1-large

(Sprint Cycle breakdown from Drury 2011)

 

 

According to Drury, “Sprint retrospectives are an opportunity tor the team to reflect on how It is working together and actively seek out areas to improve. The Retrospective is a facilitated session at the end of the sprint”. Essentially, the main goal of the retrospective is to search for more improvements. 

During this period of the scrum, team members get together to discuss about what could be better for the next sprint, what they can continue doing, and what they should stop doing. Team members aim for success and the purpose of the retrospective is to help them. The basic format for a retrospective is to go over topics such as: “What works? What doesn’t? What do we need to do?” (Keith 2008). It is a period of self-improvement for the better of the entire project. It also is a slow down period for the team members to reflect instead of just jumping to the next sprint to continue developing.  However, most of the feedback and solutions that are found during the retrospective period of a sprint are usually temporary solutions and tend to only work for individual specific development projects.” Regardless of being tactical or strategic, all of these decisions indicate the team uses the Retrospective to decide how to better their teams’ agile process in future sprints” (Drury 2011).

 

6005504-fig-3-large

(Photo of Sprint Planning from Drury 2011)

 

 

Ideally, the agile sprint retrospective would be seen as a productive and necessary part of a sprint since its goal to make the team more successful the next time around. In majority, most people who do participate in retrospective, have a positive experience (Drury 2011). Personally, I think that doing the retrospective causes more good than bad. They say that if you do not get any feedback, you do not get any better. Retrospective is all about feedback. If you want success, you must hear the ugly as well as the beauty of the work that you are completing.

However, not everyone agrees that retrospective is a productive use of the team’s time. One participant described the experience as “a free-for-all of just throwing positives and negatives on a wall and grouping those, you know, if two people say the same thing we talk about it. There’s not really a lot of decisions to be made other than, saying, ‘alright here’s one …” (Drury 2011).

Overall, it is up to the teams on whether or not they would want to take part in the sprint retrospective. However, it is a good idea to have a sprint retrospective, if they want to have more success and improvement.

References:

Drury, M. (2011, August 7). Decision Making in Agile Development: A Focus Group Study of    Decisions and Obstacles. Retrieved September 28, 2014, from http://ieeexplore.ieee.org.libaccess.sjlibrary.org/xpls/icp.jsp?arnumber=6005504

Keith, C. (2008, February 18). An Agile Retrospective. Retrieved September 28, 2014, fromhttp://www.clintonkeith.com/resources/GDC2008-AnAgileRetrospective.pdf

 

The Agile Team and what is a Backlog? What are they for and why are they important?

In order to properly use Agile for your developing needs, you will need a better understanding about the Agile team and backlog. You gotta start somewhere!

What consists of an Agile Team?

There are three main parts to the Agile Team, all of which are equally important. These three parts are: Product Manager, Scrum Master, and the Team (CK). The leader of the Agile Team is the Product Owner This is usually someone who has communication with the users of the product, understand the product’s market field, and overall is a good marketer for the product that is being developed. However, the most important job that the Product Owner has is that he or she, must have a clear end product goal in mind. Next, is the Scrum Master. Scrum Master is a type of middle man between the Team and the Product Owner. His or her goal is to motivate the Team and push it to the end of the Sprint. Essentially, the Team’s success, is the Scrum Master’s success. He or she must be ready to face any issues a team runs into and as fast as possible, remove the issue, get the team back and ready to go. The Team consists of many tinier roles such as: artists, animators, programmers, designers, and QA (CK). Usually teams consists of seven or so members and they are self-managing. The Team is what determines proper time estimates for the project given and commits to completing the work that they have set themselves up to do. Team members are actively meeting and engaging with one other to complete each sprint.

Why is an Agile Team important?

There are multiple reasons for why having an Agile Team is so important. Not only does having a team create an communicative environment, it also creates a more collaborative environment. With such an environment, the entire development process becomes more enjoyable and chances are, the happier your employees are, the more that gets done. More motivation plus more performance equals a better product.

 

SelfOrgTeam_9_0611_v2

 

What is a backlog?

ProductBacklogIceberg

According to the faculty of Computer and Information Science from the University of Ljubljana, a Product Backlog is a “list which contains all active product requirements” and it is “managed by the Product Owner, who is the only person authorized to change the priorities of the requirements” (Grebennikov)In simple terms, it’s a list of things that you have to complete for the entire product and the only person who is allowed the change the list is the Product Owner.

As previously learned, the overall product development process is broken down into sprints. Before each sprint begins, there is a discussion about the product’s backlog, where a little part of the backlog is chosen to be completed by the end of the sprint. This little section is what describes what has to be completed or requirements that will be completed within the thirty+ day sprint. Also, each requirement listed will also be broken down even further by the team to be finished within four to sixteen hours.(Grebennikov).

Why is having a backlog important?

A backlog breaks down the large amount requirements into a  smaller, more “do-able”, goal that can be completed in a shorter amount of time. It also give the team a direction to begin in for each and every individual sprint. Once a backlog is created in each sprint, the backlog must be maintained and the team must stay committed to completing the requirements listed on the backlog (Grebennikov). Overall, it keeps the team goal orientated.

In the end, having a great team and a proper backlog are important details in what makes a good product. Without those two, chances are, very little development would occur. So, don’t forget to build your team and write that backlog!

 

References:

Keith, Clinton. “Agile Methodology in Game Development: Year 3.” Gaming Developers Conference. High Moon Studios. CGC, San Jose. 20 Mar. 2006. Lecture.

Grebennikov, A. (2008). Modern topics of computer science: Proceedings of the 2nd WSEAS International Conference on Computer Engineering and Applications (CEA’08), Acapulco, Mexico, January 25-27, 2008. S. l.: WSEAS Press.

What is Agile and What are User Stories?

The Brief Goodies:

  • What:  Agile is a type of method created to make the software development process easier and more effective.
  • Who and When: In 2001, some software developers wanted to create a new and easier development method process.
  • How: Agile consists of having a team, a several steps process, and a product.

What is Agile?

Before Agile existed, there were previous methods introduced such as the original Code-and-Fix development and the Waterfall model. However, although these methods were helpful at the time, it still was an ineffective way for software development. Code-and-Fix involved fixing the code as you go, and unfortunately caused the software to be delivered all at once. Waterfall involved a sequential process which has scheduling risks, little flexibility, and little to none customer involvement.  (Layton, 2012)

Eventually, developers realized the issues with those previous models and soon enough, Agile was born.

The creators of Agile wanted a model (product) that consistently improved itself from its previous model. As a result, Agile was the most effect, flexible, and team-oriented than any of the previous software development methodology. (Layton, 2012)

How does the Agile development methodology differ from other development methodologies?

  • The Agile methodology involves Scrum, which places the importance of feedbackteam self-management, and striving to build a fully tested product. (Silva da Silva, 2012) It also breaks down the big project into several little parts, in which when each part is completed, it is possible to release a usable product to customers

.agile_methodology_overview

(Photo from Neos,2012)

  • Compared to the Waterfall Method, Agile is more flexible, requires much more collaboration between team members(Stakeholder, Product Owner, Team Leader, & Team Member), involves more customer participation, and it is a process that involves releasing several improving different versions of the same product.(Silva da Silva, 2011)

What are User Stories?

ScenarioAndUserStoryExample

  • Every software development team that uses the Agile methodology, uses User Stories.
  • User Stories come from the product owner and they describe what the software aims to do and how it will benefit the user.
  • It is “a simple description of a product requirement in terms of what is required for the customer/user” (Layton, 2012).
  • It’s a simple way to convey what you want your product to include.

Can Agile methodology be applied to other software testing and development projects? What projects would you suggest Agile for and why?

  • Of course it can! With businesses growing at a faster and more consistent rate, they are always looking for faster and more efficient ways to improve. Agile not only helps business have a competitive advantage, but it creates a better collaborative work environment for developers. (Silva da Silva, 2011)
  • Smartphones are the new craze and do not forget the apps that come with it. Projects that I would personally suggest Agile for include anything that involves apps for smartphones. I would also recommend it to any business that involves a product to customer based product such as healthcare offices, retail stores, and the government.

 

Reference List:

Neos. (2012, December 12). Agile Methodology. Retrieved September 15, 2014.

Layton, M. (2012). Agile project management for dummies. Hoboken, N.J.: Wiley ;.

Silva da Silva, T., Martin, A., Maurer, F., & Silveira, M. (2011). User-Centered Design and Agile Methods: A Systematic Review.

Williams, L. (n.d.). What agile teams think of agile principles. Communications of the ACM,71-71. Retrieved September 15, 2014.