Showing posts with label best practices. Show all posts
Showing posts with label best practices. Show all posts

Monday, April 26, 2010

Why You Should Go Social...No, I Mean All The Way

In the waves of online identities and our need to communicate, we are having a rebirth of society.  Societies functional aspect is beginning to open the door to many avenues of being connected.  I have been passing an idea back and forth in my head and it is becoming a common thread in which I revisit quite frequently.

We now have dozens and dozens of possibilities for each of us to experience.  Whether you place your status into your communities or participate in geotagging mobile apps you are actively participating in the the new society.

It's not hard to imagine why some people are more into it than others.  I mean, for what it's worth, its a bit revealing.  I sometimes get a feeling that everyone knows a little too much.  Maybe they know more than I would like them to know.  I am sure this is true.  But this is the exact feeling of insecurity and blinding faith that is driving the social driven communities to thrive so well.  It's not so much what you are putting out there but it is more about how much people are interacting.  It's a communal therapy session. Good times, sad times and middle times....all shared among friends.

Years ago you couldn't have told me that I would eventually be in touch with just about everyone I have ever met and more.  I would have said something crass and levitated to an idea of virtual worlds where everyone is a mask, hiding it all to misinform.  Virtual worlds failed because the real thing is much, much more interesting.

I understand why you haven't joined facebook.  Heck, I even understand why you can't remember your email address.  I know you don't really care about the things that I do.  It's why we are friends.  It's the ol', "Why do I want to tell someone what I am doing all the time?" question.  It's frightful, and new.  We don't like new unless it's something we can read reviews about it and get a 30 day free trial.

For the most part, participating in the online social arena is a healthy lesson in humility, honesty and altruism.  Facebook would not be so successful if people didn't have their own views and their own world revolving around them.  If you decide to join in the new society you must make the most of it and this may help.

When I say, "go social, and go all the way", I am merely making a suggestion to lend your hand in building the new society.  I have a few ideas to get your foot in the door in a small way.  Seemingly so, if you dive into the deep end you may drown in too much information and find yourself a slave to your online ego.  Let's begin...

Step 1
Your first thought should be about your audiences.  You should have many concerns. One of the most important is your current employer.  You family and friends play lightly on your visibility and enjoy your banter but your employer is quite the opposite.  Many people have lost their jobs due to excessive posts about extracurricular activities.  You are ahead of the game if you already think you should keep your personal life....well.....personal.  Be smart.

Step 2 
Define your goal.  My first experience with online communities were Beta versions of AOL in the mid 90's and all I wanted to do was learn.  Many people today chose to just stay connected with family.  Others use Twitter to stay ahead of breaking news.  Do you want to know something?  Chances are that with the right tools and the right amount of interaction you not only have the power to learn, but to participate.  It's important to know what it is you want to find by immersing yourself into a new community.

Step 3
Finding the best communities.  It is important you allow yourself to enjoy the communities that are already established and fun!  Facebook is a great example.  It is the benchmark in which most social communities compare themselves to.  You can find your friends relatively easy and it will be like playing an old video game you haven't played in years.  It's communicating and its fast.  Go play.

Step 4
No need to be shy.  You are here and you plan on staying around.  Speak up and often.  It's the sharing of info and news that make it a community.  Be helpful and engage people.

Step 5
Relax.  Social networking is easy.  Your willingness to interact with others should become second nature very quickly.  Don't buy into the hype where you need to be on all the time or you will miss something.  Keep your personal life and do not try and replace online relationships with in person relationships.  It's a new society now but personal friends are close to priceless.

Step 6
Expand who you are.  It is your responsibility to be the first person to post something about YOU on the web.  Google yourself.  Find anything interesting?  Well....you should have.  The new business card should be a Google search page.  No more paper squares.  Maybe you don't want to be found.  If so, privacy is a concern for any prevalent site.  If you can't find a privacy statement then maybe the site you are using is not concerned about it at all.

Last step
Start a blog.  Write about your passion.  Find people who share these passions.  Learn from the new structure of society and be there to help others.

I haven't made any assumptions here about who will read this but if the unassuming social media newbie runs across this entry then I wanted to give them a nudge.  I am not saying it is for everyone but there are a few things to keep in mind for the uninformed user.

The biggest tip of all is to be helpful.  Your online social presence is a result of your online relationships just as your in person network is a result of your personal relationships.  You are in control much as in everyday life.  Knowing the difference is a key to thriving in the new society.

Wednesday, January 27, 2010

Advantages and Disadvantages of Agile Testing

excerpt from research paper - 12/7/09 |  I have chosen a segment of my paper to address Agile Testing.  If you would like to see complete paper please request by email at lucaslshaffer@gmail.com

