ALU

developer

Doing Cloud Right: Takeaways from Our Recent Jez Humble Webinar

Last month, we hosted our "Doing Cloud Right Webinar" with Jez Humble (DORA CTO, author) and Anders Wallgren (Electric Cloud CTO). In the webinar, Jez and Anders discussed some of the most striking findings of the recent 2018 Accelerate State of DevOps Report (ASODR), including the fact that organizations that "do cloud right" are 23 times more likely to be elite DevOps performers!

Continue reading for some top takeaways from this insightful webinar.

Original Link

How to Build Hybrid Cloud Confidence

Software complexity has grown dramatically over the past decade, and enterprises are looking to hybrid cloud technologies to help power their applications and critical DevOps pipelines. But with so many moving pieces, how can you gain confidence in your hybrid cloud investment?

The hybrid cloud is not a new concept. Way back in 2010, AppDynamics founder Jyoti Bansal had an interesting take on hybrid cloud. The issues Jyoti discussed more than eight years ago are just as challenging today, particularly with architectures becoming more distributed and complex. Today’s enterprises must run myriad open source and commercial products. And new projects — some game-changers — keep sprouting up for companies to adopt. Vertical technologies like container orchestrators are going through rapid evolution as well. As they garner momentum, new software platforms are emerging to take advantage of these capabilities, requiring enterprises to double down on container management strategies.

Original Link

How to Be a 20x Engineer (Instead of a 10x Engineer)

We’ve all heard about the 10x engineer phrase, haven’t we? Did you know that the original study back in the 1960s actually mentions a 20x difference between a great engineer and a bad one? It compared initial coding time, debugging time, program execution speed, program size…quite a thorough study, but definitely with some flaws (hey, it was the ‘60s). The general consensus is a 10x difference. I personally think that the difference can even be 20x for really great engineers, and I will explain why in this article.

Note that this difference becomes even more important if your product happens to be successful and scalable. There is nothing like code that is maintainable and scales. You can put 20 bad engineers to work on it, but they won’t achieve what a great one can. (Well…actually, I guess you just can’t build a scalable product with only bad engineers. But that’s not the focus of this article.)

Original Link

Everything You Think About Shadow IT is Wrong

Shadow IT has been hotly debated in the tech industry for many years now, and is still an area of concern for IT leaders—it instills a fear of loss of control/security in them and leads to unregistered costs. In fact, research by Everest Group found that it comprises 50 percent or more of IT spending.

What if I told you that this loss of total control is actually the best thing that is happening to IT? It sounds crazy at first, but hear me out. There’s no doubt that the landscape of business is changing in all sectors, that the changes drive deep into the core business and the tectonic shift is ongoing and fast. This creates a significant challenge for IT as the business demands an ever-increasing level of agility and speed, but without a sacrifice of security or quality. It doesn’t seem fair. Something has to give. This is why you need to take a page from the sharing economy and actually embrace the good parts of shadow IT and while putting in guard rails to control to ensure that it fits your strategy.

Original Link

13 Tips to Build Better Community Engagement

A community is only as strong as its contributors. Whether you’re at the top when it comes to user engagement, or you’re at the bottom struggling to excite your users to participate, here are 13 tips to help you improve engagement and foster a mentality of sharing. 

1. Create Exclusivity

Who doesn’t like being rewarded for their work? (obviously a rhetorical question!) Everyone likes to be rewarded for their work, and your community is no different. To successfully run a community your members need to be engaged, sharing, and collaborating. To encourage participation, create exclusivity for your best users. Options to do so could be sending them a swag pack, creating a beta preview of your upcoming software release, sending them conference tickets, or inviting them to your headquarters. The opportunities are endless, so be creative. 

2. Community Awards and Badges 

Based on the user flow of your community there are many opportunities to award your users with badges or awards for their contributions. For example, if you have a contributor that is always asking great questions (that your marketing or product teams are most likely gaining insight from), you can award them with a badge (with whatever peculiar title you’d like) for their questions. Taking this to the next step, you can have awards that are given to users when they’ve accrued a certain number of badges. 

3. Packaging and Delivery 

In addition to your website design, there are lots of notifications and emails that people can get in or out of your website/app. Take a moment to review your on-site messages (or pop-ups) or the emails that a user will get from you when they are signing up or getting an answer to their question. Make sure that all of these notifications match your site and get your users excited to respond and re-engage with your website. The clearer you paint the picture of your brand at all touch points you have with your user, the more likely they are to engage, talk about your community to their friends and colleagues, and most importantly, remember you. 

4. Remove Advertisements 

It shouldn’t be a surprise: people don’t want to see advertisements everywhere anymore. They’re over it. To improve your engagement and user experience, remove outside advertisements from your community. When people are engaging with your brand, asking questions, reading or learning, you want them to be focused on your brand and experience and nothing else. Tailoring your user’s experience to solely focus on their needs and how you will help them with those needs will create an engaging environment where they go to solve their problems. 

5. Let Your Users Personalize Their Experience 

Simple touches to allow your users the option to personalize their account and experience with you is a great way to gain trust. Whether it be a green background instead of a blue one on their profile page, or a different text size and font to allow them to read better or faster, people take those things into account when deciding where they want to spend their time on the internet. An easy win is writing it in the code to allow your users to view your community and its spaces in their preferred language. Depending on the use and activity level of your site there are lots of options you can cook up with your team to deploy within your community. 

6. Open Feedback Loops 

You’ll never know what your users enjoy or dislike about you if you don’t allow them the opportunity to tell you. Better yet, open up the feedback loop on your own terms rather than them getting frustrated about something and posting about it on Twitter or another site. There are many ways to get feedback from your customers and you can choose whatever option makes the most sense for you and your users. For example, send out a satisfaction survey that asks them to rate you from 1-10. If they give you a rating between 1-6, ask for feedback as to why they rated you as such and follow up to ensure them that you will work to remedy any of their issues. If they rate you 7-10, ask them to tell you what they’re enjoying or what has gone well so you can have insight into what features of your community are working. 

Many companies send out quarterly or semi-annual net promoter score surveys (NPS) to their customers/users to get a well-rounded data-driven view of the health of their community. If you’re looking to benchmark your performance and continue with a data-driven approach, NPS surveys are a great idea. 

7. Product Development 

We live in a time where people expect the latest and greatest in updates every few weeks (you can thank Apple for that). With that “norm” in place, you have to prepare your releases for your community wisely. Tying into your feedback loops with customers, they share those things hoping that updates to the community and the user experience will be made at some point. Staying current and continuing to improve your community and its features will help you stay current and keep people coming back (especially when they had a hand in an idea for an upgrade). 

Lastly, be transparent with your updates and what you’re planning to remedy for your customers. The more in the loop they feel with updates the most connected they will begin to feel with your community

8. Actively Show You Care 

BE PERSONAL! I mentioned it above and I will again, be personal. Make the experience your users have in your community unique and personal and they will feel will feel valued and heard. This could be taken in a few ways, the first of which being that you could target individuals with specific messaging or content that you know they are interested in. Another is working on a first name-basis; if you have a community that is capable of functioning with users sharing their first name within their profile or as their username, do it! The feeling that you are having a 1-1 conversation with someone on the other side of a comment, discussion, or bug fix will make a great difference. 

9. Community Events 

As I mentioned above, creating exclusivity not only gets people interested, but it shows them that they are special. Being a part of your community is something you want them to do, and you want them to feel like it is something that they want to do, too. A great way of doing that is hosting community events. Your community events can be in-person or digital, both are great options and allow for much higher attendance and engagement. 

In-person events could be meeting at your office, or out a restaurant for a networking evening. Any setting where you have like-minded people in the same place is a good one. Digital events open up your opportunity to a global audience. Think about scheduling a live online discussion, or a webinar where certain people get to speak and share their stories. There are lots of options, you and your team just need to decide which of them will work best for the members of your community. Or better yet, send out a poll and ask them what they are the most interested in. 

10. Recognition 

Sending out a shout-out to a user or a group of users is a great way to get people talking and to make them feel appreciated. Like we said before, your community is only as strong as its users, so take care of them and make them feel appreciated. 

Ideas for recognition: shout-outs, awards, special permissions, birthday wishes with a personal note, user-join anniversaries, and many more. 

11. Stay In The Loop 

