Recently, I had a privilege to post, on official Cognifide’s blog, my thoughts why building platforms over websites can be a better approach. This article is a result of experience gained in past year while working on Investec Platform.
Below is a excerpt of my post, 7 reason to build platforms over websites:
Building new websites based on Digital Marketing Suites like Adobe CQ or Sitecore is one of Cognifide’s specialisations. For some of our clients, like Investec and Roche, we have built dozens of them. But we realized some time ago that if there is a constant need to launch new websites, building one after another is generally, not the smartest and most cost-effective approach. The approach which we have proposed, implemented and now proved to be successful is to build a platform instead of replicating dozens of independent websites. When I say “platform” I’m thinking of an application, built on top of the Digital Marketing Suite, which is capable of hosting multiple sites. Yet, is still flexible; each website has the autonomy to customize design, layouts, functionality and also expose a number of extension points so that adding new functionality is easy!
Below are key benefits for the business which the platform brought:
- Quicker time-to-market – it now takes us, 1 day from request submission to the point where the new website is ready for content entry. We are able to be this responsive because we have a set of standard designs; a set of components and most important, the flexibility to lay pages out in almost, an arbitrary way. There is no need to do any development to set up new website; it all can be done by configuration at the platform level.
- Quicker content entry – their editorial team has been trained to use the platform, they know what the platform can do and how to fully utilize all of the available functionality. We don’t have to teach them everything from scratch for each website. They are effective because they work in an environment which they are quite familiar with.
- Lower costs of launching new websites – as I said before; setting up a new website now does not involve any development. There is a bit of configuration that needs to be done and on top of that, new domains have to be set up, which is of course, inevitable. However, the entire process takes only a few days for the engineering team.
- Lower risk – risk of launching another website is minimal. All elements have been tested before and are already stable in production environment.
- Easier brand governance – all websites live on a single platform which makes changing anything trivial. Single platform also enforces consistency, assets re-use, easier maintenance.
- Improved scalability – process of building a website is always the same. It’s well defined, which means that it’s easier to outsource some tasks/aspects to external agencies. And as more companies/agencies can work on the platform, it is easier to scale and jump from 1 -2 launched websites per month to 20- 30+ .
- Greater reuse and sharing of components built across the platform – there are always new cases, new requirements or new systems to integrate with. Component implemented once, can be re-used across entire platform, all other microsites can use it. It’s a massive reduction of costs.
Read full post on Cognifide’s blog.
Digital marketing platform (DMP) is not a new, more catchy, name for content management systems (CMS). Difference between these two is fundamental. Content management system allows non-technical users to easily create and manage content. Focus of a CMS is primarily on robustness in content management but also on
- assets management
- support for multiple languages
For CMS, main focus is on making management of websites simple. You can recognize good CMS when content management is a straightforward task which doesn’t require support from IT department. I would even say that sites which are well designed and built in a sensible way (on top of CMS), should empower regular people to publish their content easily and quickly.
Where role of content management system ends, role of digital marketing platform starts. Published content is a starting point for marketing activities like:
- promotion of content via social networks (Twitter, Facebook, Google Plus)
- email marketing, newsletters
- campaign execution and performance monitoring
- conversion rate optimization
- SEO and content optimization
To support all of the above activities, DMP has to enable easy execution and tracking of campaigns. It has to offer tools to gather subscribers, it has to integrate with social media, it has to support SEO. Those are basics which marketers need, to do their job effectively. And also, this is exactly what differentiate CMS and DMP.
Environment in which digital marketing platforms operate is very dynamic, there are lots of system/platforms/sites to integrate with. Every year there are at least a few significant acquisitions which change the landscape. To give you a good idea how vast and complex the landscape is – here is a Scott Brinker’s marketing technology inforgraphic from last year:
This vast and complex landscape is a challenge awaiting technologists while building sites on top of digital marketing platforms. It’s even bigger challenge for those who build digital marketing platforms.
Digital marketing is popular and in the same time enigmatic term for many software technologists. That’s because marketing in general (not just digital marketing) is outside of our area of expertise. Despite that, recently quite often we see marketers working together with technologists to build tools which are helping them with everyday tasks.
Digital marketing world is changing rapidly, there is a huge demand for new tools, for integration with various platforms, for more features to increase conversion rates or simply reach wider audience. In this situation it’s essential for technologists to get solid understanding of digital marketing business.
In this post I would like to demystify digital marketing for software technologists. I will break down digital marketing world into small pieces to help you understand what digital marketing is, and what kind of challenges it sets to us.
So what do you mean when you say Digital Marketing?
Many technologists, especially those who are close to web content management systems (WCMS) find digital marketing term to be yet another buzz word. For WCMS technologists, digital marketing is something that we are all fairly familiar with, we instinctively feel it … but it’s enigmatic in the same time. I always had a problem describing with my own words what stands behind it. It was even harder to tell the difference between digital marketing, online marketing and social media marketing. It took me a while to crack it and know I would like to share with you my guide to digital marketing world.
So where does it all start? Digital Marketing or Online Marketing?
First thing on the way to solve this puzzle is to find the broadest term. It will be our foothold. Starting from there I will explore digital marketing world step by step and in the end, hopefully, everything will fall into its place.
Let’s get it started then …
Wikipedia defines digital marketing like this:
Digital marketing is the use of digital sources like Internet, digital display advertising and other digital media such as television, radio, and mobile phones in the promotion of brands and products to consumers.
From this definition you can clearly see that digital marketing is not only about Internet, it has a broader meaning, it covers also channels of communication like TV, radio or mobiles.
In this post I will focus mainly on internet marketing as this is where my expertise is.
Interesting thing to note is that over last few years, popularity of term internet marketing is decreasing while digital marketing is increasing. Time of internet marketers ends, they have to transform into digital marketers or die.
Let’s take a closer look on Internet Marketing
Internet marketing is also known as online marketing, web marketing or e-marketing. Some people will argue that there are some minor differences between the terms but I think it is safe to treat them all as synonyms.
Far more interesting is extensive variety of different sub-areas which internet marketing consists of:
Question to you now – do you recon one person can do all of that? And second question – can one person be expert in all of those areas?
I’m convinced that amount of knowledge required to master all of different aspects is way too wide for one person. Another complexity is that internet marketing is very dynamic and rapidly changing environment. It makes staying up-to-date very time-consuming task, not to mention being an expert.
In next sections I will jump into details and talk about each area one by one. But thing is that that those areas are not completely independent from each other. On the contrary, in digital marketing world everything is linked together. It’s not easy, but I think it’s vital to understand how different areas of digital marketing are connected with each other. Efforts or shortages in one area have impact on other areas. It’s good to have a big picture because it gives you a chance to see the patterns and identify root causes for various changes.
Some people say that content is a king. Other people say that it’s not about content; it’s all about remarkable content. There are even more extreme views like marketing is impossible without great content. Whoever is right, one thing is sure; you need content to tell your story; you need content to tell about your products and services; you need content to generate traffic. And later you need traffic to engage with visitors can convert them into customers.
Content marketing used to be very popular among bloggers and in small business. It’s no longer the domain of small businesses, recently also big global companies like Coca-Cola are focusing their marketing efforts on content marketing. Coca-Cola lunched recently Content 2020 program.
Coca-Cola’s Jonathan Mildenhall, VP Global Advertising Strategy and Creative Excellence, recently stated that:
All advertisers need a lot more content so that they can keep the engagement with consumers fresh and relevant, because of the 24/7 connectivity. If you’re going to be successful around the world, you have to have fat and fertile ideas at the core.
Do you need more to be convinced?
Okey, but how to do content marketing? First step is to publish remarkable content. Second step is to make a lot of noise about it to reach to as many people as possible. This is why social networks and other sites focused on sharing cool stories are so popular among marketers. Check the rise of content marketing infographic to get an idea about the numbers. That explains why integration with Digg, Reddit, Delicious, Twitter, Facebook or Google+ is crucial. Marketers want to see sharing/voting/bookmarking widgets on their site to make it easy for visitors to take an action. On the other side this is exactly what visitors want – people love sharing cool stories.
Another important aspect of widgets is that they display number of likes, number of re-tweet and so on. Why does it matter? Because high numbers mean that a lot of people consider given content as remarkable, high value, worth reading and sharing. High numbers are a social proof. Social proof has a strongly influence on future visitors – they are far more likely to consider content valuable. They are more likely to take an action.
Marketers who take content marketing seriously have a publishing schedule and an editorial calendar in place. You can also see them guest posting, writing eBooks or creating infographics.
What technologists should keep an eye on?
- sharing new content on social networks should be easy, possibly even automated!
- integration with sharing/voting/bookmarking widgets are often key requirements
Thanks to analytics marketers have insight into site’s performance. Answers about traffic sources, popular content, users behavior are there. But marketers also use analytics to track actions. What actions? It can be something like brochure download, account signup, RSS or newsletter subscription.
Starting point to track actions and visitors behavior is integration with Google Analytics or commercial counterparts like Omniture. Second step is setup of conversion goals. Actions can be simple like a single click on download button but can also consists of multiple steps.
With analytics marketers can figure out which pages are the best (have high conversion rates) and which ones require some attention (low conversion rates). They can figure out, in multistep goals (called funnels), which step for some reason doesn’t work and cause people to leave without closing the deal. Having this information, it’s much easier to prioritize improvements.
Finally thanks to analytics, it’s possible to track and measure effectiveness of various campaigns. Simple example – if you bought on Google AdWords ads for X pounds and as a result it generated sales worth 2*X pounds then of course you are on a good way to get rich. But without analytics you don’t really know which part of sales have been generated by your AdWords campaigns.
What technologists should keep an eye on?
- integration with Google Analytics (or some counterpart)
- marketers may need a flexibility to add custom actions to links/buttons on a site
Paid Search Marketing (PPC)
The easiest way to get more traffic is to buy ads with Google’s AdWords. Challenge of course is to make sure that conversion rate is high enough to make entire venture profitable.
This is where landing pages are getting important. Marketers often build separate landing page for each product, service and sometimes even for each campaign. Why? Because each product, service or campaign are targeted at different audience. Therefore each landing page will be slightly (or very much) different, each landing page will be focused on a single product for particular audience. But the goal is always the same – landing page should encourage visitor to take action.
Some of things to consider in this area – marketers will pay for the traffic, but they want to make sure that it won’t be just any traffic, they want to see certain type of visitors to come and see their offering. Paid search marketing will be different depending on target audience as different type of users have different habits. For instance on Facebook there are different types of users than on Flickr.
Social Media Marketing
This is huge topic because there are many social networks and each of them is different. To name a few key players: Facebook, Twitter, LinkedIn or Google+. On each platform there is a different audience, on each platform there are different strategies to attract attention.
Why marketers bother about social media?
There are lots of people on social networks, so there is a big audience which can be potentially converted into visitors and later customers. Another reason for marketers to be there is to make sure that they control their brand and news about their brand on social networks.
Being present on social networks increases brand’s creditability, helps manage it’s reputation and allows better control over news related to the brand. About Twitter people say that “Twitter is not a technology. It’s a conversation. And it’s happening with or without you”. The same goes for other social networks.
The problem with social media is that having an account there is not enough to get people’s attention, you need to be active; you need to share great stuff. Therefore marketers constantly need new and fresh, high value, content. Here is a nice guide how to grow your brand on Twitter.
A few things on which technologist should keep an eye:
- social media marketers will need a custom Twitter background which on account page
- another aspect is Facebook, marketers needs branded design for Facebook page
- other social networks (like Google+) might also need branded pages
Newsletters are not dead! This is one of the easiest ways to stay connected with the audience. Therefore marketers work hard to convince people that subscribing newsletter is a good idea. Subscription to a newsletter is a very common conversion goals.
What are the benefits of having large email list? People check their inboxes a few times per day (or even per hour) so newsletter gives marketers powerful tool to stay top of mind and attract client’s attention whenever they have something interesting to say/sell.
What technologist should keep an eye on:
- marketers often use third party emailing systems, therefore some integration to pass information about new subscribers is always required
- custom, branded, emails are also very common
- having a large email list, there might be a need to run more advanced campaigns than “send to all”. This is when segmentation comes into play
Search engine optimization (SEO) also known as organic search marketing (OSM) is a very broad and dynamically changing topic. To be clear, SEO is about unpaid traffic, it’s about positioning your pages high, ideally on the first position, in SERPs (search engine results pages) for targeted keywords.
SOE in very high level steps:
- The most fundamental step is to find keywords/phrase for which the site and content will be optimized for. It has to be something relevant for your business but also something that people are looking for.
- Next step is to create content and organize the site in a way which is optimized for selected keywords/phrases.
- And finally get tons of backlinks to your pages. Remember that links should come from multiple domains – it’s more natural and more difficult to achieve. Also links to your pages should use relevant keywords in anchor text.
One thing to remember is that Google rank pages not sites. What does it mean? If you want to reach first position in Google for some keyword/phrase, you need to create a page, single landing page, highly optimized for this keyword. Having this page, you need to make sure that there are tons of links to this page. How many? It depends how competitive given keyword is. Phrases are almost always less competitive. Usually the rule is that more words your phase contains it’s easier to reach first position on SERPs. (on average first item on the list is clicked in 36% of search result displays)
And what does it mean that keyword/phrase is competitive? By competition you should consider all pages which are targeted at the same keyword. Highly optimized pages, which have keywords in domain name, high page rank and tons of backlinks are difficult to beat.
Here is a short list of the most important aspects on which technologists should keep an eye on?
- URLs – should be SEO friendly, human readable, without old-fashion query parameters and ideally should contain keywords
- marketers should have full control over SEO sensitive meta tags like meta description, title
- proper use of HTML headings (only one H1 tag etc.)
- on images full control over alt tags, titles, file naming is also important. The same goes for videos
- make sure that bot will index unique content only under single URL to avoid content duplication (again meta tags)
- full control over links – for instance some links should be marked as nofollow using rel attribute. Typically it should be done for outgoing links, but sometimes it’s also a good thing for links within your site (footer for instance)
- remember that fast loading pages are ranking higher
- remember about sitemap.xml
- enable integration with Google Webmaster Tools to get information about links to your pages, performance of your pages in search results for different keywords and many more
Conversion Rate Optimization
Marketers take lots of actions to increase traffic on their site. But the real goal is to convince visitors to take some action. Usually it’s not a good idea to send all the traffic to a homepage because homepages are too general, designed for number different user types, not focused on a single product/campaign/service/offer. As a result there are way too many links, way too much action, and visitors can be easily distracted away from desired action in that particular campaign.
Guidelines say that it’s much better to have landing pages which are optimized for specific audience, focused on a single product (or service) and with single CTA (call to action). These way marketers have more flexibility to modify landing page in order to maximize conversion rate. What actions can be undertook? Here are a few ideas:
- Content optimization (simple and easy to read language, single message)
- Effective use of rich media like videos
- Layout and design optimization
- Better placement of CTA module
- Different size or colours of CTA module
- Adding some sort of social proof showing that people use your product and recommend it
More advanced option is use A/B Testing tools to check different variations and measure conversion rate for them.
For sure technologists and marketers will keep working together. Probably even closer than ever before. Challenges which digital marketing sets are huge for both parties so I think joining forces is inevitable to be successful. On this way marketers will have to learn a lot about technology and technologists will have to learn a lot about marketing. Maybe even marketing technologists will arise.
In a meantime take a look on this video which predicts the future of online digital marketing 2012-2015
This is not a full guide to digital marketing, you won’t find all the answers here. But my intention is to keep working on this page, keep adding and refining information. If something big is missing – let me know!
I hope you have found this page useful and informative. If yes then please share this page on social network of your choice. Help to me reach more people! Thanks in advance.
Developer’s point of view
If you ask developers how detailed the requirements should be, they will tell you that they want to know exactly what clients want to get. And this is good! Vague, high level, general requirements are not going to work for them. Everything has to be measurable so that developers and testers can easily, objectively, assess if a requirement has been fulfilled or not. To give you an example, if client wants to get a clickable button with an image and a label then, in ideal situation, developers would like to get acceptance criteria like:
- size of the image is 16×16 pixels, supported formats: JPG, GIF and PNG
- font size is 12 px and custom styling is not in scope
- label is mandatory and can have between 1 to 20 characters, only alphanumeric characters are allowed
- and so on …
To summarise it – expectation is to get technical details for each and every element.
Client’s point of view
Clients are usually much more high level, they operate on business level. It’s quite rare to hear from a client that they want a “clickable button with an image and a label”. They don’t operate on this level of details, not to mention the size of fonts or number of characters which can be entered as a label.
Much more frequently you will get strategic decisions like:
- IE6 is not a supported browser but still site in IE6 should be functional
- All component should be mobile ready – components should use all capabilities of mobile device and gracefully degrade from smart phones, touch phones to basic phones
- Site should be functional for people who have Java Script turned off
- and so on …
These are all sensible decisions but of course are too general to convert them into acceptance criteria just like that. The devil is in the details…
How to bring these two worlds together?
It’s obvious that there is a huge gap, details-wise, between decisions made by business and development team expectations. Primarily it’s a business analyst, project manager and technical lead job to minimize this gap and get both sides to understand each other. But is it only up to them to do the magic trick? I don’t think so …
To find the common ground, both sides have to step out of their comfort zone. Developers have to start thinking not only how to build a solution but also how to set constraints which will reduce complexity and effort to the minimum and in the same time maximize value for the business. It’s definitely not an easy thing to do. It requires good understanding of client’s needs, deep technical knowledge and experience to assess what solution will work and what will cause more trouble than benefit in future.
Business also have to be involved. Making a few general decisions is not enough for successful project delivery. Business have to collaborate with development team and help them transform requirements into solution.
It’s all about asking right questions
Development team which wants to get more detailed requirements can ask:
- So you want this clickable button with an image … what formats should we support?
- And how many characters you will need for a label?
- How this button should be rendered, are 12 pixels for a label the right size?
Or situation can be like this:
Dear client, we have prepared an example of clickable button for you. We think that in this version everything looks good and all the functional requirements are fulfilled.
- Do you think that image size is correct?
- We think that supporting the most common formats like JPG, GIF and PNG is enough. Do you agree?
- We have limited the length of the label to 20 characters to make sure that button will look good and consistent in all cases. What do you think about that? Is that a sensible limitation? If you want, we can extend this limitation but it will require additional 2 days of work because of something … Do you think that 2 days are worth it?
I think you can see my point here. First set of question is easy but all the thinking is on client’s side. Second set of questions requires preparation and is much harder, especially in more complex cases. I think second case is the way to show that we, as a development team, are adding some value. We are not just sitting and waiting for all the answers to magically appear, we are actively looking for those answers, we are providing technical expertise and this way we are helping our clients to make educated decisions.
What is the final goal?
Projects always have a limited budget (and requirements which are exceeding that budget). Final goal is to maximize return on investment for our clients. Not by working extra hours or running over budget but by
- figuring out which requirements have the most value and focusing on them
- helping to transform general decisions into a solution by providing recommendations and technical consultancy
- keeping things simple, low effort increases customer loyalty
- steering clients out of bells and whistles which are costly
PM can be a bridge between a client and development team but usually PM on his own don’t have enough technical experience to generate recommendations and provide technical consultancy. It’s an objective for entire team.
What are your thoughts on that?
In this post I would like to share with you quite cool logic puzzle. Real purpose of this puzzle is to reveal mental habit which is common for majority of people. I know, it’s very vague but that’s because I don’t want to spoil the fun
Preparation – You will need a pen and a piece of paper. Take the piece of paper and put on it nine dots in a way showed on the image below.
Rules – Your task is to draw four straight lines in way that all dots will be covered. To make it a bit more difficult, all lines have to be connected, end point of first line is a starting point for the second line and end point of second line is a starting point for third line…
Here is an example:
My lines are not exactly straight, but there are clearly four lines.
And that’s it really – now go and try to solve it on your own. There are not that many combinations to check so it should be doable within a few minutes.
Here you can download the correct way to cover all dots. I hope you have managed to figure it out on your own. If not then don’t worry – solution to this puzzle is far from obvious for majority of people. When I was trying to solve it, only one person of twenty five in a group has done it right. And that’s because that person had seen this puzzle before.
Key thing to notice here, to get it solved, is that you are not limited to area with dots. You can also use space around dots. People tend to make assumptions because “things usually work this way”. Usually in puzzles like that, there are lines representing boundaries, so it’s clear how big the game area is. In this case however boundaries are not defined. That’s something which completely doesn’t fit to scenarios familiar to our mind. And that’s exactly why we have made the assumption – there must be some boundaries, there always are! The easiest thing was to assume that outer dots are closing available space.
Of course that was just a game. Incorrect assumption was made and that’s all! No one got hurt, right? But imagine for a second, what are the consequences of incorrect assumptions made in the beginning of a project? Usually tremendous! Tell me from your own experience – are projects with incorrect assumptions made somewhere in early stages that uncommon?
I work with content management systems all the time. For me customization of CMS to client needs is a business as usual. I have done it many times. We, as a Cognifide, know how to do it and we are good at it. Risk here however is called - routine. With time people tend to stop thinking about basic things and take them for granted. We do make assumptions even without thinking about it. On the other side, our clients, in the same time also make some assumptions – about us, as a service providers, about a project or about a cost. They expect to get some things and this is not always communicated. Why? Maybe because we don’t like to waste time on talking about things which are obvious, right?
This puzzle showed to me that I’m not free from this mental habit; I do make lots of assumptions. It helped me to be much more aware of that. Also I’m aware that our clients are most likely doing exactly the same thing and it’s our job to surface those “obvious” assumptions. That is one of the reasons to keep asking “why?”.
- Be aware that people simply make assumptions, sometimes even without thinking about it
- Try to understand client’s intentions and goals to have better chances with discovering hidden assumptions
- Be conscious and transparent with assumptions which you make. How? The simplest way is to write them down and make them available to everyone.
- And finally – try to get distance from time to time and challenge your assumptions – try to verify correctness of them. Rule which was correct in past may not apply any more or may not apply to some specific project. It’s worth checking our habits from time to time and adapt if necessary. Seth Godin wrote once that decision before the decision is the box. Try to look on things from outside of the box – challenge your assumptions.
Final words … I’m sure that this game has some name; I have heard about it from a few different sources, it seems to be popular element of different trainings for marketers, sales people or managers. If anyone knows the official name – please leave a comment!
Moreover, if my post has inspired some thoughts in your head and you have enough time to share – please leave a comment!
In one of the previous post I was writing about estimates and commitments. I felt that this is an important topic because life shows that very often deadlines are beyond our control. I don’t know if it was only me, but I was living in a world where deadlines were always a matter of negotiations between a client and a supplier. Apparently this is not true for web development industry. This surprising (at least for me) truth was uncovered for me very recently when talking with the COO at Cognifide – Stuart Dean.
But if you think about it for a while, it actually makes sense. You have to realize that our clients are typically marketers. And for them, new website is most often only a part of a bigger venture. It can be a launch of a new product, new marketing campaign or some important for given industry conference. So from our client’s point of view all subprojects should end in more or less the same time. If one subproject has a delay then entire venture has a delay. In consequence new product or new campaign will be launched a few weeks later. And a few weeks delay can be converted into money not earned because of it.
Those are the market conditions we are living in. That’s why quite often we don’t have much room to negotiate deadlines. And that’s why the way to win and sign new contract is to come up with a realistic plan to meet those deadlines. Then simply we have to deliver them on time. I know – it’s easy to say, no so easy to do. But also that’s all what it takes to keep clients happy.
One thing which I see happening quite often on number of different projects is that developers have very limited access to the production servers. Actually in some cases they don’t have access at all. That causes number of problems, especially when there are integration points with other systems.
Of course as long as application is up and running lack of access is not a problem. But when something is wrong, developers are supposed to support the application and fix the ongoing problems. Usually in scenarios like this, when system on production is not fully functional, there is a lot of pressure to nail down the problem and fix it quickly. Developers without access are literally blind hence emails like ‘can we get remote desktop to production servers?’ between them, management and server admins are normal. If in the end developers will get a remote desktop access they can consider themself being lucky. Typically server admins and security policies are an impassable wall.
So what can development team do to put themselves in a better position?
Here are a few ideas:
- There should be a diagnostics tool for each integration point. Especially if an application relay on 3rd party systems. Developers should have a way to check if 3rd party system is responding and if it’s responding in reasonable time. Another useful feature is to have ability to invoke calls on 3rd party system with some test data and verify if results are correct.
- Each call to external systems should be logged and developers should have an option to generate a report with all the calls. It’s a great help when there is a need to investigate which system doesn’t work as expected. As long as developers can show evidence that for instance the applications asked 3rd party system to send x emails and only subset of them got delivered then it is clear where the problem is.
- There should be a way to gather data regarding server’s performance. With time application most likely will be more and more popular which means increased load. Also amount of data stored within application will grow. It’s essential to monitor if servers are dealing with current level of traffic and data.
- All unexpected errors should be logged and easily accessible. It again means that there should be an easy way to generate report with all unexpected errors. (like 500 error pages) I have seen a few times that information about unexpected errors were logged but they were buried somewhere deep in 1GB log files among other completely irrelevant information. In such cases developers can say that this information is logged but can they easily find it? Can they easily get all log files? Can they easily access all the servers?
Having access to all those data, developers can perform investigation and in reasonable time identify a few potential culprits. Moreover, on top of that layer they can build automatic monitoring system which can do most of the job for them and in case of unexpected errors for instance send emails to relevant people.
But to have all of that in place developers and also management have to realize that having diagnostics tools in place is not a strange requirement; it’s their duty as a professionals to foresee the problems and in future be able to tell what is going on with their application in any environment.
There are three simple ways to check if a team is really self-organizing:
- There are always daily scrums, it doesn’t matter if scrummaster is present or on sick leave, self-organizing teams understand that daily scrums are for them, not for scrummaster
- Team members voluntarily take tasks and work on them until they are finished. They don’t wait for scrummaster to come and assign something to them. Team knows what are the strong sides of all members, they know who should work on what to be efficient
- Team members help each other to finish all stories. If each member is working on their own and don’t really care if others are blocked by something, this is not exactly the team work which self-organizing teams should have
Do you know any other quick tests showing if team is self-organizing or not?
Every day we are facing some deadlines. There might be a need to finish a report, answer important emails, estimate something, fix some bugs or test next release. Those are all urgent and usually important things. We have to deal with them as a matter of priority.
This is obvious part; big question which I have is what next? What will you do next when all urgent things are done, the pressure is gone and you still have a bit of time?
Basically you have two options. First one is easy; you can switch to things which are not so challenging to relax and rest a bit. Problem however is that those not-so-challenging tasks are most likely almost completely not important. I can tell you without further ado that this is not the way to go.
Alternatively, you can focus on things which can have significant impact on your effectiveness and work quality. First step on that way will be to stop for a while and ask a question: what can I do to make my work more effective? Try to come up with at least one change that will have a significant impact.
If you start thinking in such categories you may be able to identify things like:
- tools which are not as good and useful as they should be – you can replace them with better ones,
- scarcities in your development process – you can work to eliminate them, visible problem is a killable problem,
- manual tasks which can be automated
You can also spend that time on personal development, and for instance:
- master tools which you use every day – learn some advanced features or new keyboard shortcuts,
- do some research,
- learn new design pattern, framework or programming language
Trick is to minimize time which you spend on urgent things. Urgent problems usually have some underlying cause. When you are close to a deadline there is no time for fixing the core issue. Typically it takes too much time so the only viable option is to find a workaround. However without fixing the core issue you can be sure that sooner or later that problem will come back and again it will be something urgent. That’s why it makes sense to spend your time on identifying and fixing core problems. That will reduce number of things which can go wrong and make you more effective. As a consequence it will also allow you to spend even more time on important things like personal development.
Effective people know how to distinguish tasks which are important and really matter, they know how to “put first things first”. They are proactively looking for opportunities to to get better. Are you one of them? What are your ways to have more time for important things?
If you are a member of development team, sooner or later someone will ask you to estimate something. It can be something small like a bug or task but it can be also something bigger like entire project. Regardless what that is, try to figure out what kind of answer you are expected to give. I don’t mean here that you should be trying to give the “right” estimate. I’m thinking about something different — usually there are two possible types of answers:
- We need 12 to 18 weeks for this project.
- We need 4 developers, 1 interface developer and 2 testers to have this project done before …. (some fixed date)
In the first case … you were really asked to give unbiased estimates, deadlines don’t exist for you. Project plan and deadlines will be planned based on estimates and negotiations with a client.
Second type is more interesting. It indicates that estimates are not the final objective, there is something more. Target (deadline) for this project is already set up front. So the real question here is “Can you come up with a plan to meet the deadline?” To answer it you need estimates, to provide a plan it’s good to know how big the project is. However keep in mind that it is only an intermediate step. It’s better to be very careful with this type of questions because even though you were asked for estimates, in fact it was a question about a commitment. By saying that you need given number of people to get something done, you are in fact giving your word that it can be done. If you don’t believe me then let me rephrase the second answer without changing the meaning into something like this “Sure, we can do it before … (some fixed date), we just need a team of 4 devs, 1 interface dev and 2 testers”
That’s why I think whenever someone asks you for estimates, it’s always good to check if the question is really about estimates or maybe it’s about a plan to meet the target.
What’s the relation between estimates and commitment?
Commitment is a promise to finish agreed functionality in given time. It doesn’t have to be the same as estimate. When you truly need to win a contract with a high-profile client then commitment can be more aggressive than estimates. You may assume that this contract will be a first step to a longer relationship and accept higher risk. On the other hand when you know about number of integration points and expect problems with them, you may want to go with more conservative commitment.