Friday, March 13, 2015

3 business cases where software development gives you traction

As technologists we always whiteness-ed discussions like these:

"Have you considered Scala? It's Object Oriented and it overcomes a lot of Java's shortcomings!"

"Have you heard of the new xyz Google plug-in?"

"We don't like Windoze, we are open source developers!"

All these are fine discussions between developers but the business does not care. They want results. They want product delivered fast and with great quality. They want paying customers. They want great customer support and outstanding responsiveness to issues. And, more important, they want to understand why and how your solution will help their business.

So how we as developers tailor our day-to-day approaches to fuel business growth? In this blog I will discuss three real world scenarios.

#1 Affiliate marketing and payment system 

This company is a start-up running an outstanding Content Management initiative on a full stack platform with a full blast database, a sophisticated users management system, a responsive website and two mobile applications.

They have an opportunity for a participation in an affiliate marketing program ran by a national company. The national company is restrictive/controlling and they are imposing cumbersome leads generation and payments requirements. The leads will basically be generated from their site, their site has to process the payment for subscriptions and well then they will give us access to the lead so we can register the user with our website. Subsequent users (subordinated to a user they registered) registered directly with our website will have to re-directed back to their site for payment processing and a commission will be cut.

While the opportunity is good, coding for such a functionality is not straight forward and security mechanisms will raise the price of the ticket item for software development services.

Instead of pushing for a sale in what it could mean more of hassle for both our customer and us, we recommended working with other companies who do it right: will just send us the lead and let us process the payment and cut their commission from there.

This is a good example of a situation where, no matter of the technology, implementing a solution would not make business sense.

#2 Plug-in for Indiegogo campaign

Another start-up is running a crowd funding campaign. They designed an attractive Indiegogo package for a niche / affinity based social media solution. They need to have people contributing through Indiegogo and getting their perks for their contributions- which are basically different levels of subscriptions to the service and marketing materials from the company such as tshirts and hats. They need us the programmers get their mail addresses for them to be able to ship the product.

Everything is fine. Just that Indiegogo does not have an API for 3rd parties to work with. On top of that business requirements are that the company's store has to allow for artifacts purchases directly from the store as well.

This is another example where the technology that you use to implement the business requirements matters less. What matters more is the approach to plug-in Indiegogo's code into your site's code. So it's a work flow issue more than anything. You basically have to simulate an automatic login into Indiegogo, grab the transactions of the day & the tokens generated with them and pass them to the company's web store so people who contributed to the campaign get access to the system and get their tshirts shipped out.

#3 Mobile ready real estate document generation system

A local well established luxury real estate agency is looking to implement a custom document generation and management system to assist different parties involved in a real estate closing. These would be standard docs involved in a real estate transaction like sales contracts, disclosures, property appraisals, legal docs etc.

There are of course similar solutions on the market but they all lack different features that this realty would like to see: i.e. they do not have mobile support, they do not take social media logins, they lack certain stats and reporting capabilities.

While we were analyzing hard to propose a solution and we were all spinning our heads off talking databases, responsive design and mobile apps the client had a very simple and candid question: "What can we do better than these guys?" (they were talking about their competition that was already using a similar product).

The answer in this case was in our ability to support formal real estate docs generation from all kinds of devices including mobile phones, tablets, laptops and desktops. The customer was very happy with that answer and we immediately understood that getting too much into the technical jargon would have hurt the deal rather then helping it.

This is a good example where you as a developer know how to talk your client's language.

Make it a great day!

Adrian
Miami Beach, FL
http://wittywebnow.com

Wednesday, February 18, 2015

Social Media in the Software Development Business

Over the last 6-7 years Social Media became a part of our life. Weather it's Facebook, Twitter, LinkedIn, G+, Instagram, Pinterest or just older places like Digg everybody is on social media nowadays.

But how important is social media in a software development business?

I'd say results highly depend on the platform.

Here I will discuss things from my personal experience. I am not saying it will be like this for everybody. But there are definitely some trends.

1. Facebook

This platform is clearly oriented to the consumer. It is less business to business. While there are more recent solutions to target businesses in your geography my experience is that Facebook is not the ideal place to acquire new customers for a software development business. People are generally there to socialize / entertain themselves and not to conduct business.

There are two aspects I was able to identify where Facebook can be helpful though:

- social media back links and likes: more recently Google started to take those into account when they organically rank your site

- retaining and re-engaging your current customer base

We are not big on Facebook but we keep consistent with our company's general message across different platforms and so far we have good feed-back.

2. LinkedIn

