At DZone, we share knowledge. Our software, AnswerHub, is based on that principle, as is the dozen or so zones we maintain at any given time. We want you, as developers, to come to our site knowing you're going to learn something that will make you better at your job or that will help you turn an idea for a pet project into a reality.
But if you're reading this article, it means you're considering writing your own knowledge down for others to benefit from, too. And if you're anything like me, or most writers, you're often going to find yourself staring at a screen that looks like this:
Well, we want you to write for us, so we're more than happy to meet you halfway. With that in mind, I'm going to walk you through most of our zones and go over a few of the more promising topics that readers visiting DZone want to learn about. Consider them jumping off points for articles.
Some of these come from common observations, others from noticing trends in Google Analytics, while others come from our own staffers who happen to be curious about various topics and want some more information.
We'll also be including questions and topics that executives and team leaders want answered, courtesy of our research and analysis superhero Tom Smith.
So, without further ado, let's dive in.
Do you use Scrum? How about Kanban? Scrumban? Lean? Waterfall? (Just kidding.) Do you use some elements from one of them, like, say, extreme programming? Several of them? Well, we want to know about your experiences. What did you do? What worked for you? More importantly, what didn't work for you? If possible, explain how your quality assurance structure worked, too. That will draw a lot of eyes to your article, if our history is anything to go by.
The key to this kind of piece is to explain your process and analyze where and why it succeeded or failed. It's important to learn from both successes and failures alike so that others can do the same. Most importantly, explain which elements did and didn't work well for your team. Everyone already knows the basics of how those various frameworks operate, so go a level deeper. Get specific.
Implementation of machine learning/natural language processing in R, Python, and/or Java.
Watson is making movie trailers, according to that IBM commercial (trailer?)... But we'd like to know how much of this is generated by the comp and how much is supervised/curated by humans... What do they need to do to teach Watson how to analyze and understand when a scene is scary versus sad versus funny? Maybe take the route of talking about how much of the human element is necessary in directing machine learning—obviously, we have to create the algorithms, but after the automation starts how much manual intervention is necessary from us? When, if ever, do we get to take the training wheels off? Someday, will a computer be able to generate a whole automated trailer that doesn't need a human editor?
Serverless architecture is probably among the hottest topics in cloud computing, which makes sense, seeing as it's basically the next logical step. Really, any sort of solid tutorial using serverless architecture stands a good chance at being published, so long as you're not retreading ground other writers have covered before.
Containers could also go to DevOps, depending on their application. Regardless, they're an important part of the cloud ecosystem, and devs are always looking to see how they can put them to better use. The next big hurdle is refining the use of containers like Docker in production, so posts like that would almost certainly be popular.
Similarly, orchestration is an important part of the container-sphere. Kubernetes and Mesos have a lot going on, and it's good to know the latest and greatest ways you can implement them.
From Tom's Desk
- Which clouds are you using? APIs or operational? What classes of data – compute, front end, hybrid, protected?
- How do you handle end-to-end flows? How does your team develop and push your code to the cloud, with all tests and integrations in between. Learning about these processes is very valuable because I don’t think that any two companies have the same flow. Getting to know other cases could give us more insight into our own process.
- What impact have containers had in how you work from an architecture and process standpoint? What did you change? What are the metrics (agility, velocity of deployments, etc.) you are measuring? How have they changed as you’ve moved to the cloud?
- How do developers collect data about CX? Are you satisfied with the information you are getting? How can it be improved over time? What are you using? Are you happy with it? Are there any gaps in the CX data that need to be filled in?
- At what point do we move it all to the cloud? What’s the next concern after you take away the IDE? How do you pick up work and work on another machine? How does the cloud change how and where you work? What motivates someone to develop in the cloud exclusively? Some people have used the JetBrains IDE for 20 years, and you’d have to pry it away from then.
- VMs vs. containers vs. a mix. Do developers see one deployment format dominating, or will the deployment depend on the workload? Do developers assume that containerized apps will run on physical servers or a virtualized infrastructure? Will development be done on full Platform-as-a-Service offerings such as Cloud Foundry, or will the model depend more on custom defined microservices that will be combined using an orchestration engine like Kubernetes to deliver the workload? What is the split between public and private cloud deployment?
_______ vs. _______ for _______
The Golden Rule of databases is that no solution fits all use cases. You use the right tool for the job. This format of article actually works well for most zones, but I think it's a special kind of relevant for databases, given the sheer variety of both DBs and uses. Don't feel limited to these specific examples, but any articles about these or similar topics would be welcome:
Postgres vs. NoSQL (or NewSQL) for Big Data
MongoDB vs. CouchDB vs. Couchbase vs. RavenDB for IoT
OrientDB vs. Neo4j for fraud detection
Working backwards from the punny title, this one is for anybody that would like to play devil's advocate to DevOps... one could go through the tenets of DevOps and explain some of the problems that can be created by it. Maybe it's people freaking out and trying too hard to implement it or just plain doing it wrong. Maybe it's people not understanding the tools and/or the processes. Or maybe even some of the major tenets of DevOps are just not so great in your opinion and could be countered. One could even talk about some of the tools being built and marketing around it as a buzzword... everybody trying to make money off of the DevOps craze.
From Tom's Desk
- Tell some war stories about how companies initiated DevOps – what worked and what didn’t. Also war stories about automation. We need to share what has worked and what hasn’t. Be transparent to accelerate change.
- Are developers thinking about measuring the impact of the code by logging and monitoring with production with a continuous feedback loop? Do developers build feedback loops in their code? What does it look like?
- What tools and workflows have been most useful in developing apps in a timely manner?
- How many engineers understand the deployment process? How many use automated deployment tools? How do we improve our own work to make it fast, repeatable, and reliable for everyone in the organization? How do we do DevOps at scale? How much time is spent coding versus provisioning, building, and determining which node to deploy to?
- What tools are you using to break down walls and encourage collaboration. How do you use them?
- How do large software shops use DevOps/CD methodologies? If you're not using them, what are you using instead?
- Are you sharing data versus opinions? How are you sharing data?
- How about a breakdown of the tools, services, and technologies that are being used? What are the pain points in using them?
- How many developers are actually creating functional test cases? How has the day-to-day work changed over the last two years? How have frameworks changed?
- What security procedures are you using as part of your DevOps process? Who’s responsible for security?
- What are the tools you are relying on, what do you find value in? Are any of these tools improving your relationship with operations? How much control do you want from an infrastructure standpoint?
- What are the criteria you use for certain solutions? Platforms? Containers? What should we be focused on as individuals versus as an industry?
- What percent of developers and engineers are using CI? Of those, how many have a backlog of failing tests? Is this a problem in practice?
From Tom's Desk
- What is the average time it takes to create an API to for an existing platform? We’re hearing two weeks, four weeks, and even six weeks for a single API. How big of a problem is time-to-market? How many have tried to implement ABS (Agile Byte Services) and what was your experience?
- What is your familiarity with and use of the REST maturity model? How far along are you toward getting to level 3, where the provider can make changes without impacting consumers?
- What kinds of problems do you run into when dealing with data integration? Is there a trend among certain languages or frameworks? Are people running into the same problems anywhere?
- Where are we in the journey from transaction services to interaction – event-driven sources with JDBC and API or logs and devices?
- Considering the mix of micro-batch versus real-time and streaming data integration, are they coalescing or remaining two distinctly different problems?
- With the recent addition of HTTP2, how are you changing your approach to data integration? What benefits are you seeing? I've seen movement towar event-driven programming on the front end. Where do you see their future with event-driven programming? What are the challenges moving from REST to event-driven programming?
- The popularity of React is helping front-end developers do back-end development. How many “full-stack” developers are doing both? What technology are you using on the back end? How are you keeping the front end and the back end connected?
- A tracking study that monitors: release frequency, DevOps adoption, languages, tools, effectiveness of analytics, tracking, preference in tooling IDEs in browser, methods around development.
- How are you getting a copy of your data in an automated test environment? Is anonymizing the data a problem? Are you anonymizing data?
- What are the biggest pain points in integration, and what types of innovations/solutions would make your life easier.
- What are the key challenges you see for the test environments you use during integration projects?
Consumer/Hobbyist IoT/Home Automation
It's always fun to see how people are using their Raspberry Pis and Arduinos. Show us your latest projects! (Just be sure there's a developer's perspective to it.)
- Using IoT sensors with blockchain
Interacting With IoT
- How to build a Google Home Action
- What will replace Java?
How ubiquitous is functional programming? Is it exciting others? Where is it most useful? How do you see it developing in the future?
What are some real-world impact of design choices?
How many Java developers are still using EJB 2.1? How are they migrating before the vendor stops supporting?
How are you doing heterogeneous development?
What are some of the emerging technologies you're adopting in production environments?
What are you using Java for today that you didn’t think you would?
How are developers using the new versions of Java? What’s great and what isn’t?
Which JVM do you use and why?
What are your thoughts on Maven versus Gradle?
Where are developers going with regards to automation within apps?
If there was one feature you could get in Java from another language, what would that be?
Responsive Design and Development
Making apps responsive is a pretty massive trend. Do you buy into it? How have you incorporated it into your work? What are the challenges you face when considering responsive apps? The fun thing about this topic is that you can tackle editorial/opinion-based articles as well as the tutorials that fellow devs know and love.
App Optimization (NOT App Store Optimization)
Making your mobile apps as quick and nimble as possible isn't just nice to have, it's quickly becoming a necessity. In a world with dwindling attention spans and where one negative experience with an app leads to instant forgettability, making sure everything runs smoothly is essential. What tools to you use to ensure your apps are optimized? What's your process? What are the challenges you've faced and overcome to make sure your apps work smoothly? People absolutely want to know.
Note: This is not about App Store Optimization. We don't host articles about SEO or similar types of optimization. That's too marketing-oriented for us.
Come on, this is what you're here for. Node vs. Angular. RavenDB vs. Couchbase. Which is faster? Why? For which use cases? The three keys to success here are benchmarks, benchmarks, and benchmarks.
It's hard to go wrong with something that so many developers are concerned about. Whether it's Java, Python, or C, you're going to want to make sure your work runs as fast as humanly possible. What are your favorite techniques? What are some particularly tough challenges you've overcome? Your fellow devs are dying to know.
- Securing APIs and message queues.
Thoughts on Hacking, Ethical or Otherwise
This is kind of old news now, but it still this happens all the time. Groups of hackers break into a large company's social media account and hold it hostage. There could be loads of stories here... opinion pieces about these groups (what are their motivations? Legal issues? Hactivists vs. people who are doing it for monetary gain vs. whoever else), uncovering what typical forms of attacks (if any) these guys use to commandeer a social media account or company website box office.
Blockchain is an exciting new technology, and it deserves some attention. In particular, how can blockchain impact app security?
- Tackling standard vulnerabilities in non-web applications.
- Issues having to do with security and home automation devices, voice assistants like Alexa, Google Home, connected devices, etc.
From Tom's Desk
- How would you like to consume application security? How would you like to be notified – alerts to Slack? What workflow works best for security? How much time does it take to check false alarms? What tools are you using? How much are you involved in the security of your applications today? How much pressure are you getting from management to ensure the applications you are building are secure?
- Are you interested in solutions that automatically correct vulnerabilities? Do you have any concerns with such a solution?
- How much “fuzzing” is done? How often are you conducting security audits with Android and iOS apps? Were they riddled with bugs?
- How are you training on security given the many different ways to approach it?
- How well does the developer community feels they are integrating security into what they are doing today on a zero to 10 scale? Are they designing security in from the start?
- How do developers think about implementing applications within a container? How does that change how the software is used at the enterprise level?
- What are your feelings with regards to the security changes and implications of working in the cloud? Is it an advantage or disadvantage?
- How do you balance vulnerabilities, security concerns, and functionality during manual code review?
- What is the biggest barrier to adopting new technologies and how can that be overcome?
- Where are software engineers engaged in the SDLC? What data are you missing that could help you develop more securely?
- How many developers test in automated test suites that are security focused? Are you using any tools to provide insight into who’s using the app? How does it perform? Do you use a sandbox?
- How do you handle approval of client-side key management? Do you use PKI? Why or why not? How do you actually harden applications? What is your approach for API protection?
- The importance of adhering to all of the OWASP 10, not just two or three pieces.
- Selenium is sputtering – it requires plug-ins for browsers and it’s still inferior to the older Selenium. Is there a groundswell away from Selenium to something else?
- What difficulties do developers have with both web development and the platforms they use? Knowing that something is hard to grasp, or complicated, or poorly documented gives platform makers an opportunity to improve things and make web app development a little better/easier.
- Compare your favorite technical programming language, environment, and infrastructure versus what you’re being asked to code in. Is there a big difference?
- What are you using for your frontend stack? What are your hosting and deployment strategies?
The Obsession With Killing Tech
And that's everything! Hopefully, these topics will give you some ideas to get started. Of course, as time goes on, some topics will be removed and new ones will be added as technologies evolve. If you're interested in contributing to DZone, make sure to check back often to see if there are new ideas to tackle.