Thursday, October 31, 2013

4G vs LTE – key differences explained

4G sign
Anyone who’s been in the market for a new smartphone recently isn’t just spoilt for choice when it comes to awesome Android handsets, but there’s an ever growing range of data packages and network types to choose from as well.
Of course, you’re likely familiar with the older 3G standard, but newer handsets are often listed with a variety of “next generation” communication technologies, advertised as 4G,LTE, and sometimes 4G LTE. While that may make them appear virtually identical on the store shelves, there are actually some drastic differences between the technology advertised and the actual 4G mobile communication standard.

The 4G standard

All the way back in March 2008, the International Telecommunications Union-Radio (ITU-R) decided on a set of specifications for its new 4G standard. The ITU-R is the United Nation’s official agency for all manner of information and communication technologies, and aims to help promote and regulate various communication standards across nations.
The ITU-R decided upon a set of requirements for bandwidth, spectral efficiency, and a load of other technical points, for future 4G networks. But the most important point for us users is the peak download speeds, which are defined as 100 Mbit/s for high mobility devices, such as mobile data speeds on your smartphone while driving in car, and up to approximately 1 Gbit/s for low mobility local wireless access. To put that in some perspective, typical current download speeds are often in the range of 10Mbit/s, while 4G should offer 100 times faster downloads at a rate of 1Gbit/s.
4G_LTE_WEB_en
It’s a long road, but faster data speeds are heading our way. True 4G could offer data speeds more than 10 times the current LTE download speeds.
That sounds great, but the ITU-R doesn’t have any control over implementation. As such, “first generation” 4G technologies, such as LTE or Mobile WiMAX, have been criticized for not matching up to the full specification. The reason for this is that other groups, such as 3GPP or IEEE, who work closely with the technology companies responsible for delivering the hardware, had already coordinated next-gen technologies with their members.

LTE-Advanced, the true 4G

It wasn’t until October 2010 that the ITU-R completed an assessment of six candidates to be considered true 4G technologies. After much deliberation, LTE-Advanced and WirelessMAN-Advanced were designated IMT-Advanced compliant technologies, and the age of real 4G began. LTE-Advanced is the technology that we are going to see in western markets, so here’s a little rundown of what makes LTE-A so special.
Firstly, it’s important to know that LTE-A isn’t just about handset download speeds, there’s a big push to make improvements to infrastructure in order to achieve these high download rates. LTE-A aims to improve data speeds by using a mix of traditional macro cells and vastly improved small cells. The aim is to offer better high speed coverage at the network’s edge and more bandwidth, but the transmitters will have to function on different frequency bands in order to avoid interference.
LTE carrier aggregation
The big buzzword with LTE-A is carrier aggregation, which will allow receiving handsets to make better use of these fragmented bands, in order to downloaded data faster. The LTE-A standard supports up to 5 carriers and up to 100MHz, which will enable download speeds of over 1Gbit/s. However, launch will only support the aggregation of two 10 MHz carriers, enabling peak data rates of 150 Mbit/s. The final important feature is the use of multi-antenna techniques (MIMO) and Coordinated Multi Point (CoMP) to provide more capacity and more consistent data rates across cell boundaries. In other words, you will be able to maintain a more consistant download rate as you move in and out of the range of transmitters.
However, under pressure from 3GPP and IEEE, HSPA+,WiMAX and LTE were also allowed to be labelled as 4G technologies despite not offering these features, as many companies had already begun investing in these networks during the two and a half year deliberation.

4G imposters

