Professional Documents
Culture Documents
Purpose
Structure
The manager of a software company is usually called the Head Of Development
(HOD), and reports to the stakeholders. He or she leads the sub-teams directly or via the
managers/leaders depending on the size of the organization. Usually teams of up to 10
person are the most operational. In bigger organizations, there are in general two models
of the hierarchy:
Mission
Our core mission is to provide top-class software development and related consulting
and business process outsourcing services using cutting-edge technologies, robust
development tools and client oriented approaches.
Our mission is to develop a standardized approach, guidance, and tools that help
decrease the failure rates of software projects, and encourage companies to adopt
these.
We will do this by combining consulting experience and accepted best practices with
the latest techniques in data science. We will accelerate and improve project
management development and deployment activities by publishing on-demand tools,
content, and guidance online. And we will work with partners to build and nurture a
global community to achieve this mission.
Goals
In order to achieve our vision and mission, we are following these goals:
Standardize and codify key software project concepts and terminology
Ensure business goals and objectives are considered at all stages of a project
Develop an accurate and flexible model describing key project activities
Identify and leverage accurate insights into software project success and failure rates
and reasons
Identify and encourage best practices which are appropriate for a particular project
Develop software project activity accelerators
Develop software project risk-reducers
Encourage a spirit of openness, transparency, integrity, trust, and continuous learning
Build and nurture a global community that shares our vision and mission And our
most important goal:
Provably and reliably reduce the cost, effort, duration and risk of software projects
Vision
Our vision is to reduce the remarkably high rate of software project failures worldwide,
by transforming the way companies manage them.
Our vision is to develop in a constant manner and grow as a major IT service provider
to become a leading performer, in providing quality Web and Software Development
solutions in the competitive global marketplace. Our professional, flexible and
integrated process reflects in what we do. We always guide our customers to
success. We have the ability to accelerate and quickly share the great work or
products of your organization or business.
Fortunately, we have been able to bring together a talented crew of professionals
shaped and molded by their collective experiences in the agency, corporate and
private industries, all of which possess outstanding talent. The synergy of what
MacSyn InfoTech does comes from a blend of passion for success and the skill to
help accelerate your organization.
Gathering information
Sometimes I see people skipping straight to this step without having done the previous one.
Examples include:
Googling Stack Overflow as a first step.
Copying and pasting code—whether from Stack Overflow, a tutorial, or elsewhere in
your codebase—without understanding what it does.
I believe this practice leads to “solving” problems without fully understanding them. That's
not to say any of these resources—Stack Overflow, tutorials, any other examples I find—
are bad. But they should be treated as a single tool in our toolbox, not the start and end of
the problem-solving process.
How else can I use this toolbox? Think about the kind of information I am looking for:
If you know exactly what function, class, or API endpoint I am using from an external
package or service, I can go to the relevant page in its documentation to see all the
various options when using it.
If I am having problems with an open-source package and I don’t know why, try
reading the source code for the relevant feature to make sure it’s doing exactly what
I assume it is.
To get an overview of a new tool or framework, try searching for a tutorial or
QuickStart guide.
If you don’t understand why something in our code base is designed the way it is, try
looking at the commit history for the relevant file or files—often I can piece together
a story of what past developers were trying to do.
And yes, search engines. Sometimes I know exactly what I want to do but I don’t
know what it’s called: “PHP assign two variables.” Sometimes I want ideas on how to
do something: “JavaScript shuffle a deck of cards.” And sometimes I just have no
idea, but looking at other people’s similar problems can help me figure out what to try
next: “Django forms validation not working.” When I do this, try to read any links or
relevant documentation I find to get a broader understanding of the issue.
If I’ve been using one of these methods for a while and I don’t seem to be making progress,
I’ll often switch to another. I find that a lot of developers I know reach for the search engine
first, but for me, intentionally using a variety of methods helps me gain a broader scope of
understanding.