While agency life will often demand a fast-paced working style, sometimes it's important to set aside a few more minutes to prevent typos and ensure a stronger finished product.
While eliminating the Like feature on social media may be a step in the right direction for everyday individual use, companies will now need to reevaluate their social media marketing plans.
When immersed in client work and glued to a desk for long periods of time, it’s possible to become stuck in a pattern of delivering projects that may meet client expectations, but lack the true innovation needed to push the work to the next level. Sometimes it’s not only beneficial to step away from the office for a moment but absolutely necessary in order to refresh the mind and deliver better ideas. Conferences and tradeshows are great opportunities to leave your desk for a few days while still remaining engaged with the marketing world.
I can’t multitask. Well… neither can you.
It’s no surprise that the real conglomerate of our personal data is Google. But did you know you can download the data archive? Learn how to access your data.
Companies are relying more and more on influencers to spearhead conversations with their audiences in order to spark interest in their brands. However, in order for an influencer marketing campaign to be successful, it has to be planned out correctly.
In modern agency life, it seems impossible to take a vacation without taking work with you, but it can be done. Here’s how I did it.
As a back-end developer, it can be hard to style a web page. CSS is not very intuitive and around every corner there’s a “gotcha.” Flexbox is a fairly new CSS technology that once mastered, can be much easier to use.
There are a number of reasons you might want to start a technology meetup. In order to narrow the focus a bit, we’re going to approach this from the standpoint that you work for (or run) a company that is interested in the idea of hosting a meetup.
As a new marketing manager for a practice group within a consulting firm, I had a lot to learn. And a few of those things, I had to learn the hard way, like making an error that cost the company many tens of thousands of dollars.
Every business is different. Every business has different goals and needs. But every client wants to see results as quickly as possible.
In the case of website or app development, we can bring tomorrow ever closer to today by using the next evolution of the Agile process. It’s called continuous development, and it dramatically improves technical time-to-market.
For this post, I enlisted the help of fellow “Alipian” and Senior Technical Lead, Brendan Butts.
Continuous development presents an iterative approach to development by building software and releasing that software in pieces. This starts with the build and deployment of core features (typically called the minimum viable product) and iterating/removing/adding functionality from there.
Continuous development can be split up into separate concepts: integration, delivery, and testing.
When a member of a development team starts working on a new feature, they typically create a branch of the most up-to-date source code, code the feature, and then their changes are merged back into the main source code repository.
This approach can lead to conflicts if the code in the main repository has changed greatly while the new feature was being developed (typically due to other features that other developers were working on having been merged in).
Continuous integration seeks to reduce the amount of time a code branch goes without being integrated into the main source code. With CI, developers are encouraged to integrate their changes into the main source code multiple times a day.
CD is an approach to development aimed at reducing the length of development cycles and having more of them. The goal is to ensure that new code can be released at any time, with high confidence of it performing the way it is expected.
This involves incremental updates to applications that are oft deployed to the production environment after being tested automatically on a staging server, using rigorous test cases. It is important for the deployment process to be a fully automated “push button” solution.
There are three key elements that CD provides:
Visibility means that all aspects of the build/deploy/test/release process are visible to the entire team.
Feedback means developers are made aware of issues as soon as they occur, when the code they just wrote is fresh in their minds. This allows the developer to fix the issue quickly.
Continuous deployment means the automated process that allows the release of new improvements or fixes to the production environment.
The book “Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation” provides more technical detail than we ever could in a reasonable blog post, if you are interested in taking a deeper dive. A copy sits on our shelves.
There are a number of benefits to operating under continuous development.
This is the benefit that is the most obvious. With a traditional digital project, the launch of the website or app is the last thing that happens. If you have a project running a full calendar year, for example, the user doesn’t see the finished product until closer to November or December. That stinks!
With continuous development, you can get a version of the site to a user much earlier in that calendar year and then iterate through the year, capturing feedback all the way.
Because the model is more collaborative and faster moving, we have even seen cases where it has resulted in a shorter timeline for delivery of everything originally scoped!
We maintain that sometimes it is difficult to fully understand how something functions until you are in the driver’s seat — compare this to watching a car in action on a commercial versus taking one for a test drive.
It can be difficult to understand how design or requirements align with an individual’s expectations until after it is available to be touched and used. Continuous delivery allows a user or stakeholder to identify any gaps in understanding early and fix them prior to the end of a project.
On a similar note to the above point, continuous development opens the door for further creativity and user testing. Direction can shift on the fly, as humble beginnings make way for exciting new ideas.
User feedback can also help identify additional opportunities or places with which an application can do more or do differently.
The feedback cycle enabled by continuous delivery, as mentioned earlier, provides a developer with immediate feedback about the code they just wrote. After the code is integrated and deployed to the staging environment, automated unit tests are run, which test core functionality of the application. If there is an error, or something behaving improperly, the developer will be made aware and they can fix their code.
This isn’t the only kind of feedback though. Problems in the deployment due to software libraries or configuration changes, or database migrations, will all be reported on to the developer.
Then of course, there is the user feedback which can come from internal teams reviewing the new software and performing acceptance tests, or from actual clients of the application.
As a team, everyone involved in the software development lifecycle gets a measure of satisfaction from releasing new features. This satisfaction is often tempered or reduced by bugs, anxiety over the deployment, or low confidence that the feature will perform as expected.
Continuous development reduces bugs, heads anxiety over deployment off before it ever starts by making deployment so routine it’s about as anxiety producing as making a cup of coffee. Automated tests and acceptance tests raise the confidence level of everyone involved in the project as to what the feature is going to accomplish.
We believe that continuous development is the future and recommend it as the methodology for most projects.
There may be situations in which a more standard “Waterfall” plan is required (Discover → Requirements → Design → Develop → Launch). If you are willing to take a chance on a more iterative and agile approach to building your new website or application, we think you will be pleasantly surprised by the results and by the more immediate returns.