This has left the consumer market in a bit of a mess, allowing carriers to offer a variety of different “4G” plans for many years, despite none of them having a network which meets the official requirements. Let’s breakdown some of the technologies currently being offered as 4G, and why they don’t match up to the ITU-R standard.
4g technology table
A quick comparison of the theoretical and real world implementations of current and future network technologies. All “4G” products currently on the market are considered “pre-4G”. Source: Tech Spot
WiMAX
US consumers may remember that Sprint was the first to the “4G” market with its WiMAX technology. However this was only ever built to offer customers around 3-6Mbit/s download speeds and upload speeds of just 1 to 1.5Mbit/s, and was rightly shunned by disappointed consumers.
WiMAX fails to deliver even 1% of the theoretical peak download speed of the 4G standard created by the ITU-R. Fortunately, Sprint is phasing out WiMAX support in favour of its new LTE network.
HSPA+
HSPA+ is the pinnacle of current 3G technology, offering a theoretical 168Mbit/s downlink speed. In reality most HSPA+ coverage is only capable of 21Mbit/s, with some areas being upgraded to 42Mbit/s and occasionally even 84Mbit/s. But even the fastest implementation of HSPA+ is a long way behind the 1Gbit/s download speed required to be considered a real 4G network. But this hasn’t stopped a number of US carriers from advertising HSPA+ as 4G.
T-Mobile was one of the first companies to falsely advertise its HSPA+ network as 4G, and AT&T followed suit shortly after. Arguably AT&T is even worse, as its network started out with capabilities peaking at 14.4Mbit/s download and 5.8Mbit/s upload speeds, which is ridiculously slow for a 4G network. Users in the UK, and some other countries, will probably have noticed that some carriers actually offer HSPA+ as part of their 3G network packages. So it seems that US consumers are being sold and overcharged to use a slower network under the guise of a next generation technology.
LTE
More recently, carriers have begun to offer LTE options that can theoretically offer a 100 Mbit/s download speed for mobile devices. Coverage currently varies depending on your carrier and real world data speeds are often nowhere this theoretical maximum, and are often reported to only be a tad faster than HSPA+.
US LTE coverage map
It takes a long time to upgrade an entire network, but LTE is slowing making its way across the US. Source: US Cellular
To be a little more specific about the other shortcomings of LTE, other than the lack of download speed, it’s also lacking in uplink spectral efficiency and speed, and it falls short of the true 4G capacity of 3.7 bps/Hz/cell, mainly due to the lack of carrier aggregationand multi-antenna techniques, which will enable higher speeds. LTE is a stopgap solution before the real 4G experience reaches us with the rollout of LTE-A.

Carrier marketing

If all these different technologies weren’t confusing enough, carriers have been all too keen to exploit the 4G marketing term to consumers who are seeking faster data speeds. Other than offering network types which aren’t capable of true 4G speeds, carriers are beginning to offer compromised 4G packages as they transfer their existing networks over to LTE. Take a look at AT&T’s current 4G marketing, which claims to offer users “fast 4G speeds on both the HSPA+ network and on the LTE network”.
ATT 4G marketing
Based on this advertisement, you’d assume that LTE was 2.5 times as fast as HSPA+, but the reality is often disappointing.
We already know that HSPA+ is not fast enough to be considered true 4G, and the LTE coverage areas are also surprisingly small. Despite the PR talk, this “smarter” network essentially means that you’ll be dropping down to the slightly older HSPA+ network when out of range of the LTE network, and the small print even states that 4G speeds aren’t available everywhere either. That doesn’t sound like anything promised by true 4G or LTE-A.
Fortunately companies openly offer information on their network coverage, so it’s always worth checking out exactly what coverage and speed you’ll receive in your area before deciding on a 4G contract.

When can we use “true 4G”?

The bottom line is that technically, no company yet offers a true 4G experience for consumers, but LTE-A and WM-A aren’t too far away. Having said that, current LTE data plans are a step above the older 3G networks and the pre-4G connections, and is definitely what you should look out for if you’re planning to get a device with a fast, premium mobile data experience.
The technology is only going to improve with time and, because LTE and LTE-A are fully compatible, you won’t lose out when companies finish upgrading their networks.

Wednesday, October 30, 2013

iPhone 6: Release date, rumours, features and news

Apple has only just removed the iPhone 5S’ wrapper, but attention is already turning to next year’s iPhone 6. Here’s what could be in store. 
 
