0 comentariosRead On
I want to begin this article mentioning it is a suggestion made by a teammate 1 or 2 months ago, a teammate who moving to do his dream and do what he likes and enjoys, this is a bitter-sweet feeling although I am always happy when people find their dreams and passions, anyway this is a different history.
My goal with this article is to share my thoughts and the journey in the team I work with in terms of which is the best approach in terms of technology for a mobile App development, it is a no easy decision to be made,
I've started in Mobile Development around 2005 when J2ME promised to develop an App in Java with to ability to run in many devices, but the reality was that lot of specific configurations, images and even code was needed depending on the device. Also, I remember we had many mobiles to tes same App in maximum variants as possible. This changed massively when Android and iOS came on board, I remembered my first iPhone Dev Conf in Madrid around 2009 where everything looked very promising to develop nice Apps although the programming language looked very odd to me. With Android and iOS a big step was made, they helped developers to don't get disturbed about screens sizes and different behaviors for device features like GPS, camera and others.
We can say after this new era with Android and iOS, hybrid solutions like PhoneGapp, Ionic and others appeared, but I've tried for a couple of times and they didn't convinced me for high performance Apps managing a certain amount of data, although for small Apps and for quick prototyping is probably the best choice. I've discovered those options around 2013, a bit late maybe but I've released at that moment 10 Android and iOS Apps, my bet at that moment and know is to develop Android and iOS Apps instead of use Hybrid options, maybe because I was more use to those platforms and it would be faster.
The next big step in Mobile Development is happening now from my point of view, where new "Hybrid" solutions are getting more popular in the market, we are talking about Xamarin and others. I came across Xamarin few years ago and I've recognized I've started to investigate more once Microsoft bought it. More and more Apps are being developed in Xamarin and from my point of view the key point of this is because the user interface can be defined once and it looks like the same App not just in mobiles and tablets running the same Operating System, it looks like the same in different operating systems, although my view is that a particular feature in the mobile is needed (let's say gyroscope) could be a big challenge for the Developers, needed a particular implement in each OS and imported as external library in Xamarin, probably acceptable in most of the cases.
Xamarin has let me discover other option in this Mobile Development World, its name is flutter (it seems supported by Google) and it promises one development for several platforms, although it is in a early stage and looks very young yet, but it will be good to see how it progresses.
I want to make clear I'm writing about my opinion and experience, which could be wrong but it will be nice to write a new article in the future if things change or my view is different cause I collect ore information and experience. It is a reality people in the street is very familiar with Android and iOS devices and I don't think it will change in the recent future although businesses are b coming more Microsoft friendly in terms of devices, it seems because security reasons. That means if you want to develop an App for people my bet would be for both Android and iOS Development, and if you want to develop an App for private businesses yes should probably go for Xamarin which will let you run your App in Microsoft devices but also in Android and iOS in case some businesses want to use other devices with your App.
It is very difficult to see really the next big step after the current one happening, I would say there are few questions to be answered like which is the roadmap of Xamarin to be followed by Microsoft I the next few years? Will Google introduce Flutter as one single solution to develop Apps in Android removing Java as an option? Apple see,s to be also in the same "Hybrid" way with one solution to develop Apps for mobiles, tablets, laptops, etc running OS X or iOS, will be iOS a substitution of OS X? Probably functional programming will be also an important variable in the equation of the next step in Mobile Development tale, it looks a very good language for UI, another chapter or spin-off in the history of Mobile Development would be.
0 comentariosRead On
I've read several times in the last few months that there are companies removing Test or QA Teams in the organization. Something that was like a "seriously? It can't be as testing ensure the quality and quality is one of the most important thing if not the most in product development", but after a few months tuning the ALM I was involved I've started to understand what the comment "that company has removed QA" means. I have to say I didn't read more than comments about remove QA, I never red the reasons, probably because I didn't want to know as I thought on that as something unthinkable.
If we imagine the usual situation where there are teams developing the software and teams testing the software, some years ago those teams where located in different places even in the same office, but now companies are moving them together, QA team member next one or two or even three developers, keeping the communications faster and clearer which is one of the key of the QA - Development relationship.
6 months ago we started building our QA Team with our first member, sitting down next to Developers and understanding how company runs Development Lifecycle, and at some point our QA player started to write UI, Integration and Instrumentation tests, so he became to be part of Development Team but not developing code or fixing bugs, everything related to testing the code to be written or already written.
After few months running this experience we can say it has been great for both parties, developers and testers feel they are the same team and they are developing the same product, giving to that product the right quality. Now, we can say or understand QA Team Members are becoming part of the Development Team, removing the words QA Team, but behind the scenes QA is still present.
2 comentariosRead On
Let's say we are part of an Agile team, running sprints to develop a software product where developers, testers, product owners and scrum masters are collaborating to deliver new features or functionalities in each sprint. One the classic discussions are around testing within sprint or testing after the sprint, but let's have a quick look to both approaches.
Testing within the sprint could mean that developers write Unit Tests and Code as first thing in the sprint and deliver the new code to QA Team some days before the sprint ends to let run testing plan and see if new code is bugs free.
In the other hand, testing after Sprint ends could mean developers are focused in write the new functions and features while running the sprint and the code is released to QA Team once sprint ends, letting developers to run a new sprint.
My thought came to my mind when running running sprints following the first approach (testing within sprint) developers were always delivering new features to QA Team with a very tight time to run the testing plan. We made the decision to run testing plan at the beginning of the next sprint, which means developers would prepare a new release ready to test when Sprint ends and move to the next Sprint. This helped to let the Developers understand the release ready to test should be under proper testing (developer testing) as they are the owners of the work delivered, letting QA Team to be focused on ensuring the software works as the Product Owner defined.
With QA is not testing we say Developers proceed with the testing of the new code written, following TDD they test their code runs properly and put in the output the expectations for the given inputs. With this Development Testing in place, he QA Team will run testing plan rounds being focused in the functionalities, ensuring the quality of the product meet expectations.
Of course this is not a must, each team should find their path at any moment and look always to the results to see if they should tune their current process, an specific approach could work for a particular moment developing a particular product with particular team members, a change in the equation could produce a change in the approach followed, just keep looking yourself to keep moving to the great success.
0 comentariosRead On
It is a pleasure announce my first Android Library, it is a simple JSON client with the goal to use in backend web services communications. Decody JSON Simple Client is a set of classes I've written and used in several Android applications and I want to share with the community, hopefully, it won´t be the first library.
Check the library in Github and let me know your feedback, also it would be great if someone is happy to help with new changes and features I have in the ToDo list, the library is currently looking for contributors.
0 comentariosRead On
If you listen "Material design" your head goes probably directly to Android 5.0 aka Lollipop, but it seems Material Design is more than a new version for Android devices / platform. it's a concept Google team wants to circulate or put in every interface.
Part of this ecosystem is the new framework for Web Developmentcoming from Google developers, it's called Polymer and it's basically a framework to create web components, it lets transactions between components, interactions, more details can be found in the demos section of the website, specially Topeka.
Other excample and inline with our developments is the Material Design implementation for AngularJS, which contains some nice components for user interface.
As an end of this article, it would be better give you more details reading the article analyzing the differences between Polymer and AngularJS.