Recently in IT & Agile Category

2,5 years ago as I was experimenting with viral marketing on Youtube I decided to tape this video to understand the process. Badly recorded, done in one go, no editing. 

The video viral success took me by surprise. In 3 months it was being used around the world by developers to convince management why they should use agile methodologies. The Agile Alliance and other sites linked to it.

I started getting some feedback and comments. I was shocked with the first negative comment I got: "What a load of crap!". It took me 3 hours to recover. I kept going back to it and thinking "why do this guy think this is crap? Maybe I could have done it better, etc"

And then I realized the following: in the Internet if you want to be relevant you are going to annoy people. And people have a fast, public way of annoying you back. I got used to it and I actually welcome it. And, as my mother would say, it builds character.


I stumbled on this piece from Clay Shirky on situated software. Interesting notion: as you decrease the size of the user target base your (social) software can leverage the non-tech links that exist in these micro communities and create services that are not possible if you consider a traditional large scope Web Application (target at a large amount of users).

Applying this to the Long Tail of Software, this situated software exists at the very end of the long tail. Software that is further down the tail than that I can only see the software that you build for one person. Which in a way is an extreme case of situated software.

The past years have matured the use of web technologies in optimizing business functions. From the initial experimentations with portals and Intranets to today's wikis and a recent slew of innovative types of systems based on social concepts, Information Technology plays as important role ever in cutting costs, increasing response times and in general optimizing business.

The following list should help business leaders isolate organizational scenarios that can be improved through the deployment of web applications:

1. Centralize data through web applications
A lot of your business processes today are being done via excel spreadsheets and other documents floating around in email. Deploy fast, small web appplications that will help you increase efficiency of these units and overcome the dispersion of multiple file versions into centralized databases.

2. Make better decisions with aggregated data
Each new web application database creates a wealth of data that can be extended with reporting and analytics. You will have increase visibility over these sections of your business and understand faster how you can improve.

3. Bring different departments to work together
Extend web applications that were born to serve one function or department into other business units removing the gaps created by corporate silos.

4. Guide people through workflow processes
Web applications that reach through multiple sections of the enterprise are perfect instruments to guide people through particular process workflows further improving efficiency.

5. Measure process performance
These web applications create a wealth of process performance data that can be analysed and improved on.

6. Remove inefficiencies at the organization borders
By extending web applications into customers and partners you can remove the overhead of inefficient communication mechanisms at your organization borders and push work to the outside through self serve mechanisms.

7. Cut off the middle man 
Consider reaching directly to end customers of partners at the end of the chain through these web applications by passing costly intermediate structures like brokers or agents.

8. Optimize communication between your organization and other organizations
Web applications can be equiped not only with web browser interfaces but also machine-friendly interfaces. Connect your web applications with other partners applications via web services.

9. Remove internal disconnections
You can overcome disconnections that exist among internal legacy systems by deploying web services technologies making these applications ready for better integration.

10. Refurbish old systems with new web applications
Old systems user interfaces can be replaced with web applications that compose the services exported by these legacy systems and provide unified user interfaces adapted to new processes and more efficient ways of working.

11. Leverage services from the cloud
Extend these composite web applications with services exported by cloud companies.

12. Leverage the wisdom of crowds
Web applications have evolved to harness the power of massive user contribution. Opportunities exist for further optimization by bringing togetrher employees and/or partners or customers into web applciations that explore their collective contributions.

For details on how to go about discovering business optimization opportunities in these areas, stay tuned.
customer satisfaction v2.pngA screen cast of my keynote presentation at the OutSystems NextStep'09.

"It is difficult to hear a bad word about the Portuguese software company" starts the dutch publication Computable article on describing the general feedback of customers at the OutSystems NextStep event (check out a _bad_ English translation of the article).

This is common feedback for OutSystems. The product is very stable resulting from our R&D focus on quality. The few times we have critical issues the Support Team bends itself backwards to address and solve them. The Professional Services team regularly gets bottles of wine and chocolate cakes for their focus on delivering, on time, on budget, solutions that are adopted fast by the business.

customer satisfaction v2.png
Last year, one of our US prospects (now a happy customer) laid out a very particular set of needs and asked us to provide a reference call with an existing customer in a similar situation. After the reference call, they told us: "You know, this reference had very few bad things to say about you guys. That was not very helpful. We wanted to know how you handle problems because we understand we have some different needs. But finally they reported a situation where they had to use your support and the whole response, in their opinion, 'was top of the line'."

So, regularly I am asked on 
"How do you do it? How do you establish an excellency culture that permeates all customer touching units?" 