The iPhone 5S has had its ‘coming out’ party, with Apple unveiling its most forward-thinking phone yet. It’s got a fingerprint sensor for added security and convenience, a retooled camera module, new colour scheme and its most advanced processor yet.
From what we've seen thus far, the 5S is looking like more than a match for the current crop of high-end Android phones out there, thanks to the added benefits of iOS 7 and some great looking iPhone 5s apps. Just check out our iPhone 5s vs. Samsung Galaxy S4 to see how it stacks up against the competition.
However, as is always the case with Apple, the world is already wondering what comes next? What will the iPhone 6 – expected to be a much more expansive update – bring to the table?

iPhone 6 release date

Unless Apple dramatically changes course from its release schedule, we’re unlikely to see the iPhone 6 arrive on the scene until September 2014. However, it has been whispered that the company will launch a larger iPhone 6 as a companion to the iPhone 5S. In that case, we would be looking at a release date perhaps prior Samsung’s May/June new Galaxy window.

Apple iPhone 6 screen size

Recent reports from the Wall Street Journal have indicated that Apple is experimenting with screens ranging from 4.5- to 6-inches. Apple had to be dragged kicking and screaming from its classic 3.5-inch handset to the iPhone 5 and 5S’ 5-inch screen, but speculation suggests it is willing to push closer to the 5-inch screens offered by some of its Android rivals.
According to MacRumors, one analyst has suggested that Apple could be looking to implement a 4.8-inch Retina+ IGZO screen made by Sharp, which will make the iPhone 6 display thinner, brighter and much clearer – boasting better than HD resolutions.

Apple iPhone 6 storage

In the build up to the iPhone 5S launch analysts predicted the company would boost the storage of the device to 128GB, up from the top-end 64GB handset. That speculation will now carry over to the iPhone 6. That would tie in with the recent addition of a 128GB iPad model. Why couldn’t Apple employ the same tech here?

Apple iPhone 6 specs

In the build up to the iPhone 5S launch event, an Apple patent was uncoveredfor a fingerprint sensor that integrated Near Field Communications technology, enabling wireless payments, data transfers, media playback and more. The NFC chip was a no show. Might it be integrated within the iPhone 6?
The iPhone 5S also saw a brand new A7 processor, that’s 40 per cent faster than the A6 and a new M7 motion co-processor that tracks the users movement. We’d expect this tech to evolve in the iPhone 6 handset. Apple is yet to launch a quad-core handset. Will 2014 see it make the jump?
The device’s camera also just got a pretty significant update thanks to a 15 per cent larger sensor and a dual LED flash. There’s also new software features TrueTone flash firing, Burst Mode and slow motion video. We can only envision Apple will further hone this tech within the iPhone 6. Will we see a 13-megapixel sensor to replace the 8-megapixel snapper on the iPhone 5 and 5S?
Naturally, there’ll be the latest Wi-Fi, 4G and Bluetooth technologies.

Apple iPhone 6 appearance

Apple's iPhone 6 may have a curved, wraparound screen, according to a recent Apple patent filing. The patent shows off an iPhone design with a wraparound AMOLED screen, which appears to be similar in design to the fourth generation iPod Nano, has gained particular attention.
According to the patent the screen can be 'unrolled' or 'unfolded' thanks to a hinge or unfolding mechanism allowing the screen area to be almost doubled in size. Facial-recognition, gesture control and the layering of screens to create a 3D display were also described in the patent.

Apple iPhone 6 features

A new feature that could well appear on the 6th generation iPhone is the use of sonar as a replacement to the current infared sensors which use sound as a proximity sensor – according to this report in Apple Insider – letting the phone detect where it is, either as a way of alerting the user about an incoming object, or as a way of detecting whether the phone is being held to the users ear.
One of the intriguing features to appear on several rumour feeds is the introduction of a “smart bezel” which would display information around the screen. It emerged from an actual patent that Apple filed and, according to Macworld, the smart bezel could be a place for flashing buttons and symbols that compliment the on-screen action.
The patent states: "The primary display could be used to convey visual content to a user, and the secondary display could be used to guide a user providing inputs to the device. For example, the secondary display could be selectively illuminated to provide one or more indicators that represent where or how a user can provide inputs to the device."

Apple iPhone 6 Operating System