How is Agile testing used?
Standalone Testing
Agile testing consists more of a method in which to handle the testing process and does not test a certain aspect of the project itself.  It is more of a concept.
The concept of “the team being responsible for quality” or “the whole team concept” and not just the testing team is a key value of agile methods.  Agile methods need the development team writing unit tests and/or following Test First Design (TDD) practices.  This is not to be confused as a test activity as in fact it is a mechanism to help with designing the code [1]. The goal is to get as much feedback on code and build quality as early as possible [6].
The desire for information earlier in the development phases is to monitor what the current code and build quality of the latest checked code are. This requirement leads to the use of continuous build and integration practices which provide feedback every time code is checked into the code repository and the system is built, usually on a daily basis [2].
In Conjunction with Other Testing
After the code has been unit tested, there are several testing phases, such as system, integration and regression testing.  Although these layers of testing do exist in agile projects, agile testing is integrated throughout the lifecycle [1], with each feature being fully tested as it's developed.  Rather than doing most testing at the end of all the development, testing phases are used appropriately as the developer moves along [6].

Advantage of Agile Testing
Agile testing is becoming the popular method of testing because it allows the developers to change course on a moment’s notice and keep the knowledge that the code already written before the turn, is quality code.  This is a powerful notion as the former required extensive responses from the developer and a tester.
Moving fast is an advantage of Agile testing. In my experience, the entire team has the responsibility to make sure their code is quality and no longer lean on the backs of testers if requirements change.   Another bonus is working with the customers or end users.  This occurrence that was once rare is now common place [1].  Developers are equipping themselves with etiquettes that extend outside the cubicle and sometimes receive the feedback directly from the customer themselves.  And of course, who doesn’t like a job that has a tendency to change from time to time.  Testing on the fly allows you to be flexible and learn your limits on your own.  It’s amazing how well you work when you manage your own time and is allowed affordances to ‘live’ with your code.  It makes it feel more personal.
Documentation is always carries a negative connotation with some developers and others are happy to summarize.  An advantage to the agile methodology is that documentation is low priority over the overall “working software” [5].  As we will see, this also can be a disadvantage.


Disadvantages of Agile Testing
As mentioned above, documentation can be slim and sometimes non-existent [4].   This is a loss for any tester.  Testing happens on the fly so there is little time to document every move and documentation takes time which is against agile preferences.  The problem lies in having to work with someone who is unfamiliar with the project.  In a worst case scenario, handing it over to someone who has never seen it before can be disastrous [6]. 
Agile testing principles are very demanding on the developers’ time and require a big commitment for collaboration on the duration of the project.  This commitment is very engaging, rewarding and ensures delivery of the right product. It's the fundamental principle of the agile atmosphere that ensures expectations are well managed. And since the definition of failure is not meeting expectations, these are critical success factors for any project and they fall on the multitasking developer [5].
The potential for scope creep, which we all know can create the risk of ever-lasting projects, can become an issue [3].   I have seen this first hand.  Customers always bring the what-if dialogue to feedback sessions and this has a tendency to dilute the original purpose but again, this is the nature of being agile.  There is much less predictability, at the start of the project and during, about what the project is actually going to deliver so testing can be interrupted or modified to fit the need of the situation [6].
Also, agile testing requires more effort.  Through this methodology, development time suffers as the project halts while the developer tests the previous unit of code before moving on to the next section.  This is double the work!  It helps to ensure quality throughout the project without the need for a lengthy and unpredictable test phase at the end of the project but testers and developers spend a lot of time working through the iterations [4].


Summary
It is complicated to speak on Agile testing and not sound like we are speaking of Agile development.  They are in tandem and together complete the ideas of agile methodology.  The many types of testing a developer is involved in throughout the development life-cycle are an enormous aspect of an applications’ life.  Agile testing is the approach at which utilizing the correct test to accomplish the goal quickly allowing the developer to stay flexible and continue on while creating quality products.  Testing frequently and along the lines of the iterative guidelines are the benchmarks of agile testing.




[1] Crispin, Lisa, Gregory, Janet. Agile Testing: A Practical Guide For Testers And Agile Teams. Publisher: Addison-Wesley Professional. Date Published: 01/09/2009.

[2] Desikan S., Ramesh. Software Testing: Principles and Practices. Pearson Education. 2009.

[3] "Agile testing." Wikipedia, the free encyclopedia. 3 December 2009. Wikipedia. 3 December 2009 < http://en.wikipedia.org/wiki/Agile_testing>.

[4] "Agile methods and software testing." Agile Testing. 30 September 2009 < http://agiletesting.com.au/agile-methodology/agile-methods-and-software-testing/ >.

[5] Manifesto for Agile Software Development. 2001. < http://www.agilemanifesto.org/ >.

[6] Pettichord, Bret. "Agile Testing What is it? Can it work?". http://www.io.com/~wazmo/papers/agile_testing_20021015.pdf>. Retrieved 2009-12-2.