There are many things you can do. A lot is just common sense. However, if I had to summarize I believe the following 5 directions make the most difference at OutSystems:

  1. Put the customer above everything. This means customer satisfaction is above profits, revenues and even employee satisfaction. KPIs, Bonus, etc need to make this direction clear. Management behavior needs to make this clear.

  2. Temper customer satisfaction with fairness. A lot of times our obsession with customer satisfaction drives a misguided customer to take advantage of us. This does not go far. We are very tough on ourselves when we make a mistake but we want the same transparency from the customer when they screw up. Fair is fair. Paradoxically, customers end up by respecting and trusting us more.

  3. Tackle a problem immediately. Speed is of the essence. Act immediately to address any issue with a sense of urgency. Tell your people they have an open direct escalation lines to management to fix any problem.

  4. Solve endemic issues with process. Constant fire fighting does not scale. Our people are trained to spot recurrent problems and deploy permanent solutions that prevent the issue from happening again. The company is constantly tuning practices and evolving processes.

  5. Hire smart, accountable, high-energy people. We can only address new issues fast through accountable, high energy people. We can only solve problems permanently with innovative solutions through smart people. This is why we invest so much in the recruitment process and in creating an environment where this class of people can thrive.

This insightful article from Thomas Wailgum at CIO.com summarizes the typical situation organizations face when having to adapt commodity software to a changing business and to their specific processes.

Do not change ERPs
Traditional software packages (ERP suites the best example) are, by definition, not meant to be customized. The strategy of ERP vendors is to embed in their software, business processes that are common enough to be deployed in the largest possible number of companies. The continuous addition of new functionality produces a bloated mass of alternative code with very complex product release cycles. 

Organizations that customize a package create a private "code branch" that needs to be maintained in-house. This is like diving into the gates of hell. From that point on, you inherit part of the vendor's complex development cycle. You make it very difficult to merge your own changes with the next product release of the vendor. Your maintenance cost sky rockets and your meager resources get sucked by these packages. The wise and experienced IT professional only needs to go through this process once to never again dare to customize an ERP.

But if you use packages to only implement commodity processes how do you support the processes that are your own? And how do you support processes that are the result of internal innovation and represent your own strategic competitive differentiation?

Commodity vs. Competitive

To hint on the answer, I will borrow Geoffrey Moore's Core-Context model. Geoffrey categorizes processes and their respective IT according to two vectors. On one axis, Core vs. Context. Core processes are the ones that are your source of differentiation. Context processes are all the others. On an orthogonal axis he classifies processes as non-mission critical vs.mission critical. The end result is a simple chart that depicts 4 stages of evolution of these processes.

core_vs_context.png

Innovative processes, strategies and ideas and their supporting IT, flow from the Invent, up to Deploy To Scale. In time they become a commodity (as they are copied by others) and move sideways to Manage Scale. Finally some of these processes stop being mission critical and can be Offloaded.

Packages are a good fit if applied to processes in the Context quadrants. And, in this case it is acceptable that the organization actually adapts to the ERP processes. Hey, it is commodity, so except for some reengineering discomfort, why not?

core_vs_context_with_package.png

Build Custom Software

IT applied to the Core quadrants however, needs to reflect the innovation that is created inside the organization. In this case you need to build custom software. You need to have the software adapt to the organization processes. There is really no way around it. 

ITs that support fast changing organizations, are already doing this. A typical enterprise architecture tends to divide itself between packages and custom built systems. A zoo of Java and/or .Net systems, Sharepoint customized portals, and Process Workflow tools support the two left quadrants. Web Services (I don't dare use the term "SOA") glue these things together.

So, is this a good strategy? Isn't there anything to hate about custom systems? Yes, there is. I will blog about it later.

It's only fair that I start this blog with a comment on the OutSystems NextStep'09 conference, held in Lisbon, the past April 15,16. We have come a long way since our first NextStep (2004). As a lot of friends and business associates congratulated me on how much we have achieved since 2001 when the company was founded, I felt a bit like I was cheating, a bit like a proud father.

In fact it was the amazing amount of energy, work and ideas from many OutSystems collaborators and our OutPartner community that created such a success out of this NextStep event. 

My contribution was to help hire such great people and stay out of the way. It never felt so good to not be in control.

By Paulo Rosado

Besides my daily job as CEO of OutSystems , I occasionally help entrepreneurs grow their businesses and avoid obvious mistakes. I have also tricked some folks in listening to my opinions on Management, High Tech, IT and life in general.
twitter.com/paulorosado

About this Archive

This page is an archive of recent entries in the IT & Agile category.

Management & Enterpreneurship is the next category.

Find recent content on the main index or look in the archives to find all content.

OpenID accepted here Learn more about OpenID