Unless Apple breaks from tradition and launches an iPhone 6 in the middle of the iPhone 5S release cycle, it seems that the iPhone 6 will arrive with iOS 8 out of the box. With iOS 7 bringing a much-needed visual overhaul for Apple’s mobile software, it seems unlikely that Apple will be reinventing the wheel again so soon. 

Hackers Have Seized 38 Million Adobe Customer Records




(Reuters) - Adobe Systems Inc said on Tuesday that the scope of a cyber-security breach disclosed nearly a month ago was far bigger than initially reported, with attackers obtaining data on more than 38 million customer accounts.
The software maker also said that hackers had stolen part of the source code to Photoshop editing software that is widely used by professional photographers.
The company disclosed the breach on October 3, saying attackers took credit card information and other data from nearly 3 million customers' accounts.
Adobe also said that the hackers accessed an undisclosed number of Adobe IDs and encrypted passwords that were stored in a separate database. On Tuesday, it revealed that about 38 million records from that database were stolen.
On October 3, the company also reported that the attackers stole source code to three other products: Acrobat, ColdFusion and ColdFusion Builder.
Adobe spokeswoman Heather Edell said the software maker believes the attackers also obtained access to "many invalid Adobe IDs, inactive Adobe IDs, Adobe IDs with invalid encrypted passwords and test account data."
She said the company is still investigating to determine how much invalid account information was breached and is in the process of notifying affected users.
Even though the company believes the stolen passwords were encrypted, the attackers may have been able to access them in plain text by one of several methods, including breaking the algorithm that Adobe used to scramble them, said Marcus Carey, a security researcher and expert on cyber attacks, who formerly worked as an investigator with the National Security Agency.
They could likely use those passwords to break into other accounts because many people use the same passwords for multiple accounts, he said.
"This is a treasure trove for future attacks," Carey said.
Adobe spokeswoman Heather Edell said that the company was not aware of any unauthorized activity on Adobe accounts as a result of the attack.
Yet Edell said she could not say whether stolen credit cards or passwords had been used to launch follow-on attacks against Adobe customers or conduct other types of cyber crimes.
"Our investigation is still ongoing," she said. "We anticipate the full investigation will take some time to complete."

10 Galaxy S5 features that make sense

Look at us, it's still 2013, but we're already thinking about next year's Samsung flagship. From the original Galaxy S to the current GS4, Samsung's flagship Android smartphone line-up has amazed us with its cutting-edge technology and over-the-top feature set. Having this in mind, it's easy to understand why we're so excited about all the features and goodies that Samsung might eventually stuff into the Galaxy S5.

Actually, having given it a bit of serious consideration, we believe we've managed to come up with a list of 10 things that would just make sense as part of the Galaxy S5's feature set. Well, some of these goodies probably don't have such a high chance of happening as some of the others, but either way, it'd be wonderful if Samsung manages to incorporate it all into its upcoming flagship smartphone.

Feel free to check our list of Galaxy S 5 features in the following gallery, and be sure to share your thoughts in the comments!

Source:

Sunday, October 27, 2013

BBM for Android and iOS Rollout Started Again

After one complete month releasing the BBM app, the rollout for iOS and Android has finally started again. In order to avoid the circumstances as before which made the rollout to freeze, the company has now implemented a planned line-up system, to meet the high demands of Android and iOS users.
bbm-rollout-resumes
The reservation system is solely based upon user entering his/her mail after installing the app on his/her device. The email address would hold them in a spot in the queue and they will be notified when it’s their turn.
Also note that users who have already signed up in advance to use their messenger on the website of Blackberry would not need to be in the queue. So if haven’t registered before, you need to  be a bit patient.
Also users who are already using the app can enjoy the services as before. So do you have a say on the topic? Would you like to use BBM against any other messenger like Whatsapp? Leave your views in the comment section below.

5 Things that Good Job Candidates Hate