You aren’t limited to the walls of your community when it comes to interacting with your users. If you have a rockstar user that asks amazing questions that encourage your team to think outside the box, or they engage a lot with others users within the community, or whatever it may be, look them up on social channels (LinkedIn, Twitter, etc.) and follow them. They’re taking the time to stay in the loop when it comes to your community; now afford them the same interest. 

12. Go Offline 

We may live in the digital world, but it doesn’t mean that we are forbidden from sending a handwritten letter to your user or making time for coffee when you’re local to one another. There is still LOTS of value in engaging with your users face-to-face, so take advantage of it and get to know them outside of your online community. 

13. Hire Them

What better way to show one of your users that you are thankful for their participation and expertise than to offer them a job! Your best users don’t just come out of nowhere out of luck; they are interested in what you have to offer. Think about your stand-out users next time you need to hire someone, because they might be the perfect person for the job (not to mention you will affording them an amazing compliment by showing you notice their expertise and potential)! 

Original Link

Community Series 102 — What if QnA Was More Than Just QnA?

There are countless free and inexpensive options if someone is looking for a Q&A solution for their teams. Heck, the founder of AnswerHub is the same person who developed OSQA (open source Q&A). Why did he revisit the solution and turn it into a paid solution then? The answer isn’t just that he wanted to make money (although that’s always nice).

Screen Shot 2018-05-21 at 8.20.54 AMThe long and short of it is that Q&A may be the initial cause for people to seek a solution, but it’s not enough to keep developer teams engaged; they’ll slip back into old habits of emails, instant messages, and in-person visits to get their questions answered. We saw a high level of initial engagement and then a steep drop, off which led to unimpressed community managers and ultimately the same need arose, it just wasn’t the need that people thought they had.

Screen Shot 2018-05-21 at 8.22.05 AMWhat people really need when they ask for a Q&A solution is a developer engagement strategy that can increase the speed of project completion, decrease support costs, and creation of a place for knowledge to be shared. When we presented this idea to companies would eventually become some of our first clients, they were skeptical. Who wouldn’t be? We just decided to take away a “free” solution and ask them to start paying for something they didn’t know they needed. What they discovered, however, was that when they made Q&A into a developer community, they saw increases in productivity resulting in project completion on time or ahead of schedule. They saw their senior developers reduce the amount of time they spent answering the same questions weekly leading to more focused leadership. And they saw a community form around their product where people were sharing more than just their knowledge, developers started suggesting ideas for the product.

They brought in their product leaders at this point and started to map out what the community answerhub forums wanted. Then they mapped it to their current product plan and figured out where they could win fast and what projects the community really cared about. It fundamentally changed how their product team worked. Their developers were happy, too, because the company started releasing updates fitting the exact needs of the community. The kicker is that many of our clients have since hired people directly from their communities. What better place to find the next superstar of your team than in the community they participate in that’s focused on your products?

At this point, our new customers understood the value of a developer community, and how Q&A (even though it was supposedly their need) was a secondary issue. What could your developer community do if they had a dedicated place online to collaborate? What if your Q&A solution was more than just Q&A?

Original Link

Community Series 101 – What is a Developer Community?

A developer community is generally defined is a group of developers gathered in a place to achieve a common goal. Thanks for reading!

Oh, you want to know what that looks like? Ok, I can understand that.

The purpose of a developer community and the pieces that build the community puzzle are complex and different for each unique case. Developer communities usually stem from a general problem of information silos, senior developers spending their days answering questions rather than coding, or product teams creating things that their communities & customers don’t actually need or want.

online_community

Communities are all centered around contributing and interacting with the express purpose of establishing a foundation of organic knowledge sharing, ultimately becoming an on-demand knowledge base for faster workflows and decreased support costs. The best developer communities encourage creation and curation of on-demand knowledge bases through gamification including badges, profile status achievements, and leaderboards. Games are a great way to increase engagement of the community, and developers aren’t unique in the way they want to show off their hard-earned knowledge. A great developer community will also decrease support costs by moving your support system from a one-to-many or one-to-one to a many-to-many system. This transitions your organization from having a support team answering technical questions or having a senior developer answering questions to a self-sufficient community that answers each other’s questions.

Speaking with a prospect the other day, their main problem revolved around the fact that their most senior developer is spending all day answering emails and messages for a team of 45 developers. They’re experiencing serious growing pains and needed a way to get him back to coding and building the product. His value is being wasted as a support member rather than what hone-man-armye’s an expert at. AnswerHub provides advanced search functions, easy tagging solutions, and expert identification in the area of Q&A which will potentially help this prospect create a support system of engaged developers rather than a “one-man army.”

As we go more in-depth over the next few weeks of this series. We’ll cover how Q&A works in a developer community, what topic focused articles can add, and how ideation can give your product team a roadmap, giving them a better finger on the pulse of your customers (both internal and external).

Original Link

A First Look at dbForge Studio for MySQL

dbForge Studio for MySQL is a powerful integrated development environment (IDE) for MySQL from Devart, an industry leader known for its database development tools. In this article, we will discuss some of its features database developers, analysts, DBAs, or architects may find useful.

Disclaimer

This is not a product promotion article. The author is not affiliated with Devart or any other company associated with Devart.

General Features

Access to a Wide Range of MySQL Flavors

dbForge Studio for MySQL is compatible with a wide range of MySQL flavors, storage engines, and connection protocols. Besides the open-source MySQL database engine, it can connect to MariaDB, Amazon Aurora for MySQL, Google Cloud MySQL, and Percona Server to name a few. Other exotic distributions include Oracle MySQL cloud, Alibaba cloud, and Galera cluster. We were able to seamlessly connect it to an Amazon RDS MariaDB instance. When we tried to do the same from MySQL Workbench. it showed us the following message:

MySQL Workbench Warning

MySQL Workbench did connect to the MariaDB instance after the warning, but we could not see the system databases from its navigation pane.

Look and Feel

The user interface of dbForge Studio has a modern, intuitive look and feel. Tabbed panes, non-cluttered toolbars, and context-specific menus make navigation through the tool fairly simple.

dbForge Studio for MySQL UI

Those familiar working with Visual Studio will feel right at home with its default “skin.” There are other skins to change the UI theme:

dbForge Studio for MySQL "skins"

Command Line Automation

One really good feature of dbForge is that most actions on the UI can be exported to an operating system command. There is a button labelled “Save Command Line…” with most dialog boxes. This allows the action of the dialog box to be exported as an operating system command. The options chosen in the dialog box become parameters for the command. This can help users automate regular database tasks from their desktop:

Command Line Execution File Settings

For the Database Developer

Code Snippets

A good IDE should help developers save time and automate tasks as much as possible. When it comes to developer productivity, dbForge for MySQL offers some of the industry standard features like code completion, syntax checking, code formatting or code snippets. Here are some examples of code completion and code snippets:

Code Auto Complete

Creating Code Snippets

Using Code Snippets

Object Dependencies

Objects like tables or views can be checked for their relationships to other objects in the database. This can be done by choosing the “Depends On” or “Used By” folders from the object tree. The dependencies are shown in recursive manner. This can be really handy when troubleshooting or debugging code:

Checking Object Dependencies in dbForge Studio for MySQL

The CRUD Generator

Another good feature of this tool is the CRUD generator. Right clicking on a table and selecting CRUD from the popup menu will create a template for four stored procedures. Each procedure will be for a basic CRUD operation (SELECT, INSERT, UPDATE, DELETE):

The CRUD Generator

Here is a portion of a sample script:

DROP PROCEDURE IF EXISTS usp_dept_emp_Insert;
DELIMITER $$
CREATE PROCEDURE usp_dept_emp_Insert (IN p_emp_no INT(11), IN p_dept_no CHAR(4), IN p_from_date DATE, IN p_to_date DATE)
BEGIN START TRANSACTION; INSERT INTO dept_emp (emp_no, dept_no, from_date, to_date) VALUES (p_emp_no, p_dept_no, p_from_date, p_to_date); /* -- Begin Return row code block SELECT emp_no, dept_no, from_date, to_date FROM dept_emp WHERE emp_no = p_emp_no AND dept_no = p_dept_no AND from_date = p_from_date AND to_date = p_to_date; -- End Return row code block */ COMMIT;
END$$
DELIMITER ;

