Problem: What is the best way to create a living, breathing Roadmap that follows the reality of an Agile development life cycle without much overhead required to maintain it?
One of our clients came to us with the problem above. For this post, we will call this client – Master Splinter. They have been using Atlassian’s Jira Software for a while now and have realized that with all this data they have accumulated within Jira, they should be able to do a much better job at predicting deliverables as well as be able to quickly see when timelines start shifting due to the realities of the software development processes. If only there was a tool that could easily aggregate all this data and display it for the tech and management teams to view.
I didn’t call them Master Splinter for nothing. This team was as wise as the old Sensei. They knew that Atlassian has a massive marketplace with different plugins available that do all sorts of useful stuff. However, with so many options to choose from, which is the best tool to do what they need? That’s where Sphere’s experts come in.
We talked to the stakeholders from team Master Splinter and helped identify the most important features they were looking for in this plugin:Read More
Smart apps designed to make our lives easier are becoming increasing popular. These range from fitness trackers to lightbulb controls. When designing these apps, you may find you need to improve the user experience. Or you need to access the raw data, but setting up a full stack project would be overkill for this purpose. That is when Electron comes into play.
Electron is a new way to develop modern desktop apps with all the power of Node.js, HTML, and CSS. You can easily complete a functional app in a short time frame, which could solve 80% of your day-to-day needs.
In this example, we are going to explore the Electron universe by creating a simple app that will give us access to the IoT world. Integrating scales from Xiaomi, we will build a “Smart Scale” app that will show the user’s weight in real time. With Electron, the data will be collected and presented in a nice, clean format. Read More
“Nothing is more powerful than an idea whose time has come.”
– Victor Hugo
“Design is really an act of communication, which means having a deep understanding of the person with whom the designer is communicating with.”
– Donald A. Norman, The Design of Everyday Things
For decades, critical analysis has held sway in business problem solving protocols. The process involved breaking down intricate complexity into smaller components in order to figure out the specific issue. Analysis of this sort is achieved by understanding the individual parts. Unfortunately, this exercise has become mandatory on some level because today’s business world can be unpredictable and easily disrupted. So for organizations to both survive and thrive, new methods need to be generated that embrace the volatile nature of contemporary business from a creative perspective. Essentially, it’s an evolutionary practice derived from creative thinking, which involves a company’s full team effort. Read More
Reasons to create autotests
BI solutions are usually designed to help businesses make decisions about their companies. Can you imagine a situation in which a decision is made based on incorrect data? It could lead to serious problems for the company. It is therefore very important to have trusted and reliable data in your BI system. One possible method of detecting incorrect data is the implementation of autotests. They may be used in different phases of your BI system. You may use them in the development process of your BI to make sure that any changes made are expected and acceptable. Autotests can also be used as part of your daily ETL. You can flag errors in critical data or even roll back new data to its previous version in your BI system. Read More
Recently, one of our clients asked us how to ensure that their prototype launch was successful. In our climate of constant innovation, technologies are becoming obsolete at a never-before seen rate.
There are, of course, no guarantees — but using a “Minimum Viable Product” approach is the best place to start.
In the following post, I will break down the steps to create an MVP, using the example of the worldwide gaming phenomenon, “Pokémon GO.” Read More
When one of our fortune 500 clients asked us how to increase their effectiveness on mobile platforms, our answer surprised them.
The average person looks at his/her smartphone over 150 times per day, totaling over 3 hours of screen time. Thus, as a business owner, it is essential for you to reach potential customers on their devices. To do so effectively, you must optimize your mobile strategy.
There are three core principles every successful mobile site should focus on to satisfy its customers: Read More
Software development companies are under constant pressure to deliver new applications that will satisfy every user’s needs across all devices and locations, preferably at high speed and low cost. Automated testing has become a way to ensure applications are error-free, cost-efficient, and quickly delivered.
Automated testing takes place on several levels of the project:
- Unit testing: Usually performed by developers, the main goal of these tests is to make sure that the app’s components match in terms of functional requirements. For example, a unit test could involve an OOP class or function.
- Component testing: Usually performed by developers, the “component” being tested is a part of the high-coupled logic. For example, authorization, payment processing, and order submission could all be components.
- Integration testing: Usually performed by developers and QA, the goal of these tests is to make sure the app’s components all interact properly.
- System testing: Performed by QA, these tests check that the application and the system are compatible.
- Acceptance testing: Performed by QA, these tests are done to ensure that the specification requirements are met.
- Alpha testing: Performed by development and user experience teams, these tests are done at the end of the development process.
- Beta testing: Performed by user experience teams, these tests are done just before the product is launched.
The world-wide web has become very dynamic and complex. A myriad of UI elements should interact with one another while being responsive to the user. For example, if the user presses the button “A”, the button “B” should be hidden, but several additional panels with their own buttons, checkboxes, and other UI elements should be shown. If a developer is trying to implement this functionality in a typical JS-imperative paradigm, it turns into “callback hell.” After some time, technical debt makes support of such an application and development of new features virtually impossible.
Present-day frameworks, such as Angular, may seem like a solution, but they create substantial “accidental complexity” in the framework. At first, dynamic, asynchronous pages may look fine simply because they work. However, as the project becomes more complicated, we become trapped in the framework. Read More
Python is a dynamic interpreted language that has gained a lot of traction in the past 12 years, even though it is actually 26 years old. It is a general purpose language fit for different kinds of tasks, not a one-trick web pony like PHP was. And it is the 4th most mentioned language by the TIOBE index today ( up two points since last summer ).
Python is used for system administration, testing automation, GUIs, game scripting, web development, and data science. And the secret to its popularity is its philosophy. When we ask others, “Why did you chose Python for this job?” …. the most common answer we hear is “because of its rich ecosystem.” Indeed, Python is famous for its ease of installation and diversity of third-party packages in addition to its “batteries included” approach. From database abstraction layer or API to some rarely used payment gateway — “there’s an app for that!”
Let’s imagine I am building an iOS app that contains four features located at the bottom of the screen. For the base navigation, I start with the native iOS UITabBarController:
However, as I decide to add more functionality, I quickly realize that adding additional tabs to the navigation bar at the bottom will hide their names and make them harder to access. Read More