Your business's most expensive asset is probably its people. It's all about those brains getting your work done, so you want the best you can possibly get, right? But, if you're not careful, you may be inadvertently driving away the best candidates with your recruitment policies. Here are five things good job candidates hate.
Tedious online applications. Go apply for a job at your company. How long does it take you? 30 minutes? An hour? Do you get almost done when it crashes and tells you to try again later? We like data. Data is good. But the method which many online job applications collect it is painful and intrusive and unnecessary. At some point, people who aren't desperate get fed up and quit.
Who are the least desperate for a new job? Those already employed in good positions. They tend to be the very people you want to hire.
You show me yours, but I won't show you mine. No one wants to go through a huge interview process only to find out that the job candidate wants $50,000 more than your budget will allow. But instead of having an honest discussion at the beginning, where both sides reveal what they are thinking, many recruiters demand candidates provide a complete salary history.
Now, the reality is that you should be tailoring the salary to fit the job and not basing it on previous salaries. I understand that your star candidate isn't likely to leave his current job for less money, but you know what? You never know. Instead of demanding their information, try giving up some of yours. Be honest: "We don't have an exact salary in mind for this position. It will depend on the candidate's skills, but we're looking for somewhere between $75,000 and $95,000."
Now, I know can see the sheer panic on the faces of your recruiters. "If we say that, everyone will expect $95,000!" No they won't. They aren't dumb.
Silence. If a candidate has simply submitted a resume, you're not obligated to do anything other than send an automated response that says, "We've received your resume. Don't contact us, we'll contact you." (Although you should say it a bit more nicely.)
Once you've brought someone in for an interview, radio silence is just rude. Socially unacceptable behavior. Inappropriate. You should fire your recruiters if they do this. Heaven knows I understand that things happen in the recruiting process--priorities change, budgets shrink, internal candidates get shuffled around. Still, once someone has taken time out of their day to come in to your office, you owe them a response. Remember that the candidate who isn't exactly right for today's open position may be perfect for tomorrow's open position. Simply by not responding, you may have lost that candidate forever.
Meaningless job descriptions. "Dynamic individual, self starter, who can provide thought leadership, through effective communication." Sound familiar? It means nothing. I mean, honestly, is there job description out there that says, "Boring individual, drone, will be micro-managed and expected to communicate poorly"? Because otherwise, the first job description is meaningless.
Focus on what the person in the position will actually do. And don't worry about skills that are not needed. If someone's job is going to be to sit in a cube and produce TPS reports, they don't need to be dynamic thought leaders, so don't ask for it. When you write a job description, sit down and write a list of tasks that the candidate would be expected to do in a week. Provide that information and your candidates will self-screen.
Too much focus on the perfect candidate. We all want perfection, but it's not likely that the picture you've created in your head actually exists. So don't throw out the great candidates in your search for the perfect candidate. Some things can be taught. Others really aren't necessary. I've seen people dragged through four or more rounds of interviews only to be rejected at the end, and the position reposted. In the meantime, not only does this make quality candidates want to avoid you like the plague, but you're spending a fortune trying to find someone and the position is still empty. Look for great, yes, but not perfect.

Saturday, October 26, 2013

The Power of Brainstorming

the power of brainstorming
Identifying project risk, performing risk management planning, and analyzing and responding to risk are all crucial areas when kicking off a new project. Regardless of how complex or straight forward a project may seem, there are always risks. It’s important for a project manager to think of how best to identify and address risks, especially with new projects or prototypes. So where should a project manager start? Brainstorming.
Brainstorming may seem like a very disheveled and disorganized method to generating ideas. However, while parts to this may be true, it’s also highly effective. Brainstorming can either be done individually or in a large group. Obviously we’ve all heard the phrase, “two heads are better than one”; this is certainly true with brainstorming. While the whole idea behind brainstorming is to just think up as many ideas that will pertain to a project and its associated risks as possible, there are some rules project managers need to consider.
1)      First and foremost, and probably even most importantly, there are no stupid ideas. Project managers and/or team leaders should never shoot down ideas. First, the whole idea behind brainstorming is to get creative and think up as many ideas as possible. Secondly, team members should never feel hindered to thinking of an idea or that their idea wasn’t well received or was “stupid”. The whole point behind brainstorming is to open up creativity, go in with an open mind, and just think of creative ways to respond to project risks.
2)      Keep it simple. To maximize brainstorming opportunities, groups should be held with a minimum of five team members and no more than ten team members. Whenever and wherever possible, team brainstorming sessions should include essential team members that will be participating or working on the project in some form. In addition, brainstorming sessions can also include managers, supervisors, and even higher level executives. Different levels of experience, points of view, and vested areas of interest can all be crucial components to a successful brainstorming session.
3)      Document ideas. So we’ve got a risk facilitator or colleague PM running the brainstorming session, we’ve got different team members of different areas of expertise and experience, and plenty of ideas…but how do we record them? They can either be recorded on a laptop or tablet with an overhead projector, a visual bulletin board or dry erase board, or even a flip chart. When team members offer ideas and can read them, then other ideas will “piggy back” off them, which is how brainstorming spearheads. Each team member should have at least one turn in sharing an idea.