The Schema Comparison Tool

Most database client tools would offer schema comparison and synchronization feature. dbForge is no exception. The intuitive user interface makes searching and reconciling schema differences very easy:

The Schema Comparison Tool

The Debugger Tool

Finally, the debugger will be another great feature for developers:

Debug Wizard

The debugger wizard requires the dbForge debug engine to be deployed in the MySQL server and creates a database called cr_debug. This database has all the procedures, functions, and tables required for user code debugging. Deploying the debug engine requires the user to have process admin rights, and we found this feature does not work with MySQL in Amazon RDS, because RDS does not allow access to the backend server.

For systems that allow deploying the debug engine, MySQL developers can run their stored procedures with “Compile for Debugging” option. This inserts custom debug code to the procedure, calling routines from the cr_debug database. This added code allows developers to perform step by step debugging on the code instead of using custom debug messages. To keep things simple, the debug code is not displayed when a procedure or function is loaded in the dbForge editor.

Once the code is ready, developers can easily remove debug information with a few mouse clicks.

For the Data Analyst

The Data Comparison Tool

Like the schema comparison tool, dbForge for MySQL has a data comparison tool that should be useful for data analysts and developers. It has an intuitive interface for comparing and reconciling data between two tables:

The Data Comparison Tool

Data Import and Export

dbForge Studio for MySQL can connect to ten different types of data sources for importing and exporting data. Notable types are Google Sheets, XML, or even ODBC connections. We were able to copy an Excel sheet in no time. Then, we tried with a JSON document — again, that was a breeze.

Data Import Wizard

Compared to these types, the Table Data Import wizard in MySQL Workbench can import CSV or JSON only.

Master-Detail Browser

The Master-detail browser is a great tool for viewing data relationship. Analysts can use this tool to quickly check different categories of master data and their child records:

Master-Detail Browser

Pivot Table

The Pivot Table feature can be used for data aggregation, grouping, sorting and filtering. For example, a source table may look like this (we are using the Sakila database as a sample):

Source Table View

With a few mouse clicks, the pivoting feature allows us to break down or roll up the rental income figure:

Pivot Table in dbForge Studio for MySQL

Reporting

Not too many enterprise class query tools have a built-in reporting facility. dbForge Studio for MySQL comes with a nifty report designer. Users can create reports either by choosing one or more tables or using their own custom queries. Once the wizard finishes, the report opens in a WYSIWYG editor for further customization. Once ready, it can be saved in Data Report (.rdb) format:

A Simple Report Created in dbForge Studio for MySQL

For the Database Administrator

Database administrators would find most tools they use for day-to-day management of MySQL databases are similar between dbForge and MySQL Workbench. This includes:

  • User management (“Security Manager” in dbForge, “Users and Privileges” in MySQL Workbench)
  • Table Maintenance (Analyze, Optimize, Check, CHECKSUM, Repair)
  • Current connections to the instance
  • System and Status variables

Similarly, backing up a database is as simple as right-clicking on it and choosing “Backup and Restore > Backup Database…” from the popup menu. dbForge creates a SQL dump file for the database. Restoring a database simple as well.

We could not find the server log file viewer in dbForge Studio for MySQL, although it’s readily available in MySQL Workbench. With Amazon RDS MySQL, the log files can’t be accessed from either of these client tools.

Copy Database

Copying databases from one instance to another is an intuitive and simple process with dbForge Studio. All the user needs to do is choose the source and the destination instances, select the databases to copy in the source plus any extra options if necessary, and then click on the little green arrow:

Copy Databases Tool

Copy Databases Settings

What’s more, databases can be copied between different flavors of MySQL: we were able to successfully copy a MySQL database to a MariaDB instance.

MySQL Workbench also offers Schema Transfer Wizard for copying databases, but the Wizard wasn’t able to show our MariaDB instance as a connection.

MySQL Workbench Schema Transfer Wizard

dbForge Studio for MySQL allows copying databases within the same instance (the new database name has a suffix of “_copy”). This is not possible with MySQL Workbench.

Query Profiler

Where dbForge really shines for the DBA is the query profiler. Using the query profiler, a DBA can capture different session statistics for a slow running query such as execution time, query plan, status variables etc. Behind the scenes, dbForge uses MySQL native commands like EXPLAIN and SHOW PROFILE to gather session data and presents it in an easy-to-understand format in the GUI. Looking at these metrics can help identify potential candidates for query tuning. Once tuning is done and the query is run again, the query profiler will again save the sessions statistics. Comparing the two different session profiles can help the DBA check the effectiveness of the tuning. What’s more, there is no reason to manually copy and save query texts between different runs. Selecting a profile session and clicking on the “SQL Query” button will automatically show the query executed for that session in the editor. This is possible because the query profiler saves the query text with session statistics.

Query Profiler in dbForge Studio for MySQL

For the Data Architect

Database Diagrams

Reverse engineering an existing database’s structure is often part of a data architect’s job and dbForge Studio for MySQL makes this process simple. Tables from the database tree can be dragged and dropped into a Database Diagram and it will automatically create a nice ER diagram, as shown below:

Database Diagram created by Reverse Engineering a Database

Database Documenter

Most high-end database tools offer some type of reverse engineering capability, but dbForge goes one step further by enabling the user to create database documentation. A full-blown professional looking system architecture document can be created with only a few clicks of a mouse. The documentation will describe tables and views, indexes, column data types, constraints and dependencies along with the SQL scripts to create the objects.

Database Documenter Options

The documentation can be created in HTML, PDF, or Markdown format:

Database Documentation Output File Types

Data Generator

Finally, the feature that database architects and developers would love is the Data Generator tool. Database design often requires meaningful dummy data for quick proof-of-concepts, load testing, or customer demonstrations. dbForge offers an out-of-box solution for this. Using the intuitive data generator wizard, it is possible to populate an empty schema of a MySQL database in no time:

Data Generator General Properties

The generator keeps foreign key relationships in place during data load, although foreign keys and triggers can be disabled if needed:

Data Generator Options for Table Constraints

Also, only a subset of tables can be populated if necessary:

Choosing Tables to Populate in Data Generator

The tool can create a data generator script and load it into the SQL editor, save it as a file, or run it directly against the database:

Data Generator Output Options

Conclusion

dbForge Studio for MySQL comes in four different editions: Enterprise, Professional, Standard, and Express. The Express edition is free with the next tier (Standard edition) retailing at $149. The Professional edition is priced at $299 and the Enterprise edition at $399. There is a volume discount available for 10 or more licenses.

dbForge also offers subscriptions for customers wishing to upgrade their product to newer versions. The subscription is available for one, two, or three years. Licensing prices come down with longer subscriptions. Also, a one-year subscription is included with new licenses.

Being a free tool, MySQL Workbench may seem an attractive alternative to stay with. In our opinion, the wide number of features available in dbForge editions make their prices seem fair. Also, the major differences between Professional and Enterprise edition are copy database, data generator, and database documenter.

The Express edition (free) or the 30-day free trial of any edition can be a good choice for anyone to get a feel for the product.

One thing to keep in mind is dbForge for MySQL is a Windows-only tool. This can be a major factor for shops where MacBooks are a favorite.

Overall, we would say it’s a good product, in fact, a very good product — one that deserves at least a serious test drive from the community.

Original Link

Embracing Agility: A Practical Approach for Software Testers

The Agile Manifesto is 16 years old. In the home page, it defines a very simple set of values:

  • Individuals and interactions over processes and tools;
  • Working software over comprehensive documentation;
  • Customer collaboration over contract negotiation;
  • Responding to change over following a plan.

These four simple values have sparked a revolution in how we write and deliver software. I like to call them the “cut the bulls**t” values. To understand how these values affect testers, let’s dispense with the ceremony, let’s dispense with lengthy design documents, and, yes, lengthy test plan documents, and focus on understanding the core — writing the software.

And the way to do that is to deliver working software from the start (this is the “Working software over documentation” part of the manifesto). The Agile manifesto asserts that the product needs to work from the beginning, and not wait for a lengthy and cumbersome “integration phase” when all the work on the product is integrated together. Instead of many team silos, where everybody is working on one piece of the puzzle (and the architect is the only one aware of how everything will be pieced together), we start with a small team that builds an initial working software (MVP, or minimal viable product) and gradually grows it to a bigger product with a bigger team.

