Two categories, one big difference
When it comes to people working on web projects, we divide them into two categories: web development consultants and web developers. The distinction can be a little fuzzy, since people like designers and testers aren’t interacting with the code at all. Don’t worry about this – the difference lies between people who find solutions to client problems (consultants), and people who implement these solutions (developers).
Why is this distinction so important?
This comes down to the service you’re looking for when hiring a web development team. If you’re lacking an internal team that can think through and create detailed specification for projects, then you need to look for web development consultants. This is important; without an experienced lead in the team, there may be no one to raise possible issues, figure out better workflows for your project, or manage the developers for you.
Web developers that care
A lot of consultants often find themselves labelled as mere developers. People refer to you as a developer and you find yourself going, “Well, actually, I’m a full stack/web/front-end developer and I work with the client to offer best solution fitting his needs”, which might not mean a whole lot to other non-developers, but basically, you’re in the camp of web development consultants. Keep up the good job!
Decide, who do you need
So what kinds of problems do consultants and developers deal with on a daily basis? If you’re trying to decide whether to hire a consulting service or a development team, take a look at our tips below, maybe you already have somebody who meets the requirements.
You need a web development consultant if you don’t know…
1. …how to translate your business model into a web project
This can often be tricky, as it takes the client out of their comfort zone. Sometimes the business model that the customer uses is not possible to translate (or is extremely difficult/costly to translate) into a web project.
For example, Company X specializes in selling fully-customized, hand-crafted product Y that is ordered during a personal interview with the customer and then estimated on a piece-by-piece basis. It’s a very specific process that can be somewhat automated, but it’s far from standard e-commerce setup. If the customer wants to try the online sales, it may make more sense to design a more simplified process with limited options to be handled online and direct customers with more specific needs to sales reps.
If Porsche does this with their Porsche Exclusive program, why wouldn’t it work for you?
2. …which web technologies will work best for your project
Browsing on the web, you will encounter a plethora of given technologies, but what is needed here is experience to filter between the marketing slogans and various frameworks to make an educated decision about what will really work for your specific project. For example, did you know that you can calculate geospherical distance directly in Mongo DB, or find similar images using Postgres?
3. …what third-party systems need to be integrated to implement the requested features
This is relative, and even best consultants don’t know all services currently offered on the internet, so there’s a fair chance that Google will be put into play here. What gives web development consultants an edge is the experience to see which service may be easier to integrate with the technology of the project. This can save tons of money and hours of precious time.
4. …how to estimate your web project
How much experience do you or your team have to estimate a web project? Yes, you are experts in your domain, but knowing your product does not translate to being able to estimate the work needed to build it in an unknown technology.
5. …what other non-programming or non-technical tasks are required to build the project
Just like the budget, you need experience with web projects to know what side tasks are to be handled and how much time they may take. A good but surprising example for clients is a need to conduct performance testing on a new environment. A performance test means you are more prepared to handle heavy traffic or traffic spikes immediately after launch. We really encourage this as it can show potential issues well before they become serious problems.
6. …what are possible risk points in the project
As with the first point, sometimes things just don’t translate. There may be a requested feature that is simply not possible to implement with current technology. For example, a website that is able to detect if a mobile device owner is walking while reading. It’s theoretically possible, but very problematic and unlikely to work at full potential.
You need web developer if you don’t know…
1. …how to implement given feature so they work well
If you’re assigned with a programming task, as a developer, you need to analyze it from different angles. It’s important that you consider not only the simplest use case, but every case and dependency that may get affected by the new implementation. This is a very important phase, often handled by more than one person to ensure that the best implementation is chosen. A wrong decision at this stage can be very costly later on when some unforeseen edge case would require a major change or rebuild of given feature.
2. …what test cases are needed for given feature/use case
It’s the developer’s responsibility to come up with appropriate test cases for given feature. Some are provided up front as acceptance criteria for the task, but these rarely cover full logic and the special cases that are some hard to predict when thinking about high level functionality.
3. …how to optimize performance of given feature
Sometimes the requested feature if fairly easy to implement, but it becomes a beast when it needs to scale with time. A good example is a search that offers filtering and grouping. It’s usually quite easy to implement for small data sets, but when dataset grows to tens of millions of records, the feature requires special care and thought to ensure not only good performance, but availability too.
4. …how does given feature integrate with the rest of the project
A feature is rarely built in isolation. Even microservices are often part of a bigger system. When working on the project, a developer needs to pay constant attention to how the task at hand impacts the whole project. Even the easiest task to implement can affect other parts of the system, causing them to stop operating.
From junior developer to consultant
While these lists are by no means complete, we hope we have illustrated the distinction between the two roles. At Nopio, we want everyone to be consultants, at least to some extent. Our advice for the best path to becoming a successful web development consultant is to start at the very bottom of the ladder. Climbing from junior developer to a consultant role provides ample experience along the way. This, we believe, is the key to honing the calm, friendly, and professional image of a trusted expert.
We hope this helps, and feel free to try our approach by getting in touch with us today!