Friday, October 25, 2013

Sense 5.5 and Android 4.3 Update for HTC One in few European Markets

The latest version of the Jelly Bean the 4.3  version with some refreshed user interface changes,Sense 5.5 update is now being rolled out in some of the European markets.
htc-one-mini-white-1
This week as the HTC UK announced that the update for Android 4.3 would just be hitting the UK version of HTC One, and the update would roll out in a few coming weeks.
But HTC has already started rolling out in a few markets of the continent. According to a leaker LlabTooFeR, the update is now rolling in Russia, and many countries in Eastern Europe, while the Android Central guys, also confirmed the roll out being started in some European Countries.
As far as the change log is concerned the update would bring in Video Highlights feature, some Music improvements and a few bugs that were found in the previous version of the firmware. Blinkfeed which can now also be disabled and has been made compatible with some more Social Networks.
The update measures about 675 MB and would upgrade the software of the HTC One to 3.62.401.1. The users on Carriers would be getting the update after some time.

How To Escalate Project Issues


“I’ve found a little problem,” said one of my project team members the other day. “Can I take you through it?” As it turned out, it wasn’t a little problem at all. It was a big issue with the product design and even though we spent a long time working out how to solve it, we couldn’t come up with an action plan that didn’t involve more time, more money or a dip in project quality. So it wasn’t something I felt comfortable with taking the decision on – it’s my role on a project to implement the sponsor’s wishes, not to approve a budget overspend. The issue needed to be escalated so that my sponsor could make the best decision.
Here are the steps we took in order to escalate the issue, so that you can follow this straight-forward approach if you need to escalate issues on your project.

Establish The Problem

What has actually gone wrong? Getting to the bottom of the problem is the most important first step. This could be relatively easy to work out, or you may have to call a number of meetings to fully understand what’s happened. You have to know everything about the problem in order to be able to fix it, and it’s really embarrassing if your project sponsor asks you a question about the issue and you don’t know the answer! Remember to also log the issue in your issue management software at this point.

Establish The Impact

What impact is this problem going to have on the project?The Wrecking ball & red wall
Maybe it means you’ll be running late and miss a deadline. Or perhaps your quality targets won’t be hit. Or a relationship with a major supplier is in jeopardy. Issues can have multiple impacts on projects and they aren’t always obvious.
Let everyone on your team know about the problem and check how it will impact each of their activities and responsibilities. One of them may be able to tell you about an impact you didn’t expect.

Establish Who To Escalate It To

Most often, you’ll be escalating issues to your project sponsor. But from time to time you may have to raise the problem to someone else, such as the line manager of a resource who is not behaving appropriately, or maybe your Finance department. If in doubt, start with your project sponsor and they can advise you about who else to talk to.

Consider Solutions

Now that you understand the whole problem and the impact it will have on the project, it’s time to think about potential ways to fix it. You need a plan to take to the project sponsor, as you’ll look unprofessional if you turn up with a list of worries but no strategies for solving the problem. Work with your project team to come up with some potential solutions that would resolve your issue.

Decide On A Recommendation

There are normally a few ways to solve problemsrecommendation on projects. You could, for example, spend your way out of trouble. Or bring a few more resources on to the team. Or find a third party supplier to procure a solution from if your in-house options don’t look that good. However, you should decide which would be your preferred strategy. This is the recommendation that you will put to your project sponsor. Ultimately, they will decide on the route forward, but make it easy for them by preparing the details about your proposed solution including the impact on the project schedule, budget and resourcing.