This team includes everybody — the customer, product manager, developers, and testers (this are the “Individuals and interactions” and “customer collaboration” values of the Agile manifesto). This integrated team delivers a minimal version of the product in a very short time, and…waits. Waits for what? For the customer to start working on the product and figure out the next step for the product. In other words, Agile teams don’t build a specification for the whole product, but rather start small and incrementally determine how the product should look like (this is the “Responding to change over following a plan” part).

“Yeah, yeah, yeah. Bla, bla, bla. I got that. But how does it affect my work as a software tester?”

It does. Immensely. I have one sentence for you:

Embrace agility: shift left and shift right. 

To explain this, and to see how this affects your work as a software tester, I need to explain a bit more, so hang in there.

Testing in the Days of “Release Early, Release Often”

The Agile manifesto also says: “Deliver working software frequently,” And today’s software development community has taken it to the extreme. Some companies release every week, some every day, some don’t even have the concept of “release.” They just release anytime a feature is ready.

Moreover, agility forced the backend to come up with an alternative to the “monolithic backend.” The concept of “microservices” has replaced the “monolith.” This concept enables large companies to break up their backend into many small services, each one responsible for a small piece of the puzzle, and to deploy each microservice independent of each other.

These two things means that in many companies there is no “release.” It’s a fluid set of changes that just happen to the product in ongoing process.

But if there is no release, how will software testers test? 

Embrace Agility: Shift Left and Shift Right.

Shifting Left

What does shifting left mean?

The software development software, in the days before the process became Agile, looked like this:

The software development model before the agile revolution

The software development model before the Agile revolution

Software testers used to be at the right of this process. They used to be the gatekeepers that bar the gate to releases that are not qualified for deployment.

This release shall not pass!

This release shall not pass!

This process actually hasn’t changed much in the days of Agile, except that now we have many of these pipelines in parallel, and each takes days, and not months:

The agile software development model

The Agile software development model

But how can a software tester be a gatekeeper in this model? It’s practically impossible. Once the implementation is done, there is no “time” for testing, as the team has gone on to the next thing it needs to do. In the Agile model, delivering software incrementally is paramount. Time for testing is not included.

To solve this, the tester needs to shift the testing left. It needs to be part of the implementation, and not a separate step:

Shifting left

Shifting left

This has many practical consequences, consequences that affect you as a software tester.

Software developers need to test, too

Shifting left means that a lot of the burden of testing needs to be dealt with by the software developer and not by the tester. A tester should not need to check that a certain form field needs to be numeric. A tester should not need to check that the value in this table is correct. All those boring tests that occupy a lot of the tester’s time need to sit “close to the code,” and should not be dealt with by the tester. The software developer can use unit testing to check those boring checks in much faster and more reliable manner than the tester, and free up the tester’s time for the more interesting and holistic tests, whether manual or automated.

Automated tester tests need to sit close to the code, too

As discussed above, Agile software is now deployed in piecemeal increments, and not in one big deployment bang. This means that the software testers tests need to test not just the whole big product, but also parts of it.

This means that if the microservice your team is writing is a web service that communicates via REST API, then your tests should check that REST API in isolation from the rest of the product. And if your team is building UI components that the other parts of the company use, those components should be tested in isolation from the rest of the product.

In other words, software testers should not only do end-to-end tests, but should also check parts of the software, and not the whole thing. Which parts? A good rule of thumb is that if your team is building components and microservices that are part of a bigger whole, you should test those components in isolation and not only as parts of the bigger whole.

Automated tester tests need to be part of the CI process

Software developers that operate as part of a true Agile process frequently use CI tools to help them cope with the fantastic pace of software development. For software developers, the CI tool is the gatekeeper for their software change.

What is a CI tool? CI means Continuous Integration, and a CI Tool is a tool that listens to changes in the source code, builds it, runs the tests, and if the tests pass, mark the changes “green.” If they fail, they usually email the person that submitted the software changes. The CI tool helps the software developer ensure that all the tests they write are executed for those specific changes. Examples of CI Tools are Jenkins, TeamCity, Travis, Bamboo.

These are fantastic tools, and are definitely part of the shift-left movement, as the tests run for every code change. A software developer should ensure that not only do the software developer tests run, but also their own tests. A code change needs to be green only if the developer tests pass and the tester tests pass.

The three rules above are, for me, the essence of the shift-left movement. To be Agile, automated tests should not be a separate stage of the development, but should be part and parcel of it. And to implement this should be the responsibility of both the tester and the developer.

And this responsibility brings us to what is for me, the holy grail of the shift-left movement:

Automated tester tests need to be part of the source code

There should be no difference between where the developer tests reside and where the tester tests reside. They should be part of the same source code, and as we said above, run as part of the same CI process. I will dedicate a blog post in the near future to this important idea (“Speaking the language of frontend developers”).

Remember, in an Agile process, the tests become as important and integral as the development itself. Embrace agility.

Shifting Right

But if the shift-left movement means that a tester does not check the whole product holistically, then does that mean that it does not need to be checked as a whole?

Of course it has to be checked as a whole. The big question is when? If there is no release, then when do we test the whole product? The answer may surprise you and is part of the shift-right movement.

The reason for the shift-right movement

The reason for the shift-right movement

And the answer is — whenever you want to. Once there is no release, and software changes keep pouring out of the pipe, and they are well-tested due to the shift-left movement, then you can do E2E testing whenever you want to.

Run your end-to-end tests continuously

If you can run your end-to-end tests whenever you want, then just run them continuously. Yes, source code keeps pouring in from the left, and deployments keep pouring out from the right, but that doesn’t mean that we should give up and not test. It actually means that we should run them all the time.

No, we will never be testing what is going to be in production in an hour. We will always be testing an approximation. But if this run of end-to-end tests doesn’t uncover the bug, the next one will. And, yes, it will be too late, because that bug is already in production, but that’s OK — because we’re Agile, fixing the bug also takes a very short amount of time.

In an Agile world, it’s OK for bugs to sometimes reach production. This is what is meant by Facebook when they say “Move fast and break things.” While an extreme sentence, it does hold the important truth that trying to stop all bugs from reaching production doesn’t help development, it harms it.

Run your end-to-end tests in production

Some companies take this to the extreme, and have software testers test the full product not in a testing or staging environment, but actually in production, after it’s released! (this is why it’s called “shift right”). And incredibly enough, this is not as dumb as it sounds. Testing in production enables us to uncover bugs that are due to:

  • bad data that can only be found in production
  • the scale and amount of people using the application in production
  • the deployment system used for production
  • and bugs that are in the infrastructure (servers, networks, database, etc.) used in production

Embracing Agility

So yes, embrace agility. Agility changes and amplifies the role of the software tester. The shift left movement encourages the software developer to take on the role of the tester, and encourages the software tester to participate in the software development process, while the shift right movement encourages the software tester to take on some of the responsibility of monitoring the application.

And this is a good thing — the tester should not be a gatekeeper, a judge that is aloof and separate from the software development and deployment process. The tester should not be the bad guy saying, “Thou shall not pass” and delaying the release of the process.

What the tester should be is an integral part of the software development process. And embracing agility allows them to do that.

Yes, But How?

Embrace agility. Shift left:

  • Software developers need to test, too: Shifting tests to the left means that software developers should test their code too. Educate your consumers. Work with them to make this happen. Fortunately, ongoing education is moving software developers to this understanding.
  • Automated tester tests need to sit close to the code, too: Stop thinking as gatekeepers and start thinking as developers. Test parts of the code and not just the final product.
  • Automated tester tests need to be part of the CI process: The CI tool is the new gatekeeper, so your tests should be part of the CI.
  • Automated tester tests need to be part of the source code: if you can, have your tests be part of the source code, and not a separate piece.

Embrace agility. Shift right:

  • Run your end-to-end tests continuously: There is no release. Continuously test the “current” product, no matter whether it is not yet in production or already there.
  • Run your end-to-end tests in production: there is no release. The best place to run your tests is in production, and you will get a ton of added benefits from it.

What’s in it for Applitools?

In the end, I am a developer advocate for Applitools, a company that builds a Visual Testing platform for testers and developers. So, what’s in this movement for Applitools?