LinkedIn is a great business-to-business platform to be on. People are on to do business, to look for jobs, to work on gigs, to refer contracts etc.

Historically we did a lot of business on LinkedIn and there is definitely more to do.

Keep in mind that LinkedIn is generally "slower" in responses than other social media networks. Being a professionals network obviously people don't have a lot of time to be on it but when they are, they are a great audience to send your message to.

So do not get discouraged if you do not see immediate feed-back when posting a picture, a blog or a video: they will come.

LinkedIn is also a great place to build reputation for your company through clients and professional peers referrals and testimonials. As opposed to other social media networks- which are more open- here you have the ability to moderate what is posted about you or your company which is normal for business and a very good way to do things.

There are also many online marketing tools that tie into LinkedIn to build prospects lists, enlarge your networks, gather more testimonials etc. While I tend to stick with the classic tools LinkedIn themselves offer + my standard Constant Contact account, I recently started to look into some of these tools as well.

Projects showcase section is great as well as it allows your company to show product they built.

3. Twitter

Twitter is a good fast tool to recruit software developers.

I've tried many things on Twitter including some paid / ppc advertising but that's about the only thing that worked well for my business.

There are many developers on Twitter and many of them know other people. If you have an immediate project to start interviewing for, it is a great place to attract talent without paying a recruiter.

You can also build some reputation / followers / back-links even though pretty much everything that's posted on Twitter tends to have a short period of life.

4. Instagram

It is not a social media platform suitable for the software development business.

5. Pinterest

It is not a social media platform suitable for the software development business.

6. Google+

I use G+ in conjunction with by blog. In about 8 month I was able to build a list of about 120 subscribers to the blog. It's a start.

G+ is not bad for a business- especially a software development business- you can moderate your comments, post articles, create back links for yourself and showcase expertise in your blogs.

A lot of the professionals I work with are on G+ as well (rather than being on FB) so it is a good way to build and enlarge your community.

In terms of attracting new business, I have not had much luck with G+.

How about you guys? What's your social media experience?

Make it a great day!

Adrian
http://wittywebnow.com

Monday, February 16, 2015

Back to agility

This week we are back to agility and agile software development. It is so important and it saves you as a developer so many headaches and your client so much money that it's almost like a must to talk a little bit more about it.

Today I would like to focus on two items: technologies that help agility and results driven behavior.

(1) There are actually technologies that help an agile process

I've been trying to discuss this topic during some agile events in town. I got little feed-back to it and I believe the reason is that most of the attendance is not technical- they are mainly projects managers.

I'll make a case there are actually technologies that help, if not even drive, agility.

Some of the them are Object Oriented Databases as opposed to tabular databases. By definition inserting a new field in an OO database will be more agile and easier to pivot with than when using a tabular database. OO databases, such as Mongo DB or Postgres, embrace late requirements changes, eliminate read locks and ensure atomicity and consistency in an efficient manner.

I won't assess for example that Ruby is "more agile" than Java or .NET because that won't make sense. But I will say that architect-ing a solution the right way can tremendously help your agile process. An example is building a framework that generates full stack marketing websites. Instead of writing each individual site as a separate solution (let's say on a Microsoft stack) you can make an xml that will define the behavior of each site in different market verticals. Such a framework will be much easier to maintain, adjust, change and re-test even with late / unforeseen requirements changes.

That is why I always say that the greatest agile teams I worked with are usually the greatest programmers too. Because they can write things in a smart way.

(2) Do results really drive behavior?

There is a lot of talk in the community about the business results that are supposed to drive an agile behavior. In other words if an agile teams shows better results in an Organization, other teams who are not doing agile are going to adopt that. Hence an agile culture will spread around your Organization.

I tend to disagree. My experience with agile teams is that they are either agile or not. They either have an agile culture / approach as part of their internal human structure or not. Of course you can educate people, you can train and draw guidelines but it just happens that most of the time "people who write code from right to left" are the most agile ones too.

So in my Organization I stress on recruiting the right people: the ones who kind of see agility as a natural, self driven behavior in software development rather than as a process or a set of rules.

I agree it is harder in larger Organizations where you have all kinds of teams and you have to deal with all kinds of people: many of them who you did not recruit to begin with. Showing some of them the carrot may not work. Showing some of them the stick may or may not work.

But what do you do when the customer is not interested in being agile? Then you are really stuck. Because you cannot impose it on your customer. Educating the customer many times works but financial analysis and bottom lines with $ signs will get you better results. Some customers just need to understand that working agile is in their own interest as well.

Make it a great day!

Adrian
Miami Beach, FL
http://wittywebnow.com