Book Time With Your Sponsor

Don’t spring a problem on your sponsor at a chance meeting by the water cooler. You want the time to discuss it with them properly, presenting the background and discussing the alternatives for resolving it. Book some time with them, so talk to their personal assistant if you need to in order to get a slot in their busy diaries.
You could wait for one of your regular meetings but if the issue is urgent it will be better to have a separate, dedicated discussion with them so that you can get the solution agreed and make a start on fixing the problem. If it is difficult to find time to meet them face to face, for example if they (or you) spend a lot of time travelling, then see if you can go through it over the phone. If you can, send them the details of the problem and the recommendation in advance so that they have time to look it over before the meeting.

Present Your Proposals

At your meeting with your sponsor, run through the problem and your recommended solution. You can also mention the other solutions you have considered and rejected and the reasons why they aren’t the best way forward. Most of the time you’ll find that your sponsor will agree with your recommendation and authorize you to take that forward, but don’t rely on it! Sometimes sponsors have information about the business that you did not have at the time you put together your solutions and this may change the solution that you agree on. They may even have a completely different option that they suggest themselves!

Implement Your Plan

Once you have got a decision from your project proposalsponsor, make the relevant changes to your project schedule and plans. Make sure to update your issue log with the approved solution and action plan. Then it’s just a case of working towards your new tasks and ensuring that everyone knows what has been agreed. Soon that project issue will be a distant memory!
Escalating issues is something that every project manager has to do, so don’t feel bad about taking problems to them. That’s what they are there for – one of the key roles of project sponsors is to unblock difficult situations and make it possible for you to move the project forward. If you present the problem and your solution recommendation in a professional, clear way, it will make it easy for your project sponsor to make the best decision so that you can get on with managing the project to a successful conclusion.

Wednesday, October 23, 2013

Unit testing is out, Vertical Slice Testing is in

We have been doing testing for a long time. Some people are practicing TDD, but I think that’s only 46 people in the world and they all follow my twitter feed.
</attention-seeking-headlines>
We all know the common issues people have with writing large test harnesses around systems: it seems to take a long time, existing code is difficult to test, subsequent changes to code makes a lot of existing tests fail or become redundant, and the test harnesses often can become brittle, in no small part because of the abusive use of mocking.
As a recovering TDD addict, I used to tell people, like many others do, that the issue with their TDD was that they didn’t do it right. If TDD is too hard, do more TDD! In other words, if it hurts, just bang that leg with that baseball bat a bit harder, eventually you will not hurt anymore.
I will come straight out with it: this approach to unit, integration and tdd testing has, by far and large, failed. It’s over. It is time to move on. I have, and I now do VErtical Slice Testing.

A law of diminishing returns

Whatever your test coverage, there is a point where more tests don’t equate more quality. Actually, let me be entirely honest here, I do not believe that a good test harness leads to better perceived quality software for your users.
The people you are trying to please with a good test harness are the ones using your system that are not on a high bandwidth medium with you. Usually that would be your team. To reduce the risk of them experiencing issues, and to increase the chance of them liking your software, you write tests so that their experience is positive.
A long time ago, I realized that testing everything is not always feasible for me, and I practice TDD all the time. A quick mental review of the teams I worked with in the last 12 years I’ve been practicing TDD also tells me that this fact is rather general.

Mocking considered evil

I’ve never been a big fan of mocking frameworks, for one simple reason. Simple stubbing relies on assumptions on the functioning of the mocked part of your system that rarely match reality, for no one is going to look at all the documentation of an API and decompile the code when writing a one-line stub.
As you progress in your implementation, you may learn about more scenarios you didn’t cover, and provided you are in that tiny little fraction of a percent of people refactoring your test harness as you progress your implementation, you may feedback some of that knowledge in previous tests you wrote and in your test doubles, while caressing your pet unicorn and enjoying a bit of sunshine on planet Equestria. Or if you’re like the rest of us, you probably won’t.