Plenty. We believe visual testing tools are crucial for shifting left and shifting right. But that’s for another post.

— HAPPY TESTING —

Original Link

Part-Time vs. Full-Time Scrum Master

Some people think that being a Scrum Master is a part-time job and that you can also be a developer during a project or that a Product Owner can share the Scrum Master role as well. Well, the Scrum Guide does not specifically rule this scenario out, but it is not ideal and especially if you are new to Scrum, I don’t recommend it. The simple reason is that the Scrum Master’s role is more than just being a facilitator during the Scrum Events.

Being a developer on its own is a full time job. There are problems to solve, requirements to understand, discussions to be had. Adding on top of that the role of Scrum Master, where the Scrum Master is there to help support the team and shield the team from trouble, just adds more stress and complexity to the situation. It makes it harder to know which to concentrate more on. Even being a developer on another project still takes away from the Scrum Master duties. What happens is that one of the roles wins out. Usually (but not always) it is the development role as deadlines and pressure increases and the Scrum “stuff” gets ignored.

The same goes for sharing the role of a Product Owner, Project Manager or even just being a normal manager. Something goes wrong and you either do both jobs poorly, or one job poorly. Never both jobs well.

The thing is, the role of the Scrum Master is to make sure that the team is continuously improving, to find better ways for the team to communicate and integrate. To clear the way for the team to work and grow. To run interference and remove obstacles and impediments from that objective. They do this by focusing on the team and its needs. They are the advocate of the Scrum Process that keeps the cycle of continuous improvement and when the team deviates and reverts back to their old ways, which they will when new to Agile and Scrum, the Scrum Master’s role is to bring them back. Teams will deviate; it’s human nature to revert back to something you know, especially when you are under pressure, rather than to push forward into the unknown. It’s the Scrum Master’s role to push across the chasm to bring a team to be performance. An inexperienced Scrum Master facing two roles will likely do the same—not always, but is likely.

For a Scrum Master that shares the role of the Product Owner, there becomes a bigger problem. The two roles are in conflict. The Product Owner is trying to get the product completed as quickly and cheaply as possible. The Scrum Master is there for the welfare of the team. Which one wins out? Well, with a new Scrum Master/Product Owner new to the Agile principles and with the mindset of just get things done, then the Product Owner role wins out. You then get a Scrum Master who goes into “Command and Control” mode, trying to push the team to get things done faster. Compromises in quality are made, and in the end everyone has a bad Agile experience. Mind you, you do not have to have a Scrum Master in a dual or even triple role for this to happen, but it is more likely to happen. It can happen and does happen regardless, but that is a talk for another day.

I have made this mistake. I’ve been a developer and a Scrum Master at both the same time, and even though I had every intention to be a good Scrum Master, I made mistakes. Development work took priority. Then again, there were times during the same project where I would focus more on the Scrum Master role, and the development side suffered. The end result though was that neither role was done extremely well.

Every situation is different, and it is possible that a Scrum Master can take on dual or triple roles, but I would expect that to happen with a highly mature agile team. Not one who is just starting out. I also realize that there may not be a choice. There wasn’t in my case. All you can do in this situation is do your best and look out for the welfare of those on the team, not just those of the customer.

Original Link

How to Get a Programming Job Without a Degree

This week’s reader question Tuesday is a look at how to get a programming job without a degree. It’s probably a good one for me to hold forth on. In my book, Developer Hegemony, I argue that, in spite of my own two CS degrees, I probably wouldn’t recommend that course of action to prospective programmers nowadays. It’d be hard to justify ROI on it, especially at expensive schools.

So if you don’t get the degree, then what? Here’s the reader question.

Original Link

How to Build a Xamarin App With Only Two Controls – Webinar and Q&A [Webinar]

On March 22, 2018, Syncfusion hosted the webinar, “How to Build a Xamarin App with Only Two Controls,” presented by Aaron Melamed, Syncfusion’s product solutions specialist. Melamed demonstrated how to set up a new Xamarin application from scratch using the Syncfusion navigation drawer and list view controls. The following blog post is the Q&A portion of the webinar. A recording of the webinar can be found on our YouTube page, or you can watch here:

Q: We use Prism navigation and have a navigation drawer on every page. Is that the correct way to use it? Or should we have only one page with a navigation drawer and exchange the NavigationDrawer.Content?

Original Link

DeveloperWeek 2018: Biggest Names in Development Industry – Part 3

I am wrapping up with DeveloperWeek winners and in this blog post, I will have a look at the rest of the companies that were chosen as industry front-runners. In case, you missed Part 1 and Part 2.

API Services

Postman

Postman

Developing APIs Is Hard, Postman Makes It Easy

Postman is a toolchain that includes a unique platform designed specifically for API-first development, a variety of tools for each stage of the API lifecycle and many more features. By supporting every stage of API lifecycle, Postman allows you to develop easier and faster. It offers API Development Environment with collections, workspaces, and built-in tools: everything that an organization needs to boost its efficiency and productivity.

With Postman API, you will be able to add new and update existing collections, add and run monitors and update environments. The company is focusing on the current and future development trends, keeping in mind that everything will be connected together – and therefore, creating corresponding products.

Postman

App Analytics/Testing

Sauce Labs Automated Testing Platform

Sauce Labs

Continuous Testing Cloud

We’ve already mentioned the fact that quality of the product plays a crucial role in its success. With this concept in mind, Sauce Labs developed a solution that allows to keep the quality of the app and at the same time work faster and with increased efficiency.

The Automated Testing Platform by Sauce Labs offers cross-browser testing, mobile simulators and live web testing. All these features are designed to save on testing time and focus more on development. Being the biggest testing cloud in the world, Sauce Labs offers its users over 800 browser combinations and about 200 mobile emulators and simulators. With such impressive numbers no wonder the company got its award – it’s recognized by millions of users all over the world.

Sauce Labs

API Infrastructure

SendBird

SendBird

Messaging SDK and Chat API for Mobile Apps and Websites

SendBird offers incredibly simple and efficient messaging solution. It offers 1-on-1 direct messaging, group chat and open channel, and all that comes with advanced features. The product is considered to be the simplest messaging API for an app and it offers full package, from the front-end UI to back-end.

The features that SendBird has are all aimed at increase of app efficiency and user engagement. It has moderation tools for chat rooms, track of the message read status, smart throttling of message speed, protection from spam flood and many more. The way messaging goes is as following: SendBird, API, SDK, then mobile app. Just four stages and such simplicity managed to gain thousands of product admirers.

SendBird

Communications Development

Solace Cloud

Image title

Complete Deployment Flexibility Across All Clouds

Solace allows its users to connect apps and micro-services across multi-cloud environments. As a user, you can pick any clouds that are right for you and migrate your apps. You can also share data and workloads, and configure and monitor data movements across all your clouds.

Sounds like a great tool for organizations and it is, indeed. In addition to the features described above, Solace also enables users to build IoT applications, stream data and connect your web (or app) streaming.

Solace Cloud allows you to use open APIs and standard protocols and is already beloved by a great number of companies for its performance, 100% transparency, DevOps automation, and much more. Try it yourself and see why Solace got its award.

Image title

Data Development Tools

Varick

Image title

Spend Time Building Products Instead of Tools

What’s awesome about Varick is the fact that it transforms REST or JSON APIs into the admin panels. With the use of API models, Varick builds dashboards and the user receives full control over collaborators. As well the product guarantees your data won’t be lost or corrupted, which is a really important factor these days, considering the numerous security issues related to data. 

With Varick you will get a powerful and clear admin interface. It’s also incredibly easy and efficient: for example, instead of teaching pull requests, you can simply set permissions that give you control over which user sees what. The product has already won international recognition and it offers different solutions for teams of different size, thus satisfying the most strict demands of modern IT industry.

Image title

If you are interested in finding out more interesting news about what’s going on in IT world, subscribe and stay updated!

Original Link

Biggest Names in Development Industry – DeveloperWeek 2018 Part 2

In my previous blog post, I had a look at some of the award winners of DeveloperWeek 2018. In today’s post I will continue to overview them and the latest trends in development and modern IT world.

DevOps

ElectricFlow

ElectricFlow

Adaptive Release Automation

Electric Cloud is a company that strives to simplify Ops and help organizations deliver better software at faster pace. Its DevOps Release Automation powers continuous delivery (CD). CD aims for keeping the software release-ready and offers a repeatable and reliable way to deploy software to any environment.

So ElectricFlow is basically this Release Automation that we talked about. It allows teams to coordinate releases upon demand, automate deployment at any scale and also offers tracking and measurement tools. So no need to say that the company got its award for a reason – their solution takes development to new and more efficient level.

ElectricFlow dashboard

IoT Software

InfluxEnterprise

Image title

The Modern Engine for Metrics and Events

Influx Data offers an open-source, modern Time Series Platform. The company carefully reviewed and considered one of the biggest issues in modern IT world, which is Big Data processing, and offered a solution that allows to meet the constantly changing requirements and keep the work at high quality level.

Due to heavy use of cloud-native apps and services and the increase of investment in IoT, Time Series Platforms are on the rise now. These platforms can support the requirements for real-time data processing and analyze great amount of metrics in order for the companies to gain competitive advantage from all the data.

Because content is king these days, it’s crucial for the companies to identify value in the data and turn it into own advantage, and this solution from Influx Data without doubt deals with this task.

Influx overview

3D & VR/AR Development

Interaction Engine

Image title

Reach into Virtual Reality with Your Bare Hands

We’ve already written few posts on rise of VR and AR. So it’s no wonder a lot of companies are trying to surf the wave of hype and develop products that are related to these trends. Leap Motion turned out to be a front-runner with its Interaction Engine that got the DeveloperWeek award.

The Interaction Engine by Leap Motion allows users to work with the VR app by interacting with either physical or pseudo-physical objects. In other words, if your app has some kind of objects that need to be touched, moved, etc., the Interaction Engine can do a bit (or even all) of the work for you.

In addition to that (as if Leap Motion is not cool enough!) the company also enables users to summon and interact with the virtual objects from the distance. So instead of making you walk up to the object, you can touch or move it while standing not close to it. Indeed some next-level experience here.

LeepMotion

Enterprise Solutions

MarkLogic9

Image title

The Evolution of the Database

MarkLogic is a database for integrating the data from silos and the only existing NoSQL solution created specifically for enterprises. The company uses flexible and multi-model approach that can handle the data from any source with no problem at all. The database by MarkLogic includes built-in search in order to make your work process easier and it’s also 100% ACID compliant.

The latest company release is MarkLogic 9 that offers new data integration, increased security and many more features that altogether help companies get easier and actionable 360-view of their data. MarkLogic 9 is named as the most ambitious release by the company yet and is already recognized as a necessary tool for any company.

MarkLogic platform side view

Coding Frameworks/Libraries

npm Enterprise

Image title

Take Enterprise Development to New Heights

Npm is a package manager for JavaScript and the biggest software registry in the world. It is used to install, share and distribute code, manage project dependencies and share feedback. Products by npm are suitable for any projects and teams as they come in different sizes and packages, from browsing and installing public code to customizing support and SLAs.

Npm Enterprise enables you to run the npm’s infrastructure behind the firewall of your company. It is the same codebase that powers the public registry. The product provides the features necessary for large organizations and serves as a solution to multiple needs, like the ease of sharing private modules, control of workflow, enhanced security and much more.

npm setiings

Of course, these are not all DeveloperWeek winners, but they seemed the most interesting to me. Maybe they will inspire you to go out there and create something revolutionary yourself or maybe you can consider certain ideas for implementation into your own product. Nevertheless, the more you know, the better your business will grow in a modern IT environment and we will continue to bring you knowledge about the latest IT news.

Original Link

Weird Interviews Programmers Must Endure [Comic]

Mel is busy interviewing new developers. As you may remember, he was the only developer left in the company…let’s hope for him that he finds someone who can help him to untangle all this mess and give his company sort of a re-start – maybe it’ll be Sophia:

Image title

Job Interviews Turning into Consulting Gigs

Interviews can be funny. At times you get there and have to answer irrelevant questions – never mind the screening process on the phone. This fellow programmer who was flown out to Los Gatos in California for Netflix recalls:

A few years ago I interviewed with Netflix. I had two technical phone screens, one with the engineering manager and another with a senior engineer on their team. Those went smoothly so I was asked to fly out to Los Gatos, CA.

I was supposed to talk first with the senior engineer but they placed someone else last minute. In walks a guy in a fedora with full tattoo sleeves. He glances at my resume and laughs saying he hasn’t looked at it at all and really knows nothing about me.

This guy asked me detailed questions about certain programming languages. I was very clear with them on the phone that I’ve played around with those, but I hadn’t used them to any serious degree. Fedora man continued inquiring for a while about exactly those programming languages until we shook hands and he left. The engineering manager came back in and basically escorted me out. He said I was good but that I wasn’t what they were looking for. I’ve had some retarded interview experiences but that one took the cake.

Here is a Quora user who shares with the crowd how his initial interview turned into a consulting gig:

A long time ago, I was interviewing for a programmer’s job and one of the interviewers asked me an unusually specific question. I don’t remember what it was, but it seemed strange to me that he would ask something so esoteric. As I listed potential ways to solve the problem, he was like, “Tried that. That didn’t work…” Soon it became clear that this wasn’t a canned interview question, but rather, he was asking me to help him with a problem he was actually stuck on. We went over to his workstation and figured out the problem together and got it to work. I got the job.

No Shows at Interviews

We programmers always think that we are exposed to weird scenarios. After chatting with our head of HR here at Typemock, I learned that memorable interviews can happen to everyone. What struck me most were some of the excuses some use for not showing up for an interview. The ‘weak’ excuses she recollected were somehow similar to the following list I found.

Our favorites were:

#1 I’ve just had my front door kicked off
#2 Waiting for an online delivery
#3 Water pipes were stolen
#4 Diarrhoea / last minute illness
#5 A tragedy in the family that is so terrible it’s too painful to discuss any details
#6 My train is stuck in a tunnel and I have no signal
#7 I fell asleep / my alarm didn’t go off
#8 I woke up feeling confused
#9 My car broke down
#10 My wife has a headache
#11 I had a particularly bad curry last night
#12 I normally use wash-n-go but today I had to use shampoo and conditioner separately so it took longer to shower this morning so I’m late.
#13 I’m locked in my house

Which ones do you like the best? And what job interview anecdotes can you tell? Leave a comment!

Read more #TypemockComics

If you want to catch up on our comic series from the beginning, read up here:

Part 1: Typemock Comic: Developer Hell 2.0

Part 2: Typemock Comic Developer Hell 2.0 – Decisions Can’t be Googled

Part 3: Unproductive Meetings in an Agile World

Part 4: The Java Experience with Incompetent Coworkers

Original Link

Biggest Names in Development Industry – DeveloperWeek 2018 Part 1

I’m always trying to keep an eye on big industry events and in this case, I could not ignore the DeveloperWeek 2018 that recently took place in Oakland, California. DeveloperWeek is the largest world expo in the industry of development and it focuses on the cutting-edge technologies and innovations. The list of past event hosts and supporters includes such names as Google, Facebook, IBM, Yelp, and other industry giants. So it’s obviously interesting to have a look at the names that were listed among 2018 award winners and see what makes these companies so outstanding.

Blockchain/Cryptocurrency Development

AirTM

Image title

Make Money Your Friend Again

For the users, AirTM is a cloud USD account that enables them to deposit or withdraw local currency to and from their account.  It also allows easily sending or receiving dollar payments and overall is a fast and easy way to make and receive dollar payments.

What’s left behind the scenes is the fact that AirTM basically runs on Bitcoin and that’s what makes it so cool. The trustworthy cashiers who process the users’ deposits and transactions are all Bitcoiners and they convert Bitcoin to USD in their Uphold account. As a result, AirTM greatly increased the demand for Bitcoin in all markets where AirTM operates and the number keeps growing. Besides, AirTM positively affects Bitcoin adaptation and that’s the reason the team won its award. 

Image title

Javascript Technology

AnyChart

Image title

Javascript Charts Designed to Be Embedded and Integrated

AnyChart is a graphics software development company that provides a wide array of products that are used by the world-leading companies such as Oracle or 3M. The company offers data visualization solutions like charts, graphs and many more.