Increasing returns for user interfaces

Admitting to myself that I could not fix those problems (you cant fix stupid!), I started trying to understand how I could bring some of the TDD practices I enjoyed (fast feedback, repeatable tests, etc) while increasing the perception of quality, leaving any theoretical or coverage notions behind me. Instead of starting from the components I want to put under test, I start with what my users, hum, use.
If I provide users with an API, I will start by the API that I decide to publish, and consider everything else implementation details. I will only document and polish, a.k.a. test, what other people may use.
All the same, if my user interface is not an API, but some sort of UI, there is very little reason to care about all the scenarios a component may face that cannot be triggered from that user interface.
The process of discovering your user interface has an added advantage. The answer to most but what if questions about such a top-down approach usually unveils an additional user interface you didn’t quite know you had (looking at you, JSON SPA AJAX <insert buzz word of the day> Frankenstein “web” apps).
This is already an understood concept, and is usually referred to as acceptance testing.

At warp speed, everything is relative

A common issue arises from using existing acceptance-driven tools. Automating the browser is slow, automating a DB is as well, so is the file system. Each of those may also fail for reasons that have nothing to do with your code.
That would make your tests brittle and slow, which inexorably will lead to longer feedback cycles, harder to run tests, which would get us straight back to my introduction and why traditional approaches to TDD have failed.
Acceptance testing recommends, to avoid such a problem, the creation of an alternative interface allowing you to remove the browser from the equation. This is no longer necessary. With tools such as zombie being available for free, you can run an in-memory browser that behaves like a browser, runs in-memory and is increadibly fast. No more Selenium issues on running your automated test suite, no interaction with your operating system’s UI library, it’s all fast and beautiful. And if your user interface is an API, unit testing frameworks and test runners have provided those advantages for many, many years.
External-facing components are now in-memory, making executing our tests fast and reliable by not triggering external systems.
I now apply the same concept to internal facing components. Instead of mocking out the inner-most elements, such as the file system, the network or a database, of my system on a per-method or per-component basis, I use libraries that give me, out of the box, an in-memory version of their system that is functionally equivalent to the real one.
It means an in-memory file system would implement the same locking primitives as the real systems, the same rules around reading, writing or seeking data, and be as close as the author of the library can make it to the real system.
In other words, a VEST-friendly library turns the unit tests of that library on it’s head. The component accessing external systems is developed alongside it’s test-double variant, and both are built to react, error-out and validate calls in the same way. The test double can be shipped. I don’t write the mocks, they come as part of the package.
There are many advantages to such an approach. The author of the library knows intimately the contract he provided you as part of his API. The act of providing an in-memory version means this knowledge is now expressed explicitly, forcing error conditions (which are very much part of a user interface in an API) to be accounted for.
A VEST-friendly library will usually end up testing explicit contracts in their test harness, so we go one step further. A library author can ship the test harnesses that exercise the contract they expose for all the conditions that are known to potentially exist, and once again, we turn test code into shipping code: if the author has written a test harness, and the author builds two components implementing an interface, the test harness for the explicit public interfaces can be shipped, as it’s probably already written.
I believe this process to be recursive and leading to the pit of success, as any library built using VEST in mind will naturally feed the VEST approach.

Vertical Slice Testing

The VEST approach replaces all external system calls by functionally equivalent stable and controlled ones, both at the outer-most layer (whatever exercises the user interface) and the inner-most one (whatever touches the low-level IO APIs).
By using VEST, I can focus on delivering web pages or components that focus on user-interaction, I can run the whole system on every test, and do it very quickly. I can change a lot of inside internal code without breaking existing testing scenarios. And should I wish to implement components replacing the ones in my libraries, I can do that without writing tests, because the test harness is already there, testing the contract for me.
Note: As I’m abroad and not available that much, don’t expect quick answers in the comments section but I’ll try my best. Subjects not covered but not forgotten: my team as a user, availability of VEST libraries, code samples, library author burden, brown field projects, generic crazy-talk, unicorns not being ponies, “you never worked in a team!”, “in an ideal world…”, etc.