AnyChart is a lightweight JavaScript library that’s been out there since 2003. Company’s main products are AnyChart, AnyStock (real-time data-streaming charts), AnyMap and AnyGantt (for Gantt charts). And considering the impressive number of AnyChart clients and their flexible and efficient products, no wonder the company received the award for best innovation in JS technology. 

Image title

Artificial Intelligence & Machine Learning

Butterfly

Image title

Your Personal Leadership Coach

Butterfly Network shook the world with its revolutionary ultrasound tool iQ that’s powered by AI. The tool is handheld, the ultrasound results can be shown right away on the iPhone and the best thing about it is the price – it starts from under $2k. While the ultrasound machines used in medicine today cost something about $100k, Butterfly offers more accurate, precise and efficient tool and all that for an unbelievably low price.

Butterfly uses “ultrasound on the chip” and due to 10,000 micro-machined ultrasound transducers, it’s possible to scan the whole body within a single probe. And due to AI capability, the tool can detect disease within a few seconds, so Butterfly indeed created a breakthrough in the field of medicine. 

Image title

Platform-as-a-Service

Built.io Flow

Image title

Digital Transformation Suite

Built.io positions itself as “cloud-based API-first enterprise suite” and it offers digital products and solutions to the most innovative companies, including the ones from Fortune 500. Speaking about Built.io Flow, it is an integration-as-a-service platform for APIs that is aimed at connecting people and businesses.

Built.io Flows allows quick integration of your business apps, automation of recurrent tasks and elimination of manual processes. It increases business efficiency, offers IoT utilization, and is recognized as a great tool for any business – so you may want to pay attention to it as well. 

Image title

Mobile Development

Codebashing

Image title

Vulnerability Prevention Dream Team

Checkmarx well played on one of the biggest issues of modern IT world – application security testing. There was a gap between the vision of app security specialists and developers (first ones see it as a necessity while second ones consider it a burden) and Checkmarx developed a solution that is both time-saving and delivering value.

The issue with app security lies in the fact that app security should start right from the development stage and many developers simply lack the necessary skills. Codebashing is integrated into the CxSAST UI and when a developer encounters any security vulnerability, Codebashing allows immediately activating the necessary learning lesson and getting back to work with new knowledge on how to solve the issue.

Image title

In Part 2 I will continue my overview of DeveloperWeek Awards 2018.

Original Link

The Importance of Listening to Developers

When it comes to developing products, no one knows a product inside and out better than a developer. Developers know a product’s advantages, flaws, uses, and potential uses. It’s their job to know, and it’s in their bones to know.

Listening to what developers have to say has always been important, but perhaps never more important than it is today, in the omnipresent digital age.

Every day the computer and networking industries become more software-driven. Meanwhile, the Internet of Things (IoT) industry is swelling. Gartner predicts that by 2020 there will be more than 20.8 billion connected IoT devices worldwide. From cars to clothes to products yet to be identified, billions of IoT devices will be developed that require programming, from the device down to the item or app that collects and displays the data to end users. Competition will inevitably mount among the many new and existing players in the field.

In a nascent industry such as IoT, developer communities are essential. People with software and engineering skills must be able to develop, explore, and guide ideas into reality, and develop and fine-tune existing products into better products. The developer’s knowledge and input are hugely important.

In any industry, nascent or not, you can’t risk alienating developers. Ignoring their input signals a lack of trust, and trust is the bedrock of good manager-developer relations. They need to trust in your product and what you tell them about your product.

The last thing you want to do is jeopardize the knowledge base that keeps maintaining and developing your products. You also need to keep developers invested and interested in what you’re doing. You need to listen to them.

For that, you need an online community. Communities facilitate listening. Good communities make it easy for developers to contribute and collaborate with other developers, and they provide much-needed formality in the process of soliciting and gathering developer input. Remember, the easier you make it to collect their feedback, the faster you can get the information to your product management and engineering teams.

Improve Their Experience, Too

Good communities not only acknowledge the contributions of developers to the products and platforms they help develop, but also continually look for ways to improve the developer experience. Improvements shouldn’t be made in a vacuum; they should be made with input from the developers themselves.

For instance, a community manager sends out a brief survey asking developers about their recent experience developing a particular platform. The survey isn’t only seeking to hear what the developers liked but also what they didn’t like, what frustrated them, and what they wish had been done differently to make their experience better. The manager follows up with several of the survey responses to dig deeper into the developer concerns.

Then, the manager acts on those concerns, making the following improvements in the developer community:

  • Overhauls the developer documentation architecture to simplify navigation and make the most popular reference documents easier to find
  • Increases the amount of sample code
  • Implements a process to ensure that SDKs sync with the latest product updates and bug fixes

Community improvements run the gamut, and there are no one-size-fits-all rules or guidelines. The main thing is to give developers the opportunity to voice their likes and dislikes and make sure their input doesn’t fall on deaf ears.

Voices You Can’t Ignore

Developers’ input helps you ensure your product meets your customers’ expectations and solves their problems. Their input helps you provide amazing customer experiences, and improve customer retention. Their input is one of your most valuable sources for your product’s viability and longevity.

You need to listen to developers and give them a community where they can contribute and collaborate, and where you can easily solicit, collect, and act on their vital input.

Original Link

10 Steps to Cloud Happiness (Step 8): Curing Travel Woes

Every journey starts at the beginning and this journey’s no exception.

As previously presented in the introduction, it’s possible to find cloud happiness through a journey focused on the storyline of digital transformation and the need to deliver applications in to a cloud service.

Application delivery and all its moving parts such as containers, cloud, platform as a service (PaaS) and a digital journey requires some planning to get started. There’s nothing like hands-on steps to quickly leverage real experiences as you prepare.

Previously we covered how to get a cloud, the use of a service catalog, how to add cloud operations functionality, centralizing business logic, process improvement, the human aspect, and a retail web shop, so what’s next?

Curing Travel Woes

One thing that everyone has unfortunately gone through is a bad travel experience. From a bad booking experience to lost luggage, it can ruin a trip before it even starts or detract from an otherwise pleasant journey.

Image title

Walking the path to cloud happiness means we can’t ignore the possibilities of learning through examples of improving the travel experience using containers, business logic, service integration, capturing the process, and a front-end application for travel bookings.  Another example expands your experience with a container-based deployment of a lost baggage delivery solution.

An online travel booking process project showcases the ease of integrating services, purchasing, validation and includes the ability to roll back the purchase if needed in several systems. It contains multiple web services for looking up data for the process and rules to calculate pricing. Furthermore, there are several tasks that can be activated to evaluate pricing and to review the final booking data before completing the booking.

Below are the instructions that include installing OpenShift Container Platform as outlined in step one of this series called, Get a Cloud.

  1. First ensure you have an OpenShift container based installation, such as one of the following installed first:
  2. Download and unzip this demo.
  3. Download JBoss EAP & JBoss BPM Suite, add to installs directory (see installs/README).
  4. Run ‘init.sh’ or ‘init.bat’ file. ‘init.bat’ must be run with Administrative privileges:
 # The installation needs to be pointed to a running version # of OpenShift, so pass an IP address such as: # $ ./init.sh 192.168.99.100 # example for OCP.

Log in to Travel Agency to start exploring an online bookings application (the address will be generated by the init script):

  • Travel Agency project: http://rhcs-travel-agency-demo-appdev-in-cloud.192.168.99.100.nip.io/business-central ( u:erics / p:bpmsuite1! )
  • Travel booking web app: http://rhcs-travel-agency-demo-appdev-in-cloud.192.168.99.100.nip.io/external-client-ui-form-1.0

Image title

Want to build the Travel Agency demo from scratch? Try this hands-on online workshop.

Losing baggage after a long trip can only be classified as a painful experience, but with this project you see how the process of registering the loss can be streamlined.

Image title

Filling in a form kicks off a process to ensure the fees and frequent flier benefits are correctly applied before the traveller is charged.

These examples ensure exposure to travel experiences on your journey to cloud happiness, providing hands-on with container development and application delivery in the cloud.

Rest of the Story

If you are looking for the introduction to the 10 steps series or any of the individual steps:

  1. Get a Cloud
  2. Use a Service Catalog
  3. Adding Cloud Operations
  4. Centralize Business Logic
  5. Real Process Improvement
  6. Human Aspect
  7. Retail Web Shop
  8. Curing Travel Woes
  9. Exploring Financial Services
  10. Agile Cloud Service Integration

So stay tuned as this list’s tackled one-by-one over the coming weeks and months to provide you with a clear direction towards your very own application delivery in the cloud happiness.

Original Link

10 Steps to Cloud Happiness (Step 7): Retail Web Shop

Every journey starts at the beginning and this journey’s no exception.

As previously presented in the introduction, it’s possible to find cloud happiness through a journey focused on the storyline of digital transformation and the need to deliver applications in to a cloud service.

Application delivery and all its moving parts such as containers, cloud, platform-as-a-service (PaaS), and a digital journey requires some planning to get started. There’s nothing like hands-on steps to quickly leverage real experiences as you prepare.

Previously we covered how to get a cloud, the use of a service catalog, how to add cloud operations functionality, centralizing business logic, process improvement, and the human aspect, so what’s next?

10 steps cloud happiness
Retail web shopping experience.

A Web Shop

Our last article examined the internal human resources department and the processes found there. Now let’s turn our attention outwards, to something everyone’s doing these days: online shopping.

Walking the path to cloud happiness involves deploying all or parts of a retail shopping experience online in the cloud. With that in mind, let’s leverage deployments of an example of a retail online web shop using containers, business logic, and a front-end framework for creating a separate application. Finally, a second example of retail web shopping is provided featuring cloud storage deployments, further expanding your experience with modular application deployments in several containers in the cloud.

Cool Store

The Cool Store is a retail web store demo where you will find rules, decision tables, events, and a ruleflow that is leveraged by a web application. The web application is a WAR built using the JBoss BRMS generated project as a dependency, providing an example project showing how developers can focus on the application code while the business analysts can focus on rules, events, and ruleflows in the JBoss BRMS product web based dashboard. This demo installs the application in the cloud leveraging the OpenShift Container Platform (OCP).

10 steps cloud happiness
Business logic captured in application rule flow.

Below are the instructions that include installing OCP as outlined in step one of this series called, Get a Cloud.

  1. First ensure you have an OpenShift container based installation, such as one of the following installed first:
  2. Download and unzip this demo.
  3. Download JBoss EAP & JBoss BRMS, add to installs directory (see installs/README).
  4. Run ‘ init.sh ‘ or ‘ init.bat ‘ file. ‘ init.bat ‘ must be run with Administrative privileges:
     # The installation needs to be pointed to a running version # of OpenShift, so pass an IP address such as: # $ ./init.sh 192.168.99.100 # example for OCP.
    

Login to Cool Store to start exploring a retail web shopping project (the address will be generated by the init script):

  • OCP example:
    •  http://rhcs-coolstore-demo-appdev-in-cloud.192.168.99.100.nip.io/business-central ( u:erics / p:jbossbrms1! ) OCP example web app:
    •  http://rhcs-coolstore-demo-appdev-in-cloud.192.168.99.100.nip.io/brms-coolstore-demo Want to build the Cool Store demo from scratch? Try these hands-on online workshops.

Cool Store with cloud storage

10 steps cloud happiness
Cool Store with cloud storage.

This demo is to install Cool Store in the cloud with cloud data persistence on any OpenShift Container Platform. It delivers a fully functioning Cool Store containerized on OSE and backed by a persistent cloud data store.

The Cool Store is a retail web store demo where you will find rules, decision tables, events, and a ruleflow that is leveraged by a web application. The web application is a WAR built using the JBoss BRMS generated project as a dependency, providing an example project showing how developers can focus on the application code while the business analysts can focus on rules, events, and ruleflows in the JBoss BRMS product web based dashboard.

Alongside the Cool Store is a cloud storage container that provides persistent storage for the JBoss BRMS platform and connected via Kubernetes services.

Below are the instructions that include installing OCP as outlined in step one of this series called Get a Cloud.

  1. First ensure you have an OpenShift container based installation, such as one of the following installed first:
  2. Download and unzip this demo.
  3. Download JBoss EAP & JBoss BRMS, add to installs directory (see installs/README).
  4. Run ‘init.sh’ or ‘init.bat’ file. ‘init.bat’ must be run with Administrative privileges:
     # The installation needs to be pointed to a running version # of OpenShift, so pass an IP address such as: # $ ./init.sh 192.168.99.100 # example for OCP.
    

Login to Cool Store to start exploring a retail web shopping project (the address will be generated by the init script):

  • OCP example:
    •  http://rhcs-coolstore-demo-appdev-in-cloud.192.168.99.100.nip.io/business-central ( u:erics / p:jbossbrms1! ) OCP example web app:
    •  http://rhcs-coolstore-demo-appdev-in-cloud.192.168.99.100.nip.io/brms-coolstore-demo Want to build the Cool Store demo from scratch? Try these hands-on online workshops.

These examples ensure exposure to retail online shopping experiences on your journey to cloud happiness, providing hands-on with container development and application delivery in the cloud.

Rest of the Story

If you are looking for the introduction to the 10 steps series or any of the individual steps:

  1. Get a Cloud
  2. Use a Service Catalog
  3. Adding Cloud Operations
  4. Centralize Business Logic
  5. Real Process Improvement
  6. Human Aspect
  7. Retail Web Shop
  8. Curing Travel Woes
  9. Exploring Financial Services
  10. Agile Cloud Service Integration

So stay tuned as this list’s tackled one-by-one over the coming weeks and months to provide you with a clear direction towards your very own application delivery in the cloud happiness.

Original Link

How to jumpstart your product development cycle

Every great startup begins with a great idea. But ideas are just ideas. Startups need to turn them into products that users will love for the first step to success. That’s why the product development cycle is the most exciting stage of your startup’s life. When it’s done right.

Here’s a quick A-Z on starting up your product development cycle properly:

1) Build the dream team

Every captain needs a crew. Even if you have the best idea, you’ll still need a kickass team to help turn that into reality. How do you find the right people, though?

Start with a question: what and who do you really need? From this one question, you can determine the people you want to have on your team. Building your dream team isn’t like an open call for volunteers. You’ll need a stringent screening process to ensure aligned goals and visions. Look out for the qualities you need – skillsets, experience, passion and attitude.

In addition, the structure of the team is important to your product development success. For starters, here’s a good guide on how you can structure a consumer-driven product team.

2) Determine your metrics

Not every product is created the same. A food delivery startup is wholly different from an SaaS provider. Each startup’s KPIs vary from one another. Like building your dream team, creating the perfect set of KPIs for your startup starts with asking the right question: how do you want your product to succeed?

At the earlier stages of your product development, creating the best metrics is crucial. Attaching the wrong metrics to your young product may influence how it grows, for better or for worse.

Luckily, thought leaders in the startup scene have developed trustworthy frameworks that help teams assess their product. Notable examples of these are the HEART framework and PULSE metrics.

3) Keeping clean codes

With startups coming out left and right, you might be tempted to push your product out as fast as possible. Besides the obvious quality issues, rushing your product can have consequences deeper into its heart—its code. Keeping code clean is a tougher challenge that all developers face. It takes time, effort, and a whole lot of coffee.

But it’s not just about poring over lines and lines of code to check for errors. Keeping code clean means keeping it easily readable and accessible for both the original developer and any succeeding developers who will handle the code in the future. In this state, software can be easily patched should any bugs pop up in the future. Having a clean code will ensure that your product is always up-to-speed and up-to-par for your customers.

4) Protecting your users

Crafting an enjoyable user experience is one thing; creating a safe one is another. With controversies on user privacy rising to the fore across the software industry, the race to secure software is on. More and more users are realizing the value of security. Creating secure software no longer plays second fiddle to the actual product experience itself – and integrating information security is best done during the development process.

Want to know more?

These are just the tip of the iceberg – there’s so much more to learn about the various facets of product development.

If you’re a product manager or developer wanting to learn more about the topic and how to create a product users will love, head on over to Tech in Asia Jakarta 2017’s Developer & Product Stage where speakers from Grab, Go-Jek, UrbanIndo, KODEFOX, Ematic Solutions, and Blackstorm will share their expertise and insights.

Also, don’t miss out on your final chance to save 10 percent off your tickets! The code is tiajkt10 and will only be valid for one more day until October 13, 11:59PM (GMT +7). Or if you’re not yet ready to commit, drop your details below to get our latest conference updates via